



付费下载
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、计算机组成实验 C课程设计适用专业:电子信息类专业专业: * 班级: * 学号: * 姓名: * 指导教师 : * 实验学期 : 2014-2015第1学期西南交通大学信息科学与技术学院简化计算机系统的设计一. 实验目的:通过学习简单的指令系统及其各指令的操作流程,用 VHDL 语言实现简单的处理器模块, 并通过调用存储器模块, 将处理器模块和存储器模块连接形成简化的计算机系统。二. 实验内容1. 用 VHDL 语言实现简单的处理器模块。2. 调用存储器模块设计25616 的存储器模块。3. 将简单的处理器模块和存储器模块连接形成简单的计算机系统。4. 将指令序列存入存储器,然后分析指令执行流
2、程。三. 预习要求 :1、学习简单指令集。 2、学习各指令的操作流程。四. 实验报告1. BLOCK 图图 1 原理图内存文件:图 2 内存文件 .Mif 2. 程序设计LIBRARY ieee; USE ieee.std_logic_1164.ALL; PACKAGE mypack IS CONSTANT idle : std_logic_vector(3 DOWNTO 0) :=0000; CONSTANT load : std_logic_vector(3 DOWNTO 0) :=0001; CONSTANT move : std_logic_vector(3 DOWNTO 0) :=0
3、010; CONSTANT addx : std_logic_vector(3 DOWNTO 0) :=0011; CONSTANT subp : std_logic_vector(3 DOWNTO 0) :=0100; CONSTANT andp : std_logic_vector(3 DOWNTO 0) :=0101; CONSTANT orp : std_logic_vector(3 DOWNTO 0) :=0110; CONSTANT xorp : std_logic_vector(3 DOWNTO 0) :=0111; CONSTANT shrp : std_logic_vecto
4、r(3 DOWNTO 0) :=1000; CONSTANT shlp : std_logic_vector(3 DOWNTO 0) :=1001; CONSTANT swap : std_logic_vector(3 DOWNTO 0) :=1010; CONSTANT jmp : std_logic_vector(3 DOWNTO 0) :=1011; CONSTANT jz : std_logic_vector(3 DOWNTO 0) :=1100; CONSTANT read : std_logic_vector(3 DOWNTO 0) :=1101; CONSTANT write :
5、 std_logic_vector(3 DOWNTO 0) :=1110; CONSTANT stop : std_logic_vector(3 DOWNTO 0) :=1111; END mypack; LIBRARY ieee; USE ieee.std_logic_1164.ALL; USE ieee.std_logic_unsigned.ALL; USE WORK.mypack.ALL; -cpu实体声明 - ENTITY cpu2 IS PORT( reset : IN std_logic; -清零信号低有效 clock : IN std_logic; -时钟信号 Write_Rea
6、d: OUT std_logic; -读写信号 ,1为写 M_address: OUT std_logic_vector(11 DOWNTO 0); -地址线 M_data_in: IN std_logic_vector(7 DOWNTO 0); -数据输入线 M_data_out: OUT std_logic_vector(7 DOWNTO 0); -数据输出线 overflow: OUT std_logic); - 溢出标志END cpu2; -cpuRTL级行为描述 - ARCHITECTURE RTL of cpu2 IS SIGNAL IR: std_logic_vector(15
7、DOWNTO 0); -指令寄存器 SIGNAL MDR: std_logic_vector(7 DOWNTO 0); -数据寄存器 SIGNAL MAR: std_logic_vector(11 DOWNTO 0); -地址寄存器 SIGNAL status: integer RANGE 0 TO 6; -状态寄存器 BEGIN status_change: PROCESS(reset, clock, status ) BEGIN IF reset = 0 THEN status status IF IR(15 DOWNTO 12) = Stop THEN status = 1; ELSE
8、status CASE IR(15 DOWNTO 12) IS WHEN Read|Write|Jmp|Jz|Swap = status status IF IR(15 DOWNTO 12)= Swap THEN status = 0; ELSE status status CASE IR(15 DOWNTO 12) IS WHEN Read|Write = status status status = 0; END CASE; ELSE NULL; END IF; END PROCESS status_change; seq: PROCESS(reset,clock) VARIABLE PC
9、:std_logic_vector(11 DOWNTO 0); - 程序计数器 VARIABLE R0,R1,R2,R3: std_logic_vector(7 DOWNTO 0); -通用寄存器 VARIABLE A: std_logic_vector(7 DOWNTO 0); -临时寄存器 VARIABLE temp: std_logic_vector(8 DOWNTO 0); -临时变量 BEGIN IF(reset=0) THEN - 清零 IR 0); PC := (OTHERS=0); R0 := (OTHERS=0); R1 := (OTHERS=0); R2 := (OTHER
10、S=0); R3 := (OTHERS=0); A := (OTHERS=0); MAR 0); MDR 0); ELSIF(clockevent AND clock=1) THEN overflow -状态 0 IR -状态 1 IF (IR(15 DOWNTO 12) /= stop) THEN MAR R0:= 0000 & IR(11 DOWNTO 8); WHEN shlp|shrp = CASE IR(11 DOWNTO 10) IS - Rx to A WHEN 00= A:= R0; WHEN 01= A:= R1; WHEN 10= A:= R2; WHEN OTHE
11、RS = A:= R3; END CASE; WHEN Move|addx|subp|andp|orp|xorp|Swap= CASE IR(9 DOWNTO 8) IS - Ry to A WHEN 00= A:=R0; WHEN 01= A:=R1; WHEN 10= A:=R2; WHEN OTHERS= A:=R3; END CASE; WHEN OTHERS = NULL; END CASE; WHEN 2= -状态 2 CASE IR(15 DOWNTO 12) IS WHEN addx = - Rx:= Rx + A; CASE IR(11 DOWNTO 10) IS WHEN
12、00= temp := (R0(7) & R0(7 DOWNTO 0) + (A(7) & A(7 DOWNTO 0); R0:=temp(7 DOWNTO 0); overflow temp :=(R1(7) & R1(7 DOWNTO 0) + (A(7) & A(7 DOWNTO 0); R1:=temp(7 DOWNTO 0); overflow temp :=(R2(7) & R2(7 DOWNTO 0) + (A(7) & A(7 DOWNTO 0); R2:=temp(7 DOWNTO 0); overflow temp :=(R3
13、(7) & R3(7 DOWNTO 0) + (A(7) & A(7 DOWNTO 0); R3:=temp(7 DOWNTO 0); overflow - Rx:= Rx - A; CASE IR(11 DOWNTO 10) IS WHEN 00= temp :=(R0(7) & R0(7 DOWNTO 0) + NOT(A(7) & A(7 DOWNTO 0) + 1; R0:=temp(7 DOWNTO 0); overflow temp :=(R1(7) & R1(7 DOWNTO 0) + NOT(A(7) & A(7 DOWNTO 0
14、) + 1; R1:=temp(7 DOWNTO 0); overflow temp :=(R2(7) & R2(7 DOWNTO 0) + NOT(A(7) & A(7 DOWNTO 0) + 1; R2:=temp(7 DOWNTO 0); overflow temp :=(R3(7) & R3(7 DOWNTO 0) + NOT(A(7) & A(7 DOWNTO 0) + 1; R3:=temp(7 DOWNTO 0); overflow CASE IR(11 DOWNTO 10) IS WHEN 00= R0:= A; WHEN 01= R1:= A;
15、 WHEN 10= R2:= A; WHEN OTHERS= R3:= A; END CASE; WHEN shrp = CASE IR(11 DOWNTO 10) IS WHEN 00= R0:= 0 & A( 7 DOWNTO 1 ); WHEN 01= R1:= 0 & A( 7 DOWNTO 1 ); WHEN 10= R2:= 0 & A( 7 DOWNTO 1 ); WHEN OTHERS= R3:= 0 & A( 7 DOWNTO 1 ); END CASE; WHEN shlp = CASE IR(11 DOWNTO 10) IS WHEN 00
16、= R0:= A( 6 DOWNTO 0 ) & 0; WHEN 01= R1:= A( 6 DOWNTO 0 ) & 0; WHEN 10= R2:= A( 6 DOWNTO 0 ) & 0; WHEN OTHERS= R3:= A( 6 DOWNTO 0 ) & 0; END CASE; WHEN andp = -Rx:= Rx AND A; CASE IR(11 DOWNTO 10) IS WHEN 00= R0:=R0 AND A; WHEN 01= R1:=R1 AND A; WHEN 10= R2:=R2 AND A; WHEN OTHERS= R3
17、:=R3 AND A; END CASE; WHEN orp = -Rx:= Rx OR A; CASE IR(11 DOWNTO 10) IS WHEN 00= R0:=R0 OR A; WHEN 01= R1:=R1 OR A; WHEN 10= R2:=R2 OR A; WHEN OTHERS= R3:=R3 OR A; END CASE; WHEN xorp = -Rx:= Rx XOR A; CASE IR(11 DOWNTO 10) IS WHEN 00= R0:=R0 XOR A; WHEN 01= R1:=R1 XOR A; WHEN 10= R2:=R2 XOR A; WHE
18、N OTHERS= R3:=R3 XOR A; END CASE; WHEN Swap = -Swap: Rx to Ry; CASE IR(11 DOWNTO 8) IS WHEN 0100= R0:=R1; WHEN 1000= R0:=R2; WHEN 1100= R0:=R3; WHEN 0001= R1:=R0; WHEN 1001= R1:=R2; WHEN 1101= R1:=R3; WHEN 0010= R2:=R0; WHEN 0110= R2:=R1; WHEN 1110= R2:=R3; WHEN 0111= R3:=R1; WHEN 1011= R3:=R2; WHEN
19、 0011= R3:=R0; WHEN OTHERS= NULL; END CASE; WHEN OTHERS = NULL; END CASE; WHEN 3= -状态 3 CASE IR(15 DOWNTO 12) IS WHEN Swap= - Swap: A to Rx CASE IR(11 DOWNTO 10) IS WHEN 00= R0:=A; WHEN 01= R1:=A; WHEN 10= R2:=A; WHEN OTHERS= R3:=A; END CASE; WHEN jmp|Jz|Read|Write = IR(7 DOWNTO 0) NULL; END CASE; WHEN 4= -状态 4 CASE IR(15 DOWNTO 12) IS WHEN jmp = - 无条件转移指令 PC := IR(11 DOWNTO 0); MAR - 条件转移指令 IF(R0=00000000) then PC := IR(11 DOWNTO 0); MAR = IR(11 DOWNTO 0); else MAR MAR MAR
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年新食品安全法试题及参考答案
- 2025年城市交通拥堵治理创新模式:智能交通系统在交通诱导中的应用报告
- 2025年城市河道生态修复项目生态工程设计建议书
- 2025年出差安全培训考试题及答案详解
- 知识产权培训总结
- 澳洲留学生防疫知识培训课件
- 钢结构造价课件
- 2025年戒毒康复中心心理咨询服务招聘面试题
- 潮玩配饰专业知识培训课件
- 2025年无人机平台操作面试题答案
- 事业单位考试职业能力倾向测验(医疗卫生类E类)试题与参考答案
- 设计服务质量承诺及保证措施
- DL-T5153-2014火力发电厂厂用电设计技术规程
- 成都旅游宣传课件下载
- 刺骨术原理-西安讲课
- 运行维护电工技术技能考试卷
- 数学学科项目化设计
- T-CACM 1217-2019 中医肿瘤科临床诊疗指南 胰腺癌
- 员工心理健康培训课件
- 离婚协议书无子女无财产(电子版)
- 设备检修及维护保养培训课件
评论
0/150
提交评论