西安交通大学计算机组成原理专题实验(上)第四次实验报告
计算机组成原理专题实验报告(四)
学生姓名
专业/班级 计算机11 班
学 号
所在学院 电信学院
指导教师 姜欣宁
提交日期 2014 年1 月4 日
计算机组成原理专题实验(四)
——数据通路的设计与测试
1.实验目的
学习和掌握一个基本的数据通路的结构和运行规律;进一步掌握VHDL 语言的编
程技术和仿真波形的观测。
2.实验要求
画出完整的数据通路电路图;
编写实现以上功能的电路模块的VHDL 代码并反映出本人的设计思路(利用流程
图、状态图等);
对数据的传输过程进行仿真,时序波形进行定量的分析;
记录设计和调试过程。
数据结构(见图1,图2)可以二选一。
图1 数据通路图
图2 多输入数据通路图
注:根据需要,数据通路可以加缓冲器、选择器等器件。
注:由于开关、指示灯的数量有限,在输入(多路)数据(8/16bit)
和观察结果时,可以分时操作,但要加电路。
3.实验内容
利用硬件描述语言VHDL 实现一个数据通路的连接,包括:RAM、ALU、RF 等模块;
输入数据后观察信号在各部件中的传输情况(状态);
开关量提供输入,通过指示灯观察各模块端口的状态。
4.设计思路与源代码
4.1 源代码
(1)mycpu
library ieee;
use ieee.std_logic_1164.all;
use work.exp_cpu_components.all;
entity MyCPU is port
(
clk :in std_logic; --系统时钟
reset :in std_logic; --系统复位信号
reg_sel: in std_logic_vector(5 downto 0); --选择寄存器--新加上的内容
reg_content: out std_logic_vector(15 downto 0); --寄存器输出
c_flag: out std_logic;
z_flag: out std_logic;
WE :out std_logic; --读写内存控制信号
AR :out std_logic_vector(15 downto 0); --读写内存地址
OB :inout std_logic_vector(15 downto 0) --外部总线
);
end MyCPU;
architecture behav of MyCPU is
--instru_fetch out
signal t1,t2,t3: std_logic;
signal pc,pc_inc,IR: std_logic_vector(15 downto 0);
--decoder_unit out
signal SR,DR: std_logic_vector(1 downto 0);
signal op_code: std_logic_vector(2 downto 0);
signal zj_instruct,cj_instruct,lj_instruct: std_logic;
signal DRWr,Mem_Write,DW_intruct,change_z: std_logic;
signal change_c,sel_memdata: std_logic;
signal r_sjmp_addr: std_log