2022年计算机组成课程方案报告CISC .pdf
个人资料整理仅限学习使用X X 学 院课程设计说明书 论文)课程设计题目:组成原理课程设计学生姓名:学号:院系:专业班级:指导教师姓名及职称:起止时间:年月年月课程设计评分:教务处制)内容摘要:通过 EDA开发软件Quertus ,设计一台嵌入式的8 位 CISC 模型计算机 采用定长CPU周期或变长CPU周期),并运行能完成一定功能的机器语言程序进行验证,程序功能可以是以下两个之一:求出1 到任意一个整数N 之间的所有奇数之和并输出显示,和为单字长说明: N 从开关输入,和从数码管输出,然后输出显示停止)。先通过VHDL语言将所有部件ALU 、LS273 等)设计出来,然后根据顶层电路图做出顶层电路,最后进行引脚锁定和波形仿真、功能仿真。关键词: CISC VHDL 顶层电路功能仿真目录课程设计题目 -1 设计目的 -1 设计题目及要求 -1设计方案模型机总体设计 -1微程序控制器的组成原理框图-2 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 1 页,共 13 页个人资料整理仅限学习使用模型机机器指令格式和指令系统-2 时序产生器的设计原理及时序波形图-2 微程序流程图 -3微程序控制器单元 -4汇编语言源程序 -5机器语言的源程序 -5设计的过程与步骤设计各单元电路 -5设计 CISC模型机的顶层电路图 -7 模型机的各单元 VHDL 源程序 -7 模型机的单元电路图及系统顶层电路图-18 模型机的功能仿真和硬件验证-23 设计总结 -25参考文献 -25课程设计题目:组成原理课程设计嵌入式的 8 位 CISC模型机设计一、设计目的通过课程设计加深对计算机各功能部件的理解;掌握数据信息流和控制信息流的流动和实现过程,建立起整机概念;培养设计、开发和调试计算机的能力。提高使用 EDA 工具软件和可编程器件芯片的基本技能。培养科学研究的独立工作能力,取得工程设计与组装调试的实践和经验。二、设计题目及要求设计一台 8位的 CISC模型机,要求具有以下验证程序所要求的功能:求出 1 到任意一个整数N 之间的所有奇数之和并输出显示,和为单字长。说明:N 从开关输入,和从数码管输出,然后输出显示停止。要求学生掌握CISC 模型机的组成和工作原理,学会Quertus EDA软件的使用,能用VHDL硬件描述语言设计一个能完成一定功能的模型计算机,并通过仿真一个程序的执行来验证模型机设计的正确性。三、设计方案1. 模型机的总体设计模型机的总体设计的内容包括确定各种部件的设置以及它们之间的数据通路结构。CISC模型机由 CISC微处理器、地址寄存器AR、ROM 和 RAM 存储器等组成。微处理器由算术逻辑运算单元ALU 、状态条件寄存器、累加器 AC、数据暂存器 DR 、通用寄存器 R0R2、程序计数器PC 、指令寄存器IR、操作控制器和时序产生器组成。 CISC模型机的操作控制器采用微程序控制器。根据模型机功能要求,画出如图1所示模型机数据通路框图。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 2 页,共 13 页个人资料整理仅限学习使用图 1 模型机数据通路框图2. 微程序控制器的组成原理框图微程序控制器组成原理框图如图2。它主要由控制器、微指令寄存器和地址转移逻辑电路三大部分组成,其中微指令寄存器分为微地址寄存器和微命令寄存器两部分。图 2 微程序控制器组成原理框图3. 模型机机器指令格式和指令系统CISC模型机的指令系统采用复杂的指令格式、多种指令字长度和多种寻址方式,但指令功能强大,单条指令的执行速度较慢。根据所要求的功能,模型机的指令系统共设计了8条不同的功能指令。指令字长度有单字长 1个字节)和双字长2个字节)两种;寻址方式有三种,分别是寄存器寻址、直接寻址和立即寻址。这8条指令是 IN1输入), MOV 将一个数送入寄存器),CMP 比较), JB小于跳转), ADD 两数相加),INC自增 1), JMP 无条件跳转),OUT1 输出)。模型机的指令系统中共有8条基本指令,表1出每条指令的助记符号、指令格式和功能。表1 8 条机器指令的助记符号、指令格式和功能4时序产生器的设计原理及时序波形图CISC微处理器的时钟信号Q 和清除信号 CLR 由外部输入,节拍脉冲信号Ti 由时序产生器产生。图3述了节拍脉冲信号与外部时钟信号、清除信号的时序关系。图3 T1 、T2、T3、T4与CLR 、 Q 之间的时序关系图精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 3 页,共 13 页个人资料整理仅限学习使用由图 3看出,节拍脉冲信号T1、T2、T3、T4实际上是以 Q为时钟输入信号的计数状态经过译码器译码后生成的,因此可写出节拍脉冲信号的逻辑表达式,并用VHDL 语言实现之,然后将它创建为一个元件符号,供顶层电路调用。如果系统的时钟控制信号即工作脉冲 P)是在 T1、T2、T3或T4的中间产生,且上升沿有效,则它产生方法是:先将 Q 取反,再和节拍脉冲信号Ti 相“与”得到。5. 微程序流程图根据模型机的数据通路图图 4)以及所有指令在CISC模型机中的操作过程,画出所有机器指令的微程序流程图,如图 4所示。图中每个框为一个CPU 周期 ( 高电平有效 测试时 , 根据指令的操作码I7 I4 强制修改后继微地址的低4位,在 P(2高电平有效)测试时,根据借位标志FC和零标志 FZ进行两路分支,并且都在T4内形成后继微指令的微地址。由于微地址寄存器中的触发器异步置“ 1” 端低电平有效,与 A4 A0对应的异步置“ 1” 控制信号 SE5SE1的逻辑表达式为: A5的异步置 “ 1” 端SE6 实际未使用):7. 汇编语言源程序算法思想为:采用R0 寄存器存放从开关输入的任意一个整数,R1存放准备参加累加运算的奇数,R2 存放累加的和,用一个循环程序实现如下:功能IN1R0 从开关输入任意一个整数nR0 MOV R1,1 将立即数 1R1 L1:CMP R0,R1 将R0 的整数 n与R1 的奇数进行比较 , 锁存CY 和ZI JB L2 小于, 则转到 L2处执行ADD R1,R2 否则 , 累加求和 , 并将 R1的内容加 2, 形成下一个奇数INC R1 INC R1 JMP L1 无条件跳转到 L1处继续执行L2: OUT R2 输出累加和JMP L2 循环显示精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 5 页,共 13 页个人资料整理仅限学习使用8、机器语言的源程序根据设计的指令格式, 将汇编语言源程序手工转换成机器语言源程序, 并将其设计到模型机的ROM 中去。与汇编语言源程序对应的机器语言源程序如下: 助记符地址 十六进制)机器代码功能IN1 R0 00 10000000 SW ) R0 MOV R1,1 01 10010001 1 R1 02 00000001 MOV R2,0 03 10010010 0 R2 04 00000000 L1:CMP R0,R1 05 10100001 R0 )-R1),锁存 CY 和ZI JB L2 06 10110000 若小于,则 L2PC 07 00001101 ADD R1,R2 08 11000110 R1 )+R2) R2 INC R1 09 11010001 R1)+1R1 INC R1 0A11010001 R1 )+1R1 JMP L1 0B 11100000 L1 PC 0C 00000101 L2: OUT R2 0D 11111000 R2) LED JMP L2 0E 11100000 L2 PC 0F00001101 四、设计的过程与步骤1、设计各单元电路首先设计出模型机中所有的单元部件,可以使用VHDL 语言文件 对模型机中的各个部件进行设计,并使之成为可供系统调用的元件符号。 ALU 单元算术逻辑运算单元ALU 可执行三种运算,即加、比较和加1运算。 ALU 的三种运算受S0、S1控制。 状态条件寄存器单元状态条件寄存器用来在进行比较运算时锁存借位标志FC/CY )和零标志 FZ/ZI ),在进行条件转移时其内容作为判断的依据。 暂存寄存器、通用寄存器、地址寄存器、指令寄存器单元模型机中暂存寄存器、通用寄存器、地址寄存器、指令寄存器都采用8位数据寄存器 LS273元件,只是上述各个寄存器实体的命名分别为:AC,DR,R0,R1,R2,AR,IR 1:2分配器单元1:2分配器单元用来将ALU 的运算结果或通用寄存器的内容经3选1多路选择器)回送到数据总线,或者将ALU 的运算结果或通用寄存器的内容送往输出设备显示。 3选1数据选择器单元3选1数据选择器单元MUX3 在数据输入控制信号SW_B 、只读存储器片选控制信号CS 的控制下,用来从外部输入数据端 ID7.0、4选1多路选择器的输出端N17.0和只读存储器 ROM 的输出端 N27.0选择一个 8位的数据进入内部数据总线 4选1数据选择器单元4选1数据选择器单元MUX4 在数据输入控制信号CR0_B )、 DR1_B )、 ER2_B )、 FALU_B )的控制下,用来从有三个通用寄存器的数据输出端和ALU 的数据输出端选择一个8位的数据输入1:2分配器的数据输入端。 程序计数器单元程序计数器单元的元件符号如图4-24 ,它在控制信号的控制下具有清“0”,置计数初值和加1功能,其作用是保证程序的顺序执行,在执行跳转指令时,通过修改PC 的值达到程序转移分支的目的。程序计数器PC的输出直接送往地址寄存器ARLS273 芯片) 主存储器单元CISC模型机由于只运行完成一定功能的程序而不需要进行数据处理,所以只采用ROM 芯片作为它的主存储器单元,没有配置读写存储器RAM 芯片。它的主存储器单元是一片256 8位的 ROM 芯片,如图 4-25所示。ADDR7.0 为8位坡地输入端,CS为片选信号, DOUT7.0 为8位数据输出端。在CISC模型机中, ROM 芯片的读操作时序如图4-26所示。 ROM 的读操作仅与片选信号CS 有关, CS为低电平有效,有效电平的范围为一个CPU周期。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 6 页,共 13 页个人资料整理仅限学习使用 时序产生器单元时序产生器主要用来产生节拍脉冲信号T1、 T2、T3、T4),对各种控制信号实施时间上控制。时序产生器单元元件符号如图4-27 所示,它内容采用一个2位普通计数器,计数值译码后产生节拍脉冲信号T1、T2、T3、 T4), Q为外部时钟输入信号。 微程序控制器单元微程序控制器器由地址转移逻辑电路ADDR 、微地址寄存器aa、控制存储器CONTROM和微命令寄存器MCOMMAND等几部分组成。为了方便电路的设计与连线,在进行本模型机微程序控制器单元内部结构设计时,增加了 F1、F2和F3共三个用于多根单线与总线之间转换的器件。a、 地址转换逻辑电路ADDR )b、 微地址寄存器aa)微地址寄存器aa 设计的实验操作方法说明: 它需要采用Quertus 的 VHDL文本设计法和电路图形设计法相结合的方法完成。首先用VHDL文本设计法完成触发器MMM 元件符号的创建,然后用图形输入设计法完成微地址寄存器aa 元件符号创建。c、 控制存储器 CONTROM)d、 微命令寄存器。B: IN STD_LOGIC_VECTOR(7 DOWNTO 0。S1,S0: IN STD_LOGIC 。BCDOUT: OUT STD_LOGIC_VECTOR(7 DOWNTO 0 。CY,ZI: OUT STD_LOGIC 。END ALU 。ARCHITECTURE A OF ALU IS SIGNAL AA,BB,TEMP:STD_LOGIC_VECTOR(8 DOWNTO 0。BEGIN PROCESS(S1,S0 BEGIN IF(S1=0 AND S0=0 THEN -ADD AA=0&A 。BB=0&B 。TEMP=AA+BB。BCDOUT。CY 。IF (TEMP=100000000 THEN 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 7 页,共 13 页个人资料整理仅限学习使用ZI=1 。ELSE ZI THEN -CMP(SUB BCDOUT=A-B 。IF(A THEN CY=1 。ZI THEN CY=0 。ZI=1 。ELSE CY=0 。ZI THEN -INC AA=0&A 。TEMP=AA+1 。BCDOUT。CY 。IF (TEMP=100000000 THEN ZI=1 。ELSE ZI=0 。END IF 。ELSE BCDOUT=00000000 。CY=0 。ZI。END LS74 。ARCHITECTURE A OF LS74 IS BEGIN PROCESS(LDFR BEGIN IF(LDFREVENT AND LDFR=1 THEN FC=CY 。FZ。CLK: IN STD_LOGIC。O: OUT STD_LOGIC_VECTOR(7 DOWNTO 0 。END LS273 。ARCHITECTURE A OF LS273 IS BEGIN PROCESS(CLK BEGIN IF(CLKEVENT AND CLK=1 THEN O。W1,W2:OUT STD_LOGIC_VECTOR(7 DOWNTO 0 。END FEN2 。ARCHITECTURE A OF FEN2 IS BEGIN PROCESS(LED_B,WR BEGIN IF(LED_B=0 AND WR=0 THEN W2=X 。ELSE W1。SW_B,CS:IN STD_LOGIC。N1,N2:IN STD_LOGIC_VECTOR(7 DOWNTO 0。EW:OUT STD_LOGIC_VECTOR(7 DOWNTO 0 。END MUX3 。ARCHITECTURE A OF MUX3 IS BEGIN PROCESS(SW_B,CS BEGIN IF(SW_B=0 THEN EWTHEN EW=N2 。ELSE EW。W: out STD_LOGIC_VECTOR(7 DOWNTO 0 。END MUX4 。ARCHITECTURE A OF MUX4 IS SIGNAL SEL: STD_LOGIC_VECTOR(3 DOWNTO 0。BEGIN SEL BEGIN - CASE SEL IS - WHEN 1110= - W - W - W - W - NULL 。-END CASE 。IF(SEL=1110 THEN -R0_out W THEN -R1_out W THEN -R2-out W THEN -ALU_out W。O: OUT STD_LOGIC_VECTOR(7 DOWNTO 0 。END PC。ARCHITECTURE A OF PC IS SIGNAL QOUT: STD_LOGIC_VECTOR(7 DOWNTO 0。BEGIN PROCESS(LDPC,CLR,load BEGIN IF(CLR=0 THEN QOUT THEN IF(load=0 THEN QOUTPC ELSE QOUT=QOUT+1 。 -PC+1 END IF 。END IF 。END PROCESS。O。ADDR:IN STD_LOGIC_VECTOR(7 DOWNTO 0。CS:IN STD_LOGIC 。END ROM16 。ARCHITECTURE A OF ROM16 IS BEGIN DOUT。END COUNTER 。ARCHITECTURE A OF COUNTER IS SIGNAL X: STD_LOGIC_VECTOR(1 DOWNTO 0。BEGIN PROCESS(Q,CLR BEGIN IF(CLR=0 THEN T2=0。T3=0。T4=0。X THEN X=X+1 。T2 AND X(0。T3 AND (NOT X(0。T4 AND X(0。END IF 。END PROCESS。END A 。-地址转换逻辑电路的VHDL 源程序 ADDR.vhd LIBRARY IEEE 。USE IEEE.STD_LOGIC_1164.ALL。ENTITY ADDR IS PORT( I7,I6,I5,I4:IN STD_LOGIC。FZ,FC,T4,P1,P2:IN STD_LOGIC。SE6,SE5,SE4,SE3,SE2,SE1:OUT STD_LOGIC 。END ADDR 。ARCHITECTURE A OF ADDR IS BEGIN SE6=1。SE5AND P2 AND T4。SE4。SE3。SE2。SE1。END A 。-触发器 MMM 的 VHDL 源程序 MMM.vhd LIBRARY IEEE 。USE IEEE.STD_LOGIC_1164.ALL。ENTITY MMM IS PORT( SE:IN STD_LOGIC 。T2:IN STD_LOGIC 。D:IN STD_LOGIC 。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 12 页,共 13 页个人资料整理仅限学习使用CLR:IN STD_LOGIC。UA:OUT STD_LOGIC 。END MMM 。ARCHITECTURE A OF MMM IS BEGIN PROCESS(CLR,SE,T2 BEGIN IF(CLR=0 THEN UATHEN UA THEN UA=D 。END IF 。END PROCESS。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 13 页,共 13 页