![计算机组成原理课设论_第1页](http://file2.renrendoc.com/fileroot_temp3/2021-11/27/47634f68-ce09-4c85-875c-cebb8f9e62b8/47634f68-ce09-4c85-875c-cebb8f9e62b81.gif)
![计算机组成原理课设论_第2页](http://file2.renrendoc.com/fileroot_temp3/2021-11/27/47634f68-ce09-4c85-875c-cebb8f9e62b8/47634f68-ce09-4c85-875c-cebb8f9e62b82.gif)
![计算机组成原理课设论_第3页](http://file2.renrendoc.com/fileroot_temp3/2021-11/27/47634f68-ce09-4c85-875c-cebb8f9e62b8/47634f68-ce09-4c85-875c-cebb8f9e62b83.gif)
![计算机组成原理课设论_第4页](http://file2.renrendoc.com/fileroot_temp3/2021-11/27/47634f68-ce09-4c85-875c-cebb8f9e62b8/47634f68-ce09-4c85-875c-cebb8f9e62b84.gif)
![计算机组成原理课设论_第5页](http://file2.renrendoc.com/fileroot_temp3/2021-11/27/47634f68-ce09-4c85-875c-cebb8f9e62b8/47634f68-ce09-4c85-875c-cebb8f9e62b85.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、.计算机组成原理课程设计题 目: 计算机原理课程设计 学 院: 计算机科学与工程学院 专 业: 计算机科学与技术 姓 名: 孤狼 学 号: 1100310315 指导教师: 2014年03月 20 日;目录一.课程设计选题和完成内容2二、系统的总体设计22.1 嵌入式CISC模型机的数据通路框图22.2 系统的操作控制器的逻辑框图22.3模型机的指令格式32.4编写汇编源程序52.5最终机器码.5三、时序产生器5四、 微程序控制器的设计64.1设计微指令流程图64.2 设计微指令格式和微指令代码表84.3设计地址转移逻辑电路10五、单元电路设计105.1模型机顶层电路设计.115.2模型机cr
2、om单元电路设计.12六、设计过程所遇到的问题及解决记录136.1JNS无法完成循环跳转.136.2 STO( STO R2 (R0) )存储位置每次都为00H.13七、测试及结果分析错误!未定义书签。八、心得体会总结16九、附录16 各个单元的电路设计或VHDL源文件37一.课程设计选题和完成内容选题:本设计选择题目为A类第一题题目:设计一台嵌入式CISC模型计算机 采用定长CPU周期、联合控制方式,并运行能完成一定功能的机器语言源程序进行验证,机器语言源程序功能如下: A类(最高成绩为“优”): 输入包含5个整数(有符号数)的数组M,输出所有负数的平方和。(非卓越班) 输入包含5个整数(有
3、符号数)的数组M,输出最大负数的绝对值。(非卓越班) 输入包含10个整数(无符号数)的数组M,输出众数(出现次数最多的数)及其出现的次数。(卓越班) 输入包含10个整数(无符号数)的数组M,输出中位数。(卓越班) 说明:A类题目的嵌入式模型计算机内必须设计和使用RAM存储器读写数据,相应地需要设计对RAM存储器数据的读写指令,以及对RAM中数组操作必须的寄存器间接寻址方式等。 B类(最高成绩为“良”): 输入5个整数(有符号数),输出所有负数的平方和。(非卓越班) 输入5个整数(有符号数),输出最大负数的绝对值。(非卓越班) 输入5个整数(有符号数),输出它们的平均值,以及小于此平均值的数的个
4、数。(卓越班) 要完成的内容:1. 完成系统的总体设计,画出模型机数据通路框图;2. 设计微程序控制器(CISC模型计算机)的逻辑结构框图; 3. 设计机器指令格式和指令系统; 4. 设计时序产生器电路; 5. 设计所有机器指令的微程序流程图; 6. 设计操作7. 的所有单元电路,并用VHDL语言(也可使用GDF文件-图形描述文件)8. 对模型机中控制器单元;设计模型机的各个部件进行编程,并使之成为一个统一的整体,即形成顶层电路。9. 由给出的题目和设计的指令系统编写相应的汇编语言源程序;9. 根据设计的指令格式,将汇编语言源程序手工转换成机器语言源程序,并将其设计 到模型机中的 ROM中去;
5、 10. 使用EDA软件进行功能仿真,要保证其结果满足题目的要求;(其中要利用EDA软 件提供的波形编辑器,选择合适的输入输出信号及中间信号进行调试。)二、系统的总体设计2.1 嵌入式CISC模型机的数据通路框图 图2-12.2 系统的操作控制器的逻辑框图2.3模型机的指令格式这里,计算机数据通路的控制将由微程序控制器来完成,CPU从内存中取出一条机器指令到指令执行结束的一个指令周期全部由微指令组成的序列来完成,即一条机器指令对应一个微程序。 此模型的系统共设计了共有10 条指令,分别为:IN,MOV,LAD,STO,INC,JNS, ADD,MUL, OUT,TEST。2.3.1具体指令格式
6、如下:微地址助记符号指令格式指令功能15-1211 109 87 -0000001MOV Rd,im0001xxRdim立即数imRd000010INT Rd0010xxRdxx将输入数据存到Rd寄存器000011STO Rs,(Rd)0011RsRdxx(Rs)->(Rd)将Rs的内容存到Rd地址中000100INC Rd0100xxRdxx(Rd)+1Rd锁存SF和ZF000101DEC Rd0101xxRdxx(Rd)-1Rd锁存SF和ZF000110TEST Rd0110xxRdxx 测试 (Rd)是否为负,锁存SF000111JNS addr0111xxxxaddr若不为负数,
7、则addrPC001000LAD(Rs),Rd1000RsRdxx(Rs)->Rd 将Rs地址的内容读到Rd 001001MUL Rs Rd1001RsRdxx(Rs)*(Rd)->Rd001010ADD Rs,Rd1010RsRdaddr(Rs)+(Rd)->Rd001011OUT Rs1011Rsxxxx(Rs)OUTBUS 2.3.2对Rs和Rd的规定:Rs或Rd选定的寄存器0 0R00 1R1 1 0R2 1 1 R3 2.3.3模型机规定数据的表示采用定点整数补码表示,单字长为8位,其格式如下: 7 6 5 4 3 2 1 0符号位 尾数 2.4编写汇编源程序我们要
8、实现的功能是对连续输入的5个数据并存储到RAM的连续的存储单元中,然后再从RAM中将这5个数据依次读取出来并作判断是否为数,将5个数中所有的负数其求平方和,并对其结果进行显示等功能,从而得到一个简单的复杂指令模型机所实现的功能和结果/根据要求编写如下汇编源程序:MOV R0,00H ;数据存放在RAM中的地址MOV R1,4H ;计数 从4H(4)开始,到-1时结束 L1: INT R2 ;输入一个数到R2STO R2,(R0) ;将输入的数存放到RAM的(R0)地址INC R0 ;RAM地址指针+1DEC R1 ;计数-1TEST R1 ;测试计数是否到达5次,(R1)是否为负数JNS L1
9、 ;根据SF符号标志的判断,若不为负数,则跳转 MOV R0 00H ;当5个数输入存储完成后,重新初始化RAM指针MOV R1 4H ;重置计数 L2: LAD (R0) R2 ;将(R0)地址的数取出送到R2中TEST R2 ;测试取出的数是否为负数 JNS L3 ;若不为负数,则跳转到L3MUL R2,R2 ;若为负数,则求平方 ADD R2,R3 ;再求平方和,把结果送到R3 L3: INC R0 ;RAM地址+1 DEC R1 ;计数-1+TST R1 ;测试计数是否到达5次,(R1)是否为负数JNS L2 ;为正数,计数还不到5次,则跳转到L2 OUT R3 ;计数到达5次,则将最
10、后结果输出2.5 最终机器码为:地址助记符(汇编)机器代码作用00 MOV R0,00H0001000000000000数据存放在RAM中的地址00H开始01 MOV R1,4H0001000100000100计数 从4H(4)开始,到-1时结束02L1:INT R20010001000000000输入一个数到R203 STO R2,(R0)0011100000000000将输入的数存放到RAM的(R0)地址04 INC R00100000000000000RAM地址指针+105 DEC R10101000100000000计数-106 TEST R10110000100000000测试计数是
11、否到达5次,(R1)是否为负数,锁存SF07 JNS L1 0111000000000010根据SF符号标志的判断,若不为负数,则跳转08 MOV R0,00H0001000000000000当5个数输入存储完成后,重新初始化RAM指针09 MOV R1,4H0001000100000100重置计数0AL2:LAD(R0),R21000001000000000将(R0)地址的数取出送到R2中0B TEST R20110001000000000测试取出的数是否为负数,锁存SF0C JNS L30111000000001111若不为负数,则跳转到L30D MUL R2,R2100110100000
12、0000若为负数,则求平方0E ADD R2,R31010101100000000再求平方和,把结果送到R30FL3:INC R00100000000000000RAM地址+110 DEC R10101000100000000计数-1+11 TEST R10110000100000000测试计数是否到达5次,(R1)是否为负数,锁存SF12 JNS L20111000000001010为正数,计数还不到5次,则跳转到L213 OUT R31011110000000000计数到达5次,则将最后结果输出三时序产生器 T1、T2、T3、T4与CLR、Q之间的关系图如下:四微程序控制器的设计 微程序控
13、制器的设计过程包括: (1)根据微处理器结构图、指令格式和功能设计所有机器指令的微程序流程图,并确定每 条微指令的微地址和后继微地址; (2)设计微指令格式和微指令代码表; (3)设计地址转移逻辑电路; (4)设计微程序控制器中的其它逻辑单元电路,包括微地址寄存器、微命令寄存器和控制 存储器; (5)设计微程序控制器的顶层电路(由多个模块组成)。4.1设计微指令流程图根据微处理器结构图、指令格式和功能设计所有机器指令的微程序流程图,并确定每条微指令的微地址和后继微地址; 00PC->ABUS( I ) ,RD ROMIBUS->IR ,PC +1 P(1 )MOV INT STO
14、INC DEC TEST JNS LAD MUL ADD OUT 01 02 03 04 05 06 07 08 09 0A 0BRd->YY+1->Rd锁存SF,ZF测试Rd的最高位,锁存到SF中Rs->XRd->YX*Y->Rd锁存SF,ZFRs->XRd->YX+Y ->Rd锁ZF,SFROM->BUSBUS->PCIR(A)->RdSW->RdRd->ARRs->ARRd->YY+1->Rd锁存SF,ZF 0E 0C RD RAMDBUS->RdP(2)00Rs->DBUSWE
15、RAM 00 00 00 00 00 00 00 00 SF=1 SF=0 00 10IR(A)->Rd 00 004.2 设计微指令格式和微指令代码表指令流程图设计完成后,开始设计微指令格式和微指令代码表,按照要求,CISC模型机系统使用的微指令采用全水平型微指令,字长为26位,其中微命令字段为18位,P字段为2位,后继微地址为6位,其格式如下:按照此格式并根据设计的指令流程图,可以得到:由微指令格式和微程序流程图编写的微指令代码表如下所示,在微指令的代码表中微命令字段从左边到右代表的微命令信号依次为:LOAD、LDPC、LDAR、LDIR、LDRi、LDPSW、RS_B、S2、S1、
16、S0、ALU_B、SW_B、LED_B、RD_B、CS_B、RAM_B、CS_I、ADDR_B。CLRLOADLDPC功能0XX将PC清010BUS->PC110不装入,不计数11PC+1S2S1S0功能000X+Y,修改ZF,SF010Y+1,修改ZF,SF011Y-1,修改ZF,SF111X*Y,修改ZF,SF1000&Y,修改ZF,SF110->Y4.3设计地址转移逻辑电路地址转移逻辑电路是根据微程序流程图中的棱形框部分及多个分支微地址,利用微地址寄存器的异步置“1”端,实现微地址的多路转移。地址转移逻辑电路中异步置“1”信号SE6SE1表达式的确定与P字段测试时转移
17、微地址的确定密切相关.由于微地址寄存器中的触发器异步置“1”端低电平有效,与µA4µA0对应的异步置“1”控制信号SE5SE1的逻辑表达式为:(µA5的异步置“1”端SE6实际未使用)SE6 <= '1'SE5 <= NOT(NOT(SF) AND P2 AND T4);SE4 <= NOT(I4 AND P1 AND T4);SE3 <= NOT(I3 AND P1 AND T4);SE2 <= NOT(I2 AND P1 AND T4);SE1 <= NOT(I1 AND P1 AND T4);五、单元电路设
18、计设计模型机中的所有单元电路,并用VHDL语言(也可使用GDF文件-图形描述文件)对模型机中的各个部件进行编程,并使之成为一个统一的整体,即形成顶层电路或顶层文件。具体设计方法见附录。重点设计单元电路为:CR0M,ALU,ROM.CROM内部重点单元:COUNTROM,ADDR,MCOMMAND5.1模型机(顶层)电路:5.2模型机crom单元电路:六.设计测试过程所遇到的问题及解决记录6.1 JNS (JNS L2JNS L3)无法实现循环跳转 问题所在:没有认真注意到P测试的返回地址与指令IR->PC地址的关系,开始时随便设置了IR->PC的地址问题解决:后来了解到改地址与P(
19、2)测试相关,改为010000后,跳转成功。6.2 STO( STO R2 (R0) )存储位置每次都为00H 问题所在:STO指令中开启ADDR_B,关ALU_B,导致取地址来自于ROM内的机器码后八位addr,该机器码后八位为00H。 问题解决:微指令中关ADDR_B,开ALU_B,ALU设置直接输出Y,此时Y值来源于(R0),即为目的地址。七、测试及结果分析根据设计的汇编程序和对应的机器代码,对设计的模型机进行仿真测试,并分析结果:7.1下图显示了RAM地址的初值设置00H,循环计数设置04H,第一个循环读入40H至R2并存进RAM的过程。 7.2下图截取了其中3个循环,分别读进数40H
20、,FCH,FEH.7.3下图为5次循环后读进的5个数,如图从地址00H开始存放。7.4下图为一次从RAM中读取负数,并计算平方并加到R3的过程7.5下图为3个负数从RAM中读取判断,求得平方并求和的过程。FC*FC+FE*FE+FF*FF=15H.九、心得体会通过课程设计的学习设计过程,我从对CISC模型机的组成和工作原理毫不了解,到慢慢的独立设计完成,并实现了预期功能。这次课程设计我学会Altera MAX+plus EDA软件的使用,熟悉了VHDL语言,并能使用其进行期间的编程,当然,也能用图形描述文件(.Gdf)进行顶层电路的设计。最终能用EDA软件设计一个能完成一定功能的模型计算机,并
21、通过功能仿真和在EDA实验平台上运行一个程序来验证模型机设计的正确性。在设计的过程中,我了解了每个机器码,每个微指令的作用,懂得模型机的原理。此次的课程设计让我收获的不单单有课程的知识,也学会了自主学习、学会了细心解决问题,培养了自己做事的耐心活认真的态度,培养了调试纠错的良好素养,更有的就是加强了自己的实践动手能力。 十、附录(VHDL源文件)8.1ROM的设计(保存汇编源代码对应的机器码以及地址)程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGN
22、ED.ALL;ENTITY ROM ISPORT(DOUT:OUT STD_LOGIC_VECTOR(15 DOWNTO 0);ADDR:IN STD_LOGIC_VECTOR(7 DOWNTO 0);CS_I:IN STD_LOGIC);END ROM;ARCHITECTURE A OF ROM ISBEGINDOUT <="0001000000000000" WHEN ADDR="00000000" AND CS_I = '0' ELSE-MOV R0,10H "0001000100000100" WHEN
23、ADDR="00000001" AND CS_I = '0' ELSE-MOV R1,4H "0010001000000000" WHEN ADDR="00000010" AND CS_I = '0' ELSE-L1:INT R2 "0011100000000000" WHEN ADDR="00000011" AND CS_I = '0' ELSE-STO R2,(R0) "0100000000000000" WHEN ADDR
24、="00000100" AND CS_I = '0' ELSE-INC R0 "0101000100000000" WHEN ADDR="00000101" AND CS_I = '0' ELSE-DEC R1 "0110000100000000" WHEN ADDR="00000110" AND CS_I = '0' ELSE-TEST R1"0111000000000010" WHEN ADDR="00000111
25、" AND CS_I = '0' ELSE-JNS L1 "0001000000000000" WHEN ADDR="00001000" AND CS_I = '0' ELSE-MOV R0 10H "0001000100000100" WHEN ADDR="00001001" AND CS_I = '0' ELSE-MOV R1 4H "1000001000000000" WHEN ADDR="00001010" A
26、ND CS_I = '0' ELSE-L2:LAD(R0) R2 "0110001000000000" WHEN ADDR="00001011" AND CS_I = '0' ELSE-TEST R2 "0111000000001111" WHEN ADDR="00001100" AND CS_I = '0' ELSE-JNS L3 "1001101000000000" WHEN ADDR="00001101" AND CS_I
27、 = '0' ELSE-MUL R2,R2 "1010101100000000" WHEN ADDR="00001110" AND CS_I = '0' ELSE-ADD R2,R3 "0100000000000000" WHEN ADDR="00001111" AND CS_I = '0' ELSE-L3:INC R0 "0101000100000000" WHEN ADDR="00010000" AND CS_I =
28、9;0' ELSE-DEC R1 "0110000100000000" WHEN ADDR="00010001" AND CS_I = '0' ELSE-TEST R1 "0111000000001010" WHEN ADDR="00010010" AND CS_I = '0' ELSE-JNS L2 "1011110000000000" WHEN ADDR="00010011" AND CS_I = '0' ELSE-
29、OUT R3 "0000000000000000"END A;8.2 ALU(运算器)LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;1USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY ALU ISPORT( X: IN STD_LOGIC_VECTOR(7 DOWNTO 0); Y: IN STD_LOGIC_VECTOR(7 DOWNTO 0); S2,S1,S0: IN STD_LOGIC; ALUOUT: OUT STD_LOGIC_VECTOR(
30、7 DOWNTO 0) ; SF: OUT STD_LOGIC );END ALU;ARCHITECTURE A OF ALU ISSIGNAL AA,BB,TEMP:STD_LOGIC_VECTOR(8 DOWNTO 0);BEGIN PROCESS BEGIN IF(S2='0' AND S1='0' AND S0='0') THEN-ADD AA<='0'&X; BB<='0'&Y; TEMP<=AA+BB; ALUOUT<=TEMP(7 DOWNTO 0); SF&l
31、t;=TEMP(7); ELSIF(S2='0' AND S1='1' AND S0='0') THEN -INC AA<='0'&Y; TEMP<=AA+1; ALUOUT<=TEMP(7 DOWNTO 0); SF<=TEMP(7); ELSIF(S2='0' AND S1='1' AND S0='1') THEN -DEC AA<='0'&Y; TEMP<=AA-1; ALUOUT<=TEMP(7 DOW
32、NTO 0); SF<=TEMP(7);ELSIF(S2='1' AND S1='1' AND S0='1') THEN-MULAA<='0'&X;BB<='0'&Y;TEMP<=AA*BB;ALUOUT<=TEMP(7 DOWNTO 0);ELSIF(S2='1' AND S1='0' AND S0='0') THEN-TESTAA<='0'&Y;SF<=AA(7); ELSIF(S2
33、='1' AND S1='1' AND S0='0') THEN -Rd->BUS ALUOUT<=Y; ELSE ALUOUT<="00000000" ; SF<='0' END IF; END PROCESS;END A;8.3状态条件寄存器只保留了用到的SFLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY PSW ISPORT( S,LDPSW: IN STD_LOGIC; SF: OUT STD_LOGIC );END PSW;ARC
34、HITECTURE A OF PSW ISBEGIN PROCESS(LDPSW) BEGIN IF(LDPSW'EVENT AND LDPSW='1') THEN SF<=S; END IF; END PROCESS;END A;8.4微程序控制器内部结构:( 1 ) 地址转移逻辑电路程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY ADDR ISPORT(I4,I3,I2,I1: IN STD_LOGIC;SF,P2,P1,T4: IN STD_LOGIC;SE6,SE5,SE4,SE3,SE2,SE1: O
35、UT STD_LOGIC);END ADDR;ARCHITECTURE A OF ADDR ISBEGINSE6 <= '1'SE5 <= NOT(NOT(SF) AND P2 AND T4);SE4 <= NOT(I4 AND P1 AND T4);SE3 <= NOT(I3 AND P1 AND T4);SE2 <= NOT(I2 AND P1 AND T4);SE1 <= NOT(I1 AND P1 AND T4);END A;(2)微地址寄存器微地址寄存器uar的内部结构:程序:LIBRARY IEEE;USE IEEE.STD_LO
36、GIC_1164.ALL;ENTITY MMM ISPORT(SE,T2,D,CLR: IN STD_LOGIC;UA: OUT STD_LOGIC);END MMM;ARCHITECTURE A OF MMM ISBEGINPROCESS(CLR,SE,T2)BEGINIF(CLR='0') THENUA <= '0'ELSIF(SE='0') THENUA <= '1'ELSIF(T2'EVENT AND T2='1') THENUA <= D;END IF;END PROCESS;(
37、3)微地址转换器F1程序:LIBRARY IEEE; USE IEEE.STD_LOGIC_116 ALL; ENTITY F1 IS PORT( UA5,UA4,UA3,UA2,UA1,UA0:IN STD_LOGIC; D:OUT STD_LOGIC_VECTOR(5 DOWNTO 0) ); END F1; ARCHITECTURE A OF F1 IS BEGIN D(5)<=UA5; D(4)<=UA4; D(3)<=UA3; D(2)<=UA2; D(1)<=UA1; D(0)<=UA0; END A;(4) 控制存储器程序:LIBRARY IE
38、EE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY COUNTROM ISPORT(ADDR: IN STD_LOGIC_VECTOR(5 DOWNTO 0); UA:OUT STD_LOGIC_VECTOR(5 DOWNTO 0); D:OUT STD_LOGIC_VECTOR(19 DOWNTO 0) );END COUNTROM;ARCHITECTURE A OF COUNTROM ISSIGNAL DATAOUT: STD_LOGIC_VEC
39、TOR(25 DOWNTO 0);BEGIN PROCESS BEGIN CASE ADDR IS WHEN "000000" => DATAOUT<="11010010001111110110000000"-OP->IR PC+1WHEN "000001" => DATAOUT<="10001010001111111000000000"-MOVWHEN "000010" => DATAOUT<="10001010001011111100000
40、000"-INTWHEN "000011" => DATAOUT<="10100011100111111100001110"-STOWHEN "000100" => DATAOUT<="10001110100111111100000000"-INCWHEN "000101" => DATAOUT<="10001110110111111100000000"-DECWHEN "000110" => DATAO
41、UT<="10000111000111111100000000"-TESTWHEN "000111" => DATAOUT<="10000010001111111101000000"-JNSWHEN "001000" => DATAOUT<="10100000001111111100001100"-LADWHEN "001001" => DATAOUT<="10001111110111111100000000"-M
42、ULWHEN "001010" => DATAOUT<="10001110000111111100000000"-ADDWHEN "001011" => DATAOUT<="10000000001101111100000000"-OUTWHEN "001100" => DATAOUT<="10001010001111001100000000"-RDRAM,DBUS-RdWHEN "010000" => DATAOU
43、T<="01000010001111111000000000"-IR-PCWHEN "001110" => DATAOUT<="10000000001110011100000000"-WERAM,DBUS-RAMWHEN OTHERS => DATAOUT<="11010011111111110110000000" END CASE; UA(5 DOWNTO 0)<=DATAOUT(5 DOWNTO 0); D(19 DOWNTO 0)<=DATAOUT(25 DOWNTO
44、 6); END PROCESS;END A;(5)微命令寄存器程序:LIBRARY 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:IN STD_LOGIC; D:IN STD_LOGIC_VECTOR(19 DOWNTO 0); LOAD,LDPC,LDAR,LDIR,LDRI,LDPSW,RS_B,S2,S1,S0:OUT STD_LOGIC; ALU_B,SW_B,LED_B,RD_
45、D,CS_D,RAM_B,CS_I,ADDR_B,P1,P2:OUT STD_LOGIC );END MCOMMAND;ARCHITECTURE A OF MCOMMAND ISSIGNAL DATAOUT:STD_LOGIC_VECTOR(19 DOWNTO 0);BEGIN PROCESS(T2) BEGIN IF(T2'EVENT AND T2='1') THEN DATAOUT(19 DOWNTO 0)<=D(19 DOWNTO 0); END IF; LOAD<=DATAOUT(19); LDPC<=DATAOUT(18) AND T4; L
46、DAR<=DATAOUT(17) AND T3; LDIR<=DATAOUT(16) AND T3; LDRI<=DATAOUT(15) AND T4; LDPSW<=DATAOUT(14) AND T4; RS_B<=DATAOUT(13); S2<=DATAOUT(12); S1<=DATAOUT(11); S0<=DATAOUT(10); ALU_B<=DATAOUT(9); SW_B<=DATAOUT(8); LED_B<=DATAOUT(7); RD_D<=NOT(NOT DATAOUT(6) AND (T2 O
47、R T3); CS_D<=NOT(NOT DATAOUT(5) AND T3); RAM_B<=DATAOUT(4); CS_I<=DATAOUT(3); ADDR_B<=DATAOUT(2); P1<=DATAOUT(1); P2<=DATAOUT(0); END PROCESS;END A;(6)微地址转换器F2 程序:LIBRARY IEEE;LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY F2 IS PORT( D:IN STD_LOGIC_VECTOR(5 DOWNTO 0); UA5,UA4,UA3
48、,UA2,UA1,UA0: OUT STD_LOGIC );END F2;ARCHITECTURE A OF F2 ISBEGIN UA5<=D(5); UA4<=D(4); UA3<=D(3); UA2<=D(2); UA1<=D(1); UA0<=D(0);END A;(7)指令代码转换器F3程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY F3 IS PORT( D:IN STD_LOGIC_VECTOR(3 DOWNTO 0); UA3,UA2,UA1,UA0: OUT STD_LOGIC );EN
49、D F3;ARCHITECTURE A OF F3 ISBEGIN UA3<=D(3); UA2<=D(2); UA1<=D(1); UA0<=D(0);END A;8.5寄存器单元程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY LS273 ISPORT(D:IN STD_LOGIC_VECTOR(7 DOWNTO 0);O: OUT STD_LOGIC_VECTOR(7 DOWNTO 0);CLK: IN STD_LOGIC);END LS273;ARCHITECTURE A OF LS273 ISBEGINPRO
50、CESS(CLK)BEGINIF(CLK'EVENT AND CLK='1')THEN O<=D;END IF;END PROCESS;END A;8.6 1:2分配器LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY FEN2 ISPORT(LED_B:IN STD_LOGIC;DBUS:IN STD_LOGIC_VECTOR(7 DOWNTO 0);FENOUT,OUTBUS:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);END FEN2;ARCHITECTURE A OF FEN2 ISBEGIN PROCESS BEGIN IF(LED_B='0') THEN OUTBUS<=DBUS; ELSE FENOUT<=DBUS; END IF; END PROCESS;END A;8.6 选择器(1) 3选1数据选择器LI
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小学六年级口算题卡
- 小学六年级800道数学口算题
- 2025年沈阳货运从业资格试题及答案详解
- 2025年太原货车从业资格证答题技巧
- 监控录像管理协议书(2篇)
- 2024-2025学年高中地理课时分层作业13噪声污染及其防治含解析湘教版选修6
- 2024-2025学年八年级数学上册第十一章三角形11.2与三角形有关的角作业设计新版新人教版
- 人事行政助理年终工作总结
- 公司办公室工作总结
- 人力资源部年度个人工作计划
- 某县城区地下综合管廊建设工程项目可行性实施报告
- 《架空输电线路导线舞动风偏故障告警系统技术导则》
- 2024年计算机二级WPS考试题库
- JJF(京) 92-2022 激光标线仪校准规范
- 普惠金融政策解读
- 2024年疾控中心支部工作计划范本
- 广东省广州黄埔区2023-2024学年八年级上学期期末数学试卷(含答案)
- 法理学课件马工程
- 《无菌检查培训》课件
- 2024-2030年中国香菇行业销售状况及供需前景预测报告
- 高中英语必背3500单词表(完整版)
评论
0/150
提交评论