📄 cpu.vhd
字号:
-- ************************************************************************-- * NOVAS SOFTWARE CONFIDENTIAL PROPRIETARY NOTE *-- * *-- * This software contains information confidential and proprietary *-- * to Novas Software Inc. It shall not be reproduced in whole *-- * or in part or transferred to other documents, or disclosed *-- * to third parties, or used for any purpose other than that *-- * for which it was obtained, without the prior written consent *-- * of Novas Software Inc. *-- * (c) 1996, 1997 Novas Software Inc. *-- * All rights reserved *-- * *-- ************************************************************************-- Debussy tutorial case: A simplified microprogramming-based CPU-- file name: CPU.vhd-- description: This part describes the top module of CPU including-- CCU, PCU, ALU three block and their connectivity.-- clock: system clock-- reset: system reset-- VMA: valid memory address where read/write can be performed-- R_W: memory read or memory write-- data: 8-bits data bus-- addr: 8-bits address buslibrary IEEE;use IEEE.std_logic_1164.all;use IEEE.std_logic_arith.all;entity CPU isport ( clock : in std_logic; reset : in std_logic; VMA : out std_logic; R_W : out std_logic; addr : out std_logic_vector(7 downto 0); data : inout std_logic_vector(7 downto 0));end CPU;architecture CPU of CPU issignal n_CH0 : std_logic_vector(4 downto 0);signal n_C60 : std_logic;signal n_S10 : std_logic;signal n_ALU0 : std_logic_vector(7 downto 0);signal n_IXR0 : std_logic_vector(7 downto 0);signal n_data0 : std_logic_vector(7 downto 0);signal n_PC0 : std_logic_vector(7 downto 0);signal n_reset0 : std_logic;signal n_clock0 : std_logic;signal n_IR0 : std_logic_vector(1 downto 0);signal n_addr0 : std_logic_vector(7 downto 0);signal n_TDB0 : std_logic_vector(7 downto 0);signal n_alu_mode0 : std_logic_vector(2 downto 0);signal n_bus_mode0 : std_logic_vector(2 downto 0);signal n_carry_mode0 : std_logic;signal n_mux_sel0 : std_logic_vector(2 downto 0);signal n_C50 : std_logic;signal n_C10 : std_logic;signal n_error_out0 : std_logic;signal n_C00 : std_logic;component ALUBport (IR : in std_logic_vector(1 downto 0); IDB : in std_logic_vector(7 downto 0); PC : in std_logic_vector(7 downto 0); CH : std_logic_vector(4 downto 0); alu_mode : in std_logic_vector(2 downto 0); bus_mode : in std_logic_vector(2 downto 0); carry_mode : in std_logic; clock : in std_logic; reset : in std_logic; S1 : out std_logic; ALU : out std_logic_vector(7 downto 0); IXR : out std_logic_vector(7 downto 0); error_out : out std_logic);end component;component PCUport (mux_sel : in std_logic_vector(2 downto 0); C6 : in std_logic; C5 : in std_logic; C1 : in std_logic; ALU : in std_logic_vector(7 downto 0); S1 : in std_logic; IXR : in std_logic_vector(7 downto 0); reset : std_logic; data : inout std_logic_vector(7 downto 0); PC : out std_logic_vector(7 downto 0); IDB : out std_logic_vector(7 downto 0); TDB : out std_logic_vector(7 downto 0); error_in : in std_logic );end component;component CCUport (TDB : in std_logic_vector(7 downto 0); clock : in std_logic; reset : in std_logic; CH : out std_logic_vector(4 downto 0); alu_mode : out std_logic_vector(2 downto 0); bus_mode : out std_logic_vector(2 downto 0); carry_mode : out std_logic; mux_sel : out std_logic_vector(2 downto 0); C6 : out std_logic; C5 : out std_logic; C1 : out std_logic; C0 : out std_logic; IR : out std_logic_vector(1 downto 0));end component;begin VMA <= n_C00; R_W <= n_C10; addr <= n_addr0; i_ALUB: ALUB port map ( IR => n_IR0 , IDB => n_addr0 , PC => n_PC0 , CH => n_CH0 , clock => clock , reset => reset , S1 => n_S10 , ALU => n_ALU0 , IXR => n_IXR0 , alu_mode => n_alu_mode0 , carry_mode => n_carry_mode0 , bus_mode => n_bus_mode0 , error_out => n_error_out0 ); i_PCU: PCU port map ( S1 => n_S10 , ALU => n_ALU0 , IXR => n_IXR0 , reset => reset , PC => n_PC0 , IDB => n_addr0 , data => data , TDB => n_TDB0 , error_in => n_error_out0 , C6 => n_C60 , C5 => n_C50 , C1 => n_C10 , mux_sel => n_mux_sel0 ); i_CCU: CCU port map ( TDB => n_TDB0 , clock => clock , reset => reset , CH => n_CH0 , IR => n_IR0 , alu_mode => n_alu_mode0 , bus_mode => n_bus_mode0 , carry_mode => n_carry_mode0 , mux_sel => n_mux_sel0 , C6 => n_C60 , C5 => n_C50 , C1 => n_C10 , C0 => n_C00 );end CPU;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -