东北大学秦皇岛分校电子信息系专业名称计算机科学与技术班级学号学生姓名指导教师袁静波设计时间2011.1214~2011.1226课程设计任务书专业:计算机科学与技术学号:学生姓名:设计题目:指令系统及指令寄存器及8位奇偶校验电路设计一、设计实验条件综合实验楼二、设计任务及要求1.指令:6,19,28,46号指令2.指令寄存器3.8位奇偶校验电路三、设计报告的内容1.设计题目与设计任务题目:指令系统及ALU设计1. 6,19,28,46号指令指令的设计。
2. 指令寄存器设计。
3. 8位奇偶校验电路2.前言融会贯通计算机组成原理课程的内容,通过知识的综合运用,加深对计算机系统各个模块的工作原理及相互联系的认识;学习运用VHDL进行FPGA/CPLD设计的基本步骤和方法,熟悉EDA的设计、模拟调试工具的使用,体会FPGA/CPLD技术相对于传统开发技术的优点;培养科学研究的独立工作能力,取得工程设计与组装调试的实践经验。
3.设计主体【模型机设计】1.指令系统设计:第19号指令:助记符:SUBC A,MM;格式:操作码和地址码。
功能:从累加器A中减去MM地址的值,减进位。
寻址方式:寄存器间接寻址方式。
第6号指令:助记符:ADD A, @R?格式:操作码和地址码。
功能:将间址存储器的值加入累加器A中寻址方式:寄存器间接寻址第28号指令:助记符:OR A, #II格式:操作码和地址码。
功能:累加器A“或”立即数II。
寻址方式:直接寻址方式。
第46号指令:助记符:CMP A, R?格式:操作码,地址码功能:比较A与R?是否相等,即A-R,置标志位Z寻址方式:寄存器直接寻址2.模型机硬件设计题目:指令寄存器IR设计功能:保存当前正在执行的指令由一片74LS273构成:其输入端接自总线单元(BUS UNIT)的D7-D0。
输出端为I7~I0即指令码,操作码供INS UNIT单元的指令译码电路使用,寄存器地址字段SR、DR供寄存器译码电路使用。
控制信号:LIR,在T3节拍有效,将数据总线上的数据(指令码)打入IR。
3.逻辑电路设计:题目:8位奇偶校验电路功能:N=8,便是8位奇偶校验电路【系统设计】1.模型机逻辑框图图1 整机逻辑框图图2芯片引脚逻辑框图图3 CPU逻辑框图2. 指令系统设计及微操作控制信号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打入允许,与指令寄存器IR3、IR2位结合,控制程序跳转。
9、FSTC:进位置1,CY=110、 FCLC:进位置0,CY=011、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:决定运算器是否带进位移位,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做何种运算。
3.指令执行流程:第10,24,34号指令用表格表示如下:【系统实现】1、指令寄存器(1)RTL逻辑电路功能描述:通过clk,rst,LIR来控制dbus对IR的输入(2)系统实现library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;---- Uncomment the following library declaration if instantiating---- any Xilinx primitives in this code.--library UNISIM;--use UNISIM.VComponents.all;entity IREGISTER isPort ( clk : in STD_LOGIC;rst : in STD_LOGIC;LIR : in STD_LOGIC;IR : out STD_LOGIC_VECTOR (15 downto 0);D_BUS : in STD_LOGIC_VECTOR (15 downto 0)); end IREGISTER;architecture Behavioral of IREGISTER isbeginPROCESS(clk, rst, LIR)BEGINIF rst = '1' THENIR <= (OTHERS=>'0');ELSIF clk'EVENT AND clk = '1' THENIF (LIR = '0') THENIR <= D_BUS;END IF;END IF;END PROCESS;end Behavioral;2、八位奇偶校验电路设计(1)RTL级逻辑电路8位奇偶校验电路(2)系统实现library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity x isport(a:in std_logic_vector(7 downto 0);y:out std_logic );end x;architecture Behavioral of x isBEGINPROCESS(a)variable tmp:std_logic;BEGINtmp :='0';FOR n IN 0 TO 7 LOOPtmp := tmp XOR a(n);END LOOP ;y<= tmp;END PROCESS;end Behavioral;【系统测试】(一)、指令寄存器1、功能仿真仿真过程如下:●在sources窗口处右击,加入新的源文件●创建波形仿真激励文件.tbw:选Test Bench Waveform,并输入文件名test_ir●初始化时钟周期及相关参数→finash●右侧会出现.tbw文件窗口,设置输入引脚的值,存盘●左侧sources窗口选择“behavioral simulation”,下面processes窗口会自动出现"Modelsim Simulator"●双击其中的“Simulate behavioral model”会自动调用“Modelsim ”进行仿真,观察仿真波形由此图可知,当rst=0,LIR=0时,dbus按时序信号clk输入IR,符合设计要求由此图可知,当LIR=1时,dbus不能输入IR,rst=0时,IR重置为全0,符合设计要求通过仿真证实:上述程序能够实现指令寄存器的设计图8 RTL级逻辑电路(二)八位奇偶校验电路1、功能仿真仿真过程如下:●在sources窗口处右击,加入新的源文件●创建波形仿真激励文件.tbw:选Test Bench Waveform,并输入文件名test_8b●初始化时钟周期及相关参数→finash●右侧会出现.tbw文件窗口,设置输入引脚的值,存盘●左侧sources窗口选择“behavioral simulation”,下面processes窗口会自动出现"Modelsim Simulator"●双击其中的“Simulate behavioral model”会自动调用“Modelsim ”进行仿真,观察波形窗口,观察是否正确分析图可知当输入数据中的个数位奇数时,输出为1,输入数中1的个数为偶数时输出为为0,符合设计要求通过仿真证实:上述程序能够实现8位奇偶校验电路的设计四.心得体会通过此次课程设计我学习到了运用VHDL进行FPGA/CPLD设计的基本步骤和方法,熟悉EDA的设计、模拟调试工具的使用,体会FPGA/CPLD技术相对于传统开发技术的优点,同时培养科学研究的独立工作能力,取得工程设计与组装调试的实践经验。
但是在此过程中也遇到了很多困难,比如在设计开始的阶段对于XILINX ISE 和Modelsim SE这两个软件就不会用,通过和同学交流我大概了解了软件的用法,学习到了很多知识五.参考文献[1] 袁静波. 计算机组成与结构机械工业出版社,2011.[2] 汤小丹计算机操作系统西安电子电子科技大学出版社。