计算机组成原理课程设计指令系统及七段译码器设计_第1页
计算机组成原理课程设计指令系统及七段译码器设计_第2页
计算机组成原理课程设计指令系统及七段译码器设计_第3页
计算机组成原理课程设计指令系统及七段译码器设计_第4页
计算机组成原理课程设计指令系统及七段译码器设计_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、东北大学秦皇岛分校计算机与通信工程学院计算机组成原理课程设计专业名称班级学号学生姓名指导教师设计时间课程设计任务书专业:计算机科学与技术 学号: 学生姓名: 设计题目:指令系统及七段译码器设计一、设计实验条件综合楼硬件:pc机软件:xilinx ise modelsim汇编语言:vhdl二、设计任务及要求1. 指令:19、25、42号指令;2. 七段译码器3. 4位bcd码加法器4. 要求:总线结构:单总线,数据总线位数8位、地址总线8位; 存储器:内存容量64k*8bit 控制器:用硬连线控制器实现26位微操作控制信号 运算器:单累加器,实现加、减等8种操作 外设: 输入:用开关输入二进制量

2、 输出:7段数码管和led显示 指令系统规模:64条指令,7种类型,5种寻址方式三、设计报告的内容1、指令系统设计:本次课程设计要设计的指令是第19、25、42号指令,要清楚各条指令的功能、指令类型、寻址方式等内容,本次设计用到的指令的相关内容如表1所示表1 本次要设计的指令指令编号助记符指令类型功能19subc a, mm算术运算指令从累加器a中减去寄存器mm地址的值,减进位25or a, r?逻辑运算指令累加器a“或”寄存器 r?的值42jz mm逻辑运算指令当零标志r_z=1时,跳转到mm地址2、模型机硬件设计:七段译码器因为计算机输出的是bcd码,要想在数码管上显示十进制数,就必须先把

3、bcd码转换成 7 段字型数码管所要求的代码。我们把能够将计算机输出的bcd码换成 7 段字型代码,并使数码管显示出十进制数的电路称为“七段字型译码器”。3、逻辑电路设计:4位bcd码加法器加法器定义实现多位二进制数相加的电路称为加法器, 它能解决二进制中1+1=10 的功能。【系统设计】1、 模型机逻辑框图(整机逻辑框图、芯片引脚及cpu逻辑框图如下图1、图2、图3所示)图1 整机逻辑框图图2 芯片引脚图3 cpu逻辑框图2、 指令系统设计指令类型及寻址方式见表13、 微操作控制信号1、xrd :外部设备读信号,当给出了外设的地址后,输出此信号,从指外 设读数据。2、emwr:程序存储器em

4、写信号。3、emrd:程序存储器em读信号。 4、pcoe:将程序计数器pc的值送到地址总线abus上(mar)。 5、 emen:将程序存储器em与数据总线dbus接通,由emwr和emrd 决定是将dbus数据写到em中,还是从em读出数据送到dbus。 6、 iren:将程序存储器em读出的数据打入指令寄存器ir。 7、 eint:中断返回时清除中断响应和中断请求标志,便于下次中断。 8、 elp:pc打入允许,与指令寄存器ir3、ir2位结合,控制程序跳转。 9、 fstc:进位置1,cy=1 10、fclc:进位置0,cy=0 11、maren:将地址总线abus上的地址打入地址寄存

5、器mar。 12、maroe:将地址寄存器mar的值送到地址总线abus上。 13、outen:将数据总线dbus上数据送到输出端口寄存器out里。 14、sten:将数据总线dbus上数据存入堆栈寄存器st中。 15、rrd:读寄存器组r0-r3,寄存器r?的选择由指令的最低两位决定。 16、rwr:写寄存器组r0-r3,寄存器r?的选择由指令的最低两位决定。 17、cn:决定运算器是否带进位移位,cn=1带进位,cn=0不带进位。 18、fen:将标志位存入alu内部的标志寄存器。 19、wen:将数据总线dbus的值打入工作寄存器w中。 20、aen:将数据总线dbus的值打入累加器a中

6、。 21-23: x2 x0:x2、x1、x0三位组合来译码选择将数据送到dbus上的 寄存器。 24-26: s2 s0:s2、s1、s0三位组合决定alu做何种运算。4、 指令执行流程指令执行流程如表2所示:表2 指令的执行流程编号指令指令功能操作码节拍数微操作控制信号19subc a, mm从累加器a中减去寄存器mm地址的值,减进位010010xxt7pc->marpcoe, maren,t6emmaremen,emrd,marent5pc+1->pcwent4em->maremen,emrd,marent3em->wemen,emrd,wen25or a, r?

7、累加器a“或”寄存器 r?的值011000xxt4r->dbus->wr,dbus,wt3w,a->aluw,a,alu42jz mm当零标志r_z=1时,跳转到mm地址101001xxt7若z=1,则pc mar em w dbust6pc->marpc mar em w dbust5em->ww->dbus->pct4否则:pc+1->pcpc以流程图表示如下: subc a, mm or a, r? jz mmpcmar lwemwpcpc+1r? mart5 t5 t5 t4wawmaremwpcpc+1emwt4 t4 t4 t3ema

