《计算机组成原理课程设计-指令系统及七段译码器设计》由会员分享,可在线阅读,更多相关《计算机组成原理课程设计-指令系统及七段译码器设计(15页珍藏版)》请在金锄头文库上搜索。
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 本次要设计的指令2、模型机硬件设计:七段译码器因为计算机输出的是 BCD 码,要想在数码管上显示十进制数,就必须先把 BCD 码转换成 7 段字型数码管所要求的代码。我们把能够将计算机输出的 BCD 码换成 7 段字型代码,并使数码管显示出十进制数的电路称为“七段字型译码器” 。3、逻辑电路设计:4 位
3、 BCD 码加法器加法器定义实现多位二进制数相加的电路称为加法器, 它能解决二进制中 1+1=10 的功能。【系统设计】1、 模型机逻辑框图(整机逻辑框图、芯片引脚及 CPU 逻辑框图如下图 1、图 2、图 3 所示)指令编号助记符 指令类型 功能19 SUBC A, MM 算术运算指令 从累加器 A 中减去寄存器 MM 地址的值,减进位25 OR A, R? 逻辑运算指令 累加器 A“或”寄存器 R?的值42 JZ MM 逻辑运算指令 当零标志 R_Z=1 时,跳转到 MM 地址图 1 整机逻辑框图图 2 芯片引脚图 3 CPU 逻辑框图2、 指令系统设计指令类型及寻址方式见表 13、 微操
4、作控制信号1、XRD :外部设备读信号,当给出了外设的地址后,输出此信号,从指外 设读数据。2、EMWR:程序存储器 EM 写信号。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 打入允许,与指令
5、寄存器 IR3、IR2 位结合,控制程序跳转。 9、 FSTC:进位置 1,CY=1 10、FCLC :进位置 0,CY=0 11、MAREN:将地址总线 ABUS 上的地址打入地址寄存器 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:决
6、定运算器是否带进位移位,CN=1 带进位,CN=0 不带进位。 18、FEN:将标志位存入 ALU 内部的标志寄存器。 19、WEN :将数据总线 DBUS 的值打入工作寄存器 W 中。 20、AEN :将数据总线 DBUS 的值打入累加器 A 中。 21-23: X2 X0:X2、X1、X0 三位组合来译码选择将数据送到 DBUS 上的 寄存器。 24-26: S2 S0:S2、S1 、S0 三位组合决定 ALU 做何种运算。4、 指令执行流程指令执行流程如表 2 所示:表 2 指令的执行流程编号 指令 指令功能 操作码 节拍数 微操作 控制信号T7PC-MAR PCOE, MAREN,T6
7、EMMAR EMEN,EMRD,MARENT5 PC+1-PC WENT4EM-MAR EMEN,EMRD,MAREN19 SUBC A, MM从累加器A 中减去寄存器MM 地址的值,减进位XXT3EM-W EMEN,EMRD,WENT4R-DBUS-WR,DBUS,W25 OR A, R?累加器A“或”寄存器 R?的值XXT3 W,A-ALU W,A,ALUT7 若 Z=1,则 PC MAR EM W DBUST6 PC-MAREM-WT5W-DBUS-PCPC MAR EM W DBUS42 JZ MM当零标志R_Z=1 时,跳转到MM 地址XXT4 否则:PC+1-PCPC以流程图表示如
8、下:SUBC A, MM OR A, R? JZ MMT5 T5 T5 T4T4 T4 T4 T3T3 T3 T3PCMARR? MAR EMWPCPC+1EMWPCPC+1EMW WMARA-W-cinA W OR ADBUSA EMALWWA图 4 指令的执行流程图【系统实现】1、模型机实现(七段译码器的实现)(1)逻辑电路的图形符号表示、功能七段译码器电路图形符号如图 5 所示:图 5 七段译码器电路图形符号表示(2)指令所涉及的微操作控制信号PCOE:将程序计数器 PC 的值送到主存地址寄存器 MAR 上。 MAREN:将数据总线 DBUS 的值送到主存地址寄存器 MAR 上。(3)系
9、统实现library IEEE;use IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;- Uncomment the following library 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 th
10、is code.-library UNISIM;-use UNISIM.VComponents.all;entity GL isPORT( CLK:IN STD_LOGIC;INN:IN STD_LOGIC_VECTOR(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)B
11、EGINIF CLKEVENT AND CLK=1 THENIF SEL=011 THEN SEL DATA DATA DATA DATANULL;END CASE;END IF;END PROCESS;PROCESS(DATA)BEGINCASE DATA ISWHEN 0000= LED7 LED7 LED7 LED7 LED7 LED7 LED7 LED7 LED7 LED7 LED7 LED7 LED7 LED7 LED7 LED7NULL;END CASE;END PROCESS;end Behavioral;2.逻辑电路设计(4 位 BCD 码加法器)(1)逻辑电路的图形符号表示、
12、功能图 6 4 位 BCD 码加法器的图形符号表示(2)系统实现library IEEE;use IEEE.STD_LOGIC_1164.ALL;use ieee.numeric_std.all;- Uncomment the following library declaration if using- arithmetic functions with Signed or Unsigned values-use IEEE.NUMERIC_STD.ALL;- Uncomment the following library declaration if instantiating- any X
13、ilinx 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 downto 0);ci : in std_logic;s : out std_logic_vector(3 downto 0);co : out std_logic);end guolei2;architecture Behavioral of guolei2 issignal
14、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 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 c
15、2;co= (a(3) and b(3) or (a(3) and c2) or (b(3) and c2);end Behavioral;【系统测试】(一) 、模型机实现(七段译码器的实现)1、 功能仿真仿真时用到的波形如图 7 所示:图 7 仿真时用到的波形图2、RTL 级逻辑电路七段译码器的 RTL 级电路图如图 9 所示:图 9 七段译码器 RTL 级电路图(二)硬件测试(4 位 BCD 码加法器)1、功能仿真4 位 BCD 码加法器仿真波形图如图 10 所示:图 10 4 位 BCD 码加法器仿真用到的波形图2、RTL 级逻辑电路4 位 BCD 码加法器的 RTL 级逻辑电路如图 11 所示:图 11 4 位 BCD 码加法器的 RTL 级逻辑电路图【总结】本次课设遇到很多问题,首先是软件的使用,由于是第一次接触 XILINX 软件,软件的好多功能和用法都不清楚,好多选项都不了解。不过经过查找资料以及问同学终于学会的熟练运用。接着是那个波形图的形成,好几次运行之后都是红线,显示错误。后来和同学们群里讨论