嵌入式的8位CISC模型机设计课程设计_第1页
嵌入式的8位CISC模型机设计课程设计_第2页
嵌入式的8位CISC模型机设计课程设计_第3页
嵌入式的8位CISC模型机设计课程设计_第4页
嵌入式的8位CISC模型机设计课程设计_第5页
已阅读5页,还剩24页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

1、嵌入式的 8 位 CISC 模型机设计目录、设计目的 - 1 -、设计题目及要求 - 1 -、rt 、【 一三、设计方案 - 1 -1. 模型机的总体设计 - 1 -3. 模型机机器指令格式和指令系统 - 2 -4时序产生器的设计原理及时序波形图 - 2 -5. 微程序流程图 - 3 -6、微程序控制器单元 - 4 -8、机器语言的源程序 - 5 -四、设计的过程与步骤 - 5 -1、设计各单元电路 - 5 -ALU 单元 - 5 -状态条件寄存器单元 - 6 -暂存寄存器、通用寄存器、地址寄存器、指令寄存器单元 - 6 -1: 2分配器单元 - 6 -3选 1 数据选择器单元 - 6 -4选

2、 1 数据选择器单元 - 6 -程序计数器单元 - 6 -主存储器单元 - 6 -时序产生器单元 - 6 -微程序控制器单元 - 6 -2、设计 CISC 模型机的顶层电路图 - 7 -五、模型机的各单元 VHDL 源程序-ALU 的 VHDL 源程序 ALU.vhd - 7 -状态条件寄存器的 VHDL 源程序 LS74.vhd - 8 - 8 位数据寄存器的 VHDL 源程序 LS273.vhd - 9 - 1 : 2分配器的 VHDL 源程序 FEN2.vhd - 9 -3 选 1 数据选择器单元 VHDL 源程序 MUX3.vhd - 10 -4 选 1 数据选择器单元 VHDL 源程

3、序 MUX4.vhd - 10 -程序计数器单元 VHDL 源程序 PC.vhd - 11 -主存储器单元 VHDL 源程序 ROM16.vhd - 12 -时序产生器单元的 VHDL 源程序 COUNTER.vhd - 12 -控制存储器 CONTROM 的 VHDL 源程序 CONTROM.vhd - 14 -微命令寄存器 MCOMMAND 的 VHDL 源程序 MCOMMAND.vhd - 15 -微地址转换器 F2的VHDL源程序 F2.vhd- 17 -微地址转换器 F3的VHDL源程序 F3.vhd- 17 -六、模型机的单元电路图及系统顶层电路图 - 18 -七、模型机的功能仿真

4、和硬件验证 - 23 -1、 功能仿真波形图 - 23 -2、 硬件验证 - 24 -八、 设计总结-24 -九、 参考文献-24 -课程设计题目:组成原理课程设计嵌入式的8位CISC模型机设计一、设计目的通过课程设计加深对计算机各功能部件的理解;掌握数据信息流和控制信息流的流动和实现过程,建立起整机概念;培养设计、开发和调试计算机的能力。提高使用EDA工具软件和可编程器件芯片的基本技能。培养科学研究的独立工作能力,取得工程设计与组装调试的实践和经验。、设计题目及要求-5 -设计一台8位的CISC模型机,要求具有以下验证程序所要求的功能:求出1到任意一个整数 N之间的所有奇数之和并输出显示,和

5、为单字长。说明:N从开关输入,和从数码管输出,然后输出显示停止。要求学生掌握 CISC模型机的组成和工作原理,学会Quertus EDA 软件的使用,能用VHDL硬件描述语言设计一个能完成一定功能的模型计算机,并通过仿真一个程序的执行来 验证模型机设计的正确性。三、设计方案1.模型机的总体设计模型机的总体设计的内容包括确定各种部件的设置以及它们之间的数据通路结构。CISC模型机由CISC微处理器、地址寄存器 AR、ROM和RAM存储器等组成。微处理器 由算术逻辑运算单元 ALU、状态条件寄存器、累加器AC、数据暂存器DR、通用寄存器R0R2、程序计数器PC、指令寄存器IR、操作控制器和时序产生

6、器组成。CISC模型机的操作控制器采用微程序控制器。根据模型机功能要求,画出如图1所示模型机数据通路框图。图1模型机数据通路框图2微程序控制器的组成原理框图微程序控制器组成原理框图如图2。它主要由控制器、微指令寄存器和地址转移逻辑电路三大部分组成,其中微指令寄存器分为微地址寄存器和微命令寄存器两部分。图2微程序控制器组成原理框图3模型机机器指令格式和指令系统CISC模型机的指令系统采用复杂的指令格式、多种指令字长度和多种寻址方式,但指令功能强大,单条指令的执行速度较慢。根据所要求的功能, 模型机的指令系统共设计了8条不同的功能指令。指令字长度有单字长(1个字节)和双字长(2个字节)两种;寻址方

7、式有三种,分别是寄存器寻址、直接寻址和立即寻址。这8条指令是IN1 (输入),MOV (将一个数送入寄存器),CMP (比较),JB (小于跳转),ADD (两数相加),INC (自增1),JMP (无条件跳转),OUT1 (输出)。模型机的指令系统中共有 8条基本指令,表1出每条指令的助记符号、指令格式和功能。表18条机器指令的助记符号、指令格式和功能4 时序产生器的设计原理及时序波形图CISC微处理器的时钟信号 Q和清除信号CLR由外部输入,节拍脉冲信号Ti由时序产生器产生。图3述了节拍脉冲信号与外部时钟信号、清除信号的时序关系。31i -jTTTTTTTj-LTL1IF i ii11aU

8、 lT3j阳j1J 节CPU両搠 -H图3 T1、T2、T3、T4与CLR、Q之间的时序关系图由图3看出,节拍脉冲信号 T1、T2、T3、T4实际上是以Q为时钟输入信号的计数状态经 过译码器译码后生成的,因此可写出节拍脉冲信号的逻辑表达式,并用VHDL语言实现之,然后将它创建为一个元件符号,供顶层电路调用。如果系统的时钟控制信号(即工作脉冲P)是在T1、T2、T3或T4的中间产生,且上升沿有效,则它产生方法是:先将Q取反,再和节拍脉冲信号 Ti相“与”得到。5微程序流程图根据模型机的数据通路图(图 器指令的微程序流程图,如图4)以及所有指令在 CISC模型机中的操作过程,画出所有机4所示。图中

9、每个框为一个 CPU周期(包含T1T4共4个节拍脉冲周期)对应于一条微指令。 框中上面的十六进制数表示的是当前微指令在控制存储器中的微地址;框中下面的十六进制数表示的是当前微指令的后续微坡地。在编写微指令时,图中的菱形框从属于它上面的方框。OUTIMDV0TCKPT+ IBl.Ji -iJttAC-ORwsw-JJUSBUS-M.SPCAR1ROM BUS BUSRd1Hi BUS fti s-RDMUliSlRwkd-*BUSRUSK -ARPC+11 -1L “iuAC+ 1 RUSRDM- HlBUS-*DRBUSBUSf KJHr* 81 IS20FZ- L 审KF)FZO IlK-l

10、图4 CISC模型机中所有机器指令的微程序流程图6、微程序控制器单元1)设计微指令格式和微指令代码表CISC模型机系统使用的微指令采用全水平型微指令,字长25位,其中微指令字段17位,P字段2位,后续微地址 6位。由微指令格式和微程序流程图编写的微指令代码表2所示微地址PLP2后进ttt地竝oootnnI11001100i00i1i10V0OQOOIDDOOOlfl1t0i0I1Q0i00L01!01&001000tnooiiL0001iI4)01fl01011000(WOOQ001001000001Q0101I111000nonioiCXX)101L0Q001101i0flII11I00(M

11、KMKX)Q0011010000o10ni01111100IJoooin0(101111n0D1i1G00001t1I0(0oocwoo00100010a0Ii10o1a011Q1打00oooooo00100111i00i1001j0111000(XXX11100101010000i000I101iT1000oooioo001 on11i00iI00I0011i1aQ1iwmo0011001000oI0001J0L1L10D0OOU1Wooimi1000001001011110u001(X110001 HO11100110uI00111100,0010011onmi1flnfl0I00a100

12、0iI0000000(1000100W1000I1I10000111I000noaanc01WH0ID001100I00Ia10DQouugou1000000Io00110Q1DD10I1&00ooowwnuoDO10o00110010011i1000000000表2微指令代码表2) 设计地址转移逻辑电路地址转移逻辑电路是根据微程序流程图4中的菱形部分及多个分支微地址,利用微地址寄存器的异步置“ 1”端,实现微地址的多路转移。在图4中进行P(1)(高电平有效)测试时,根据指令的操作码I714强制修改后继微地址的低 4位,在P(2)(高电平有效)测试时, 根据借位标志FC和零标志FZ进行两路分支

13、,并且都在 T4内形成后继微指令的微地址。 由于微地址寄存器中的触发器异步置“1”端低电平有效,与U A4UAO对应的异步置“ 1 ”控制信号SE5SE1的逻辑表达式为:(UA5的异步置“ 1”端SE6实际未使用):SE5=2八 P T45E4P7 (1厂“4SE3=T6 P(l) - T4SE215 *SFl=T4 P(l) * T47. 汇编语言源程序算法思想为:采用R0 寄存器存放从开关输入的任意一个整数,R1 存放准备参加累加运算的奇数,R2 存放累加的和,用一个循环程序实现如下:功能IN1R0从开关输入任意一个整数n t R0MOVR1,1将立即数 1tR1(R1 用于存放参与运算的

14、奇数)MOVR2,0将立即数 0tR2 (R2 用于存放累加和)L1:CMPR0,R1将 R0 的整数 n 与 R1 的奇数进行比较,锁存 CY 和 ZIJBL2小于 ,则转到 L2 处执行ADDR1,R2否则 ,累加求和 ,并将 R1 的内容加2,形成下一个奇数INCR1INCR1JMPL1无条件跳转到 L1 处继续执行L2: OUTR2输出累加和JMP L2循环显示8、机器语言的源程序根据设计的指令格式 ,将汇编语言源程序手工转换成机器语言源程序,并将其设计到模型机的 ROM 中去。与汇编语言源程序对应的机器语言源程序如下 :助记符地址(十六进制)机器代码功能IN1 R0001000000

15、0( SW)t R0MOV R1,101100100011 tR10200000001MOV R2,003100100100tR20400000000L1:CMP R0,R10510100001( R0) -( R1 ),锁存 CY 和 ZIJB L20610110000若小于,则 L2tPC0700001101ADD R1,R20811000110( R1 ) +( R2)t R2INC R10911010001( R1) +1 tR1INC R10A11010001(R1 ) +1 tR1JMP L10B11100000L1 tPC0C00000101L2: OUT R20D1111100

16、0( R2)t LEDJMP L20E11100000L2tPC0F00001101四、设计的过程与步骤1、设计各单元电路首先设计出模型机中所有的单元部件,可以使用VHD语言文件(.vhd )或者电路图形描述文件 (.gdf) 对模型机中的各个部件进行设计,并使之成为可供系统调用的元件符号。ALU 单元算术逻辑运算单元 ALU可执行三种运算,即加、比较和加1运算。ALU的三种运算受S0S1控制。状态条件寄存器单元状态条件寄存器用来在进行比较运算时锁存借位标志(FC/CY)和零标志(FZ/ZI ),在进行条件转移时其内容作为判断的依据。 暂存寄存器、通用寄存器、地址寄存器、指令寄存器单元模型机中

17、暂存寄存器、 通用寄存器、地址寄存器、 指令寄存器都采用 8位数据寄存器 LS273 元件,只是上述各个寄存器实体的命名分别为: AC,DR,R0,R1,R2,AR,IR 1:2 分配器单元1: 2分配器单元用来将 ALU勺运算结果或通用寄存器的内容(经3选1多路选择器)回送到数据总线,或者将 ALU的运算结果或通用寄存器的内容送往输出设备显示。 3选1数据选择器单元3选1数据选择器单元MUX在数据输入控制信号 SW_B只读存储器片选控制信号 CS勺控制 下,用来从外部输入数据端 ID7.0 、 4选1多路选择器的输出端 N17.0 和只读存储器 ROM 的输出端 N27.0 选择一个 8位的

18、数据进入内部数据总线4 选 1 数据选择器单元4选1数据选择器单元 MUX在数据输入控制信号 C ( RO_B、D( R1_B、E ( R2_B、F(ALU_E)的控制下,用来从有三个通用寄存器的数据输出端和ALU的数据输出端选择一个 8位的数据输入 1: 2分配器的数据输入端。程序计数器单元程序计数器单元的元件符号如图 4-24,它在控制信号的控制下具有清“0”,置计数初值和加1功能,其作用是保证程序的顺序执行,在执行跳转指令时,通过修改PC勺值达到程序转移分支的目的。程序计数器PC的输出直接送往地址寄存器 AR ( LS273芯片)主存储器单元CISC莫型机由于只运行完成一定功能的程序而不

19、需要进行数据处理,所以只采用R0芯片作为它的主存储器单元,没有配置读写存储器RAM芯片。它的主存储器单元是一片 256X 8位的R0芯片,如图4-25所示。ADDR7.O为8位坡地输入端,CS为片选信号,DOUT7.0为 8位数据输出端。在CISC模型机中,ROMP片的读操作时序如图 4-26所示。RO的读操作仅与 片选信号CS有关,CS为低电平有效,有效电平的范围为一个CPU周期。时序产生器单元时序产生器主要用来产生节拍脉冲信号( T1、 T2、 T3、 T4 ,对各种控制信号实施时间 上控制。时序产生器单元元件符号如图 4-27所示,它内容采用一个 2位普通计数器,计数值 译码后产生节拍脉

20、冲信号(T1、T2、T3、T4) , C为外部时钟输入信号。 微程序控制器单元微程序控制器器由地址转移逻辑电路ADDR微地址寄存器aa、控制存储器CONTROM微命令寄存器MCOMMA等几部分组成。为了方便电路的设计与连线,在进行本模型机微程序控 制器单元内部结构设计时,增加了F1、F2和F3共三个用于多根单线与总线之间转换的器件。a、地址转换逻辑电路( ADDRb、微地址寄存器( aa微地址寄存器aa设计的实验操作方法说明:它需要采用Quertus n的VHDL文本设计法 和电路图形设计法相结合的方法完成。首先用 VHDL文本设计法完成触发器 MMI元件符号的 创建,然后用图形输入设计法完成

21、微地址寄存器aa元件符号创建。c 、 控制存储器( CONTRO)Md、微命令寄存器( MCOMMA)NDe、微地址转换器 F1f、地址转换器 F2g、地址转换器 F2h. 微程序控制器单元crom设计的实验操作方法说明:首先用Quertus n文本设计法完成地 址转换逻辑电路ADDR控制存储器CONTROM微命令寄存器MCOMMA、微地址转换器F1、 微地址转换器F2和微地址转换器F3等元件符号的创建;然后用 QuertusII的文本输入法和 图形输入设计法相结合的方法完成微地址寄存器aa元件符号创建;最后用图形输入设计法完成微程序控制器单元 crom编译和元件符号创建。2、设计 CISC

22、模型机的顶层电路图在完成了 CISC莫型机的所有单元元件的设计后,就可以进行CISC莫型机的顶层电路或顶层文件设计工作。其顶层电路的功能也可直接采用VHD语言程序来描述。五、模型机的各单元 VHDL 源程序-ALU 的 VHDL 源程序 ALU.vhdLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.all;ENTITY ALU ISPORT(A: IN STD_LOGIC_VECTOR(7 DOWNTO 0);B: IN STD_LOGIC_VEC

23、TOR(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 ISSIGNAL AA,BB,TEMP:STD_LOGIC_VECTOR(8 DOWNTO 0);BEGINPROCESS(S1,S0)BEGINIF(S1=0 AND S0=0) THEN -ADDAA=0&A;BB=0&B;TEMP=AA+BB;BCDOUT=TEMP(7 DOWNTO 0);CY=TEMP(8);IF (TEMP=1

24、00000000) THENZI=1;ELSEZI=0;END IF;ELSIF(S1=0 AND S0=1) THEN -CMP(SUB)BCDOUT=A-B;IF(AB) THENCY=1;ZI=0;ELSIF(A=B) THENCY=0;ZI=1;ELSECY=0;ZI=0;END IF;ELSIF(S1=1 AND S0=0) THEN -INCAA=0&A;TEMP=A+1;BCDOUT=TEMP(7 DOWNTO 0);CY=TEMP(8);IF (TEMP=100000000) THENZI=1;ELSEZI=0;END IF;ELSEBCDOUT=00000000 ;CY=0;

25、ZI=0;END IF;END PROCESS;END A;-状态条件寄存器的 VHDL 源程序 LS74.vhdLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY LS74 ISPORT(LDFR: IN STD_LOGIC;CY,ZI: IN STD_LOGIC;FC,FZ: OUT STD_LOGIC);END LS74;ARCHITECTURE A OF LS74 ISBEGINPROCESS(LDFR)BEGINIF(LDFREVENT AND LDFR=1) THENFC=CY;FZ=ZI;END IF;END PROCESS;END A

26、;- 8 位数据寄存器的 VHDL 源程序 LS273.vhdLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY LS273 ISPORT(D: IN STD_LOGIC_VECTOR(7 DOWNTO 0);CLK: IN STD_LOGIC;O: OUT STD_LOGIC_VECTOR(7 DOWNTO 0) );END LS273;ARCHITECTURE A OF LS273 ISBEGINPROCESS(CLK)BEGINIF(CLKEVENT AND CLK=1) THENO=D;END IF;END PROCESS;END A;- 1

27、:2 分配器的 VHDL 源程序 FEN2.vhdLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY FEN2 ISPORT(WR,LED_B:IN STD_LOGIC;X:IN STD_LOGIC_VECTOR(7 DOWNTO 0);W1,W2:OUT STD_LOGIC_VECTOR(7 DOWNTO 0) );END FEN2;ARCHITECTURE A OF FEN2 ISBEGINPROCESS(LED_B,WR)BEGINIF(LED_B=0 AND WR=0) THEN W2=X;ELSEW1=X;END IF;END PROCES

28、S;END A;-3 选 1 数据选择器单元 VHDL 源程序 MUX3.vhdLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY MUX3 ISPORT(ID:IN STD_LOGIC_VECTOR(7 DOWNTO 0);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 ISBEGINPROCESS(SW_B,CS)BEGINIF(SW_B=0)

29、 THENEW=ID;ELSIF(CS=0)THENEW=N2;ELSEEW=N1;END IF;END PROCESS;END A;-4 选 1 数据选择器单元 VHDL 源程序 MUX4.vhdLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY MUX4 ISPORT(C,D,E,F: IN STD_LOGIC;X1,X2,X3,X4: IN STD_LOGIC_VECTOR(7 DOWNTO 0);W: out STD_LOGIC_VECTOR(7 DOWNTO 0);END MUX4;ARCHITECTURE A OF MUX4 ISSIGN

30、AL SEL: STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINSEL - W- W- W- W- NULL;-END CASE;IF(SEL=1110) THEN -R0_outW=X1;ELSIF(SEL=1101) THEN -R1_outW=X2;ELSIF(SEL=1011) THEN -R2-outW=X3;ELSIF(SEL=0111) THEN -ALU_out W=X4;ELSEnull;END IF;END PROCESS;END A;-程序计数器单元 VHDL 源程序 PC.vhdLIBRARY IEEE;USE IEEE.STD_LOGIC_1164

31、.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY PC ISPORT(load,LDPC,CLR: IN STD_LOGIC;D: IN STD_LOGIC_VECTOR(7 DOWNTO 0);O: OUT STD_LOGIC_VECTOR(7 DOWNTO 0);END PC;ARCHITECTURE A OF PC ISSIGNAL QOUT: STD_LOGIC_VECTOR(7 DOWNTO 0); BEGINPROCESS(LDPC,CLR,load)BEGINIF(CLR=0) THE

32、N QOUT=00000000;ELSIF(LDPCEVENT AND LDPC=1) THENIF(load=0) THEN QOUTPC ELSEQOUT=QOUT+1; -PC+1END IF;END IF;END PROCESS;O=QOUT;END A;-主存储器单元 VHDL 源程序 ROM16.vhdLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY ROM16 ISPORT(DOUT:OUT STD_LOGIC_V

33、ECTOR(7 DOWNTO 0); ADDR:IN STD_LOGIC_VECTOR(7 DOWNTO 0);CS:IN STD_LOGIC);END ROM16;ARCHITECTURE A OF ROM16 ISBEGINDOUT=10000000 WHEN ADDR=00000000 AND CS=0 ELSE 10010001 WHEN ADDR=00000001 AND CS=0 ELSE 00000001 WHEN ADDR=00000010 AND CS=0 ELSE 10010010 WHEN ADDR=00000011 AND CS=0 ELSE 00000000 WHEN

34、 ADDR=00000100 AND CS=0 ELSE 10100001 WHEN ADDR=00000101 AND CS=0 ELSE 10110000 WHEN ADDR=00000110 AND CS=0 ELSE 00001101 WHEN ADDR=00000111 AND CS=0 ELSE 11000110 WHEN ADDR=00001000 AND CS=0 ELSE 11010001 WHEN ADDR=00001001 AND CS=0 ELSE 11010001 WHEN ADDR=00001010 AND CS=0 ELSE 11100000 WHEN ADDR=

35、00001011 AND CS=0 ELSE 00000101 WHEN ADDR=00001100 AND CS=0 ELSE 11111000 WHEN ADDR=00001101 AND CS=0 ELSE 11100000 WHEN ADDR=00001110 AND CS=0 ELSE 00001101 WHEN ADDR=00001111 AND CS=0 ELSE 00000000;END A;-时序产生器单元的 VHDL 源程序 COUNTER.vhd LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARI

36、TH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY COUNTER ISPORT(Q,CLR: IN STD_LOGIC;T2,T3,T4: OUT STD_LOGIC);END COUNTER;ARCHITECTURE A OF COUNTER ISSIGNAL X: STD_LOGIC_VECTOR(1 DOWNTO 0); BEGINPROCESS(Q,CLR)BEGINIF(CLR=0) THENT2=0;T3=0;T4=0;X=00;ELSIF(QEVENT AND Q=1) THENX=X+1;T2=(NOT X(1) AND X(0);T3

37、=X(1) AND (NOT X(0);T4=X(1) AND X(0);END IF;END PROCESS;END A;-地址转换逻辑电路的 VHDL 源程序 ADDR.vhd LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY ADDR ISPORT(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 ISBEGINSE6=1;SE5=NOT(NOT

38、FC OR FZ)AND P2 AND T4);SE4=NOT(I7 AND P1 AND T4);SE3=NOT(I6 AND P1 AND T4);SE2=NOT(I5 AND P1 AND T4);SE1=NOT(I4 AND P1 AND T4);END A;-触发器 MMM 的 VHDL 源程序 MMM.vhdLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY MMM ISPORT(SE:IN STD_LOGIC;T2:IN STD_LOGIC;D:IN STD_LOGIC;CLR:IN STD_LOGIC;UA:OUT STD_LOGIC

39、);END MMM;ARCHITECTURE A OF MMM ISBEGINPROCESS(CLR,SE,T2)BEGINIF(CLR=0) THENUA=0;ELSIF(SE=0)THENUA=1;ELSIF(T2EVENT AND T2=1) THENUA DATAOUT DATAOUT DATAOUT DATAOUT DATAOUT DATAOUT DA TAOUT DATAOUT DATAOUT DATAOUT DATAOUT DATAOUT DATAOUT DA TAOUT DA TAOUT DATAOUT DATAOUT DATAOUT DATAOUT DA TAOUT=1000

40、011001001111000000000;END CASE;UA(5 DOWNTO 0)=DA TAOUT(5 DOWNTO 0);D(18 DOWNTO 0)=DATAOUT(24 DOWNTO 6);END PROCESS;END A;-微命令寄存器 MCOMMAND 的 VHDL 源程序 MCOMMAND.vhdLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY MCOMMAND ISPORT(T2,T3,T4,I3,I2

41、,I1,I0:IN STD_LOGIC;O:IN STD_LOGIC_VECTOR(18 DOWNTO 0); P1,P2,LOAD,LDPC,LDAR,LDIR,LDR0,LDR1,LDR2,R0_B,R1_B,R2_B,S1,S0, ALU_B,LDAC,LDDR,WR,CS,SW_B,LED_B,LDFR:OUT STD_LOGIC );END MCOMMAND;ARCHITECTURE A OF MCOMMAND ISSIGNAL DATAOUT:STD_LOGIC_VECTOR(18 DOWNTO 0);BEGINPROCESS(T2)BEGINIF(T2EVENT AND T2=1

42、) THENDA TAOUT(18 DOWNTO 0)=O(18 DOWNTO 0);END IF;P2=DA TAOUT(0);P1=DA TAOUT(1);LDFR=DATAOUT(2) AND T4;LED_B=DATAOUT(3);SW_B=DATAOUT(4);CS=DATAOUT(5);WR=DATAOUT(6) OR(NOT T3);LDDR=DATAOUT(7) AND T4;LDAC=DATAOUT(8) AND T4; ALU_B=DATAOUT(9);S0=DA TAOUT(10);S1=DA TAOUT(11);R2_B=(DATAOUT(13) OR (NOT I1)

43、 OR I0)AND(DA TAOUT(12) OR (NOT I3) OR I2);R1_B=(DATAOUT(13) OR I1 OR (NOT I0)AND(DA TAOUT(12) OR I3 OR (NOT I2);R0_B=(DATAOUT(13) OR I1 OR I0 )AND(DA TAOUT(12) OR I3 OR I2);LDR2=T4 AND DATAOUT(14) AND I1 AND (NOT I0);LDR1=T4 AND DATAOUT(14) AND (NOT I1) AND I0;LDR0=T4 AND DATAOUT(14) AND (NOT I1) AND (NOT I0);LDIR=DATAOUT(15) AND T3;LDAR=DATAOUT(16) AND T3;LDPC=DATAOUT(17) AND T4;LOAD=DATAOUT(18);END PROCESS;END A;-微地址转换器 F1 的 VHDL 源程序 F1.vhdLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY F1 ISPORT(UA5,UA4,UA3,UA2,UA1,UA0: IN STD_LOGIC;D:OUT STD_LOGIC_VECTOR(5 DOWNTO 0);END

温馨提示

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

最新文档

评论

0/150

提交评论