8、w or adbusaa-w-cinat3 t3 t3图4 指令的执行流程图【系统实现】1、模型机实现(七段译码器的实现)(1)逻辑电路的图形符号表示、功能七段译码器电路图形符号如图5所示:图5 七段译码器电路图形符号表示(2)指令所涉及的微操作控制信号pcoe:将程序计数器pc的值送到主存地址寄存器mar上。 maren:将数据总线dbus的值送到主存地址寄存器mar上。(3)系统实现library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;- uncomment the following librar

9、y declaration if using- arithmetic functions with signed or unsigned values-use ieee.numeric_std.all;- uncomment the following library declaration if instantiating- any xilinx primitives in this code.-library unisim;-use unisim.vcomponents.all;entity gl isport( clk:in std_logic;inn:in std_logic_vect

10、or(15 downto 0);sel:buffer std_logic_vector(2 downto 0);led7:out std_logic_vector(7 downto 0);end gl;architecture behavioral of gl issignal data:std_logic_vector(3 downto 0);beginprocess(clk)beginif clk'event and clk='1' thenif sel>="011" then sel<="000"else sel

11、<=sel+1;end if;case sel iswhen "000"=> data<=inn(3 downto 0);when "001"=> data<=inn(7 downto 4);when "010"=> data<=inn(11 downto 8);when "011"=> data<=inn(15 downto 12);when others =>null;end case;end if;end process;process(data)b

12、egincase data iswhen "0000"=> led7<="00111111"-0when "0001"=> led7<="00000110"-1when "0010"=> led7<="01011011"-2when "0011"=> led7<="01001111"-3when "0100"=> led7<="01100110&q

13、uot;-4when "0101"=> led7<="01101101"-5when "0110"=> led7<="01111101"-6when "0111"=> led7<="00000111"-7when "1000"=> led7<="01111111"-8when "1001"=> led7<="01101111"-9when

14、 "1010"=> led7<="01110111"-10when "1011"=> led7<="01111100"-11when "1100"=> led7<="00111001"-12when "1101"=> led7<="01011110"-13when "1110"=> led7<="01111001"-14when &quo

15、t;1111"=> led7<="01110001"-15when others =>null;end case;end process;end behavioral;2.逻辑电路设计(4位bcd码加法器)(1)逻辑电路的图形符号表示、功能图6 4位bcd码加法器的图形符号表示(2)系统实现library ieee;use ieee.std_logic_1164.all;use ieee.numeric_std.all;- uncomment the following library declaration if using- arithmet

16、ic functions with signed or unsigned values-use ieee.numeric_std.all;- uncomment the following library declaration if instantiating- any xilinx primitives in this code.-library unisim;-use unisim.vcomponents.all;entity guolei2 isport (a: in std_logic_vector(3 downto 0);b: in std_logic_vector(3 downt

17、o 0);ci: in std_logic;s: out std_logic_vector(3 downto 0);co: out std_logic);end guolei2;architecture behavioral of guolei2 issignal c0,c1,c2 : std_logic;begins(0) <= a (0) xor b(0) xor ci;c0 <= (a(0) and b(0) or (a(0) and ci) or (b(0) and ci);s(1) <= a (1) xor b(1) xor c0;c1<= (a(1) and

18、 b(1) or (a(1) and c0) or (b(1) and c0);s(2) <= a (2) xor b(2) xor c1;c2<= (a(2) and b(2) or (a(2) and c1) or (b(2) and c1);s(3) <= a (3) xor b(3) xor c2;co<= (a(3) and b(3) or (a(3) and c2) or (b(3) and c2);end behavioral;【系统测试】(一)、模型机实现(七段译码器的实现)1、 功能仿真仿真时用到的波形如图7所示:图7 仿真时用到的波形图2、rtl级逻

19、辑电路七段译码器的rtl级电路图如图9所示:图9 七段译码器 rtl级电路图(二)硬件测试(4位bcd码加法器)1、功能仿真4位bcd码加法器仿真波形图如图10所示:图10 4位bcd码加法器仿真用到的波形图2、rtl级逻辑电路4位bcd码加法器的rtl级逻辑电路如图11所示:图11 4位bcd码加法器的rtl级逻辑电路图【总结】本次课设遇到很多问题,首先是软件的使用,由于是第一次接触xilinx软件,软件的好多功能和用法都不清楚,好多选项都不了解。不过经过查找资料以及问同学终于学会的熟练运用。接着是那个波形图的形成,好几次运行之后都是红线,显示错误。后来和同学们群里讨论才知道怎么正确的去做。最开始在做4位bcd码加法器的时候一点想法都没有,不知道该怎么设计,然后就去图书馆去借书,查看,上网查资料,和相关课题的同学一起讨论,最后学会了相关的设计。【心得体会】课设的一开始,首先是学习软件的使用,去了解软件的功能和用法。由于是新软件,好多功能都不了解,就去自己百度,看老师给的资料,听同学讲解,终于学会了xilinx ise models

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论