版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、目录1:课程设计题目 . .12:嵌入式 CISC 模型机数据通路框图. .13:操作控制器的逻辑框图 . .14:模型机的指令系统和所有指令的指令格式. .25:所有机器指令的微程序流程图或CPU操作流程图 .36: 操作控制器单元. .47:嵌入式 CISC 模型计算机的顶层电路图 . .68:汇编语言源程序. .69:机器语言源程序. .710:机器语言程序的功能仿真波形图及结果分析. .811:进行时序仿真是芯片的引脚分配. .812:故障现象和故障分析 . .813:软件清单,含各个部件的VHDL源程序 (.VHD) 或图形描述文件 (.gfd) .813.1:ALU 单元 .813
2、.2:状态条件寄存器单元. .1113.3:暂存寄存器单元 . .1213.4: 3选 1数据选择器 .1313.5 :5 选 1 数据选择器 .1413.6:程序计数器单元 . .1513.7:地址寄存器单元 . .1713.8:主存储器单元 . .1713.9:指令寄存器单元 . .1813.10:时序产生器单元 . .1913.11:微程序控制器单元. .2013.11.1:地址转移逻辑电路. .2113.11.2:微地址寄存器 . .2313.11.3:微地址转换器 . .2513.11.4:控制存储器. .2613.11.5:微指令寄存器 . .2813.11.6:微地址转换器 .
3、.3013.11.7:指令代码转换器 . .3111:课程设计题目设计一台嵌入式CISC 模型计算机:采用定长CPU周期、联合控制方法,并完成一定功能的机器语言源程序进行验证,机器语言源程序功能如下:输入 5 个有符号整数(8 位二进制补码表示) ,求所有正数的平方和并输出显示。2:嵌入式 CISC模型机数据通路框图模型机由 CISC 微处理器、地址寄存器AR、ROM存储器组成。微处理器有算数逻辑单元ALU、状态条件寄存器、累加器AC、数据暂存器R、通用寄存器R0R3、程序计数器PC、指令寄存器IR、操作控制器和时序产生器组成。模型机数据通路如图2-1 所示:图 2-1模型机数据通路框图说明:
4、外部时钟信号上边沿有效。3:操作控制器的逻辑框图微程序控制器主要由控制存储器、微指令寄存器和地址转移逻辑电路三大部分组成,其中微指令寄存器分为微地址寄存器和微命令寄存器两部分。微程序控制器在T4 内形成微指令的微地址,并访问控制存储器,在T2 的上边沿到来时,将读出的微指令打入微指令寄存器,即图中的微命令寄存器和微地址寄存器。微程序控制器组成原理框图如下图3-1 所示。1精品文档图 3-1微程序控制器组成原理框图4:模型机的指令系统和所有指令的指令格式为了完成求和功能, 系统设计了 9 条指令:IN(输入指令) ,MOV(将一个数送入寄存器) ,CMP(完成比较功能) , JB(小于等于跳转)
5、 , ADD(两数相加), DEC(自减 1), JMP(无条件跳转), MUL(两数相乘 ) , OUT(输出)。助记符号指令格式功能IN Rd1000××Rd将数据存到 Rd 寄存器OUT Rs1111Rs××(Rs) LEDADD Rs,Rd1100××Rd(Rs)+(Rd) RdCMP Rs,Rd1010RsRd(Rs)-(Rd),锁存 CY和 ZIDEC Rd1101××Rd(Rd)+1 RdMOV Rd,data1001××Rddata RddataJMP addr1110×
6、;×××addr PCaddrJB addr1011××××若小于,则 addr PCaddrMUL Rs,Rd0001RsRd(Rs)*(Rd) Rd说明:对Rs 和 Rd 的规定:。2 欢迎下载精品文档Rs 或 Rd选定的寄存器00R001R110R211R3模型机规定数据的表示采用定点整数补码表示,单字长为8 位,其格式如下:76543210符号位尾数5:所有机器指令的微程序流程图或CPU操作流程图微程序控制器的设计过程如下:( 1)根据指令格式和指令系统设计所有机器指令的微程序流程图,并确定每条微指令的微地址和后继微
7、地址;( 2)设计微指令格式和微指令代码表;( 3)设计地址转移逻辑电路;( 4)设计微程序控制器中的其它逻辑单元电路,包括微地址寄存器、微命令寄存器和控制存储器;( 5)设计微程序控制器的顶层电路(由多个模块组成)。3 欢迎下载MULIN0108RSBUSSWBUSBUSACBUSRd15Rd BUS 00 BUS DR16AC*DRRd00精品文档00PC ARPC+102READ MBUS IRP(1)MOVCMPJBADDDEC090A0B0C0DPCARRsBUSPCARRSBUSRdBUSPC+1BUSACPC+1BUSACBUSAC03040612ROMBUSRd BUSRdBU
8、SAC-1 BUSBUSRdBUSDRBUSDRBUS Rd05P(2)0700AC DRAC+DRRd00锁存 FC、FZ00 FS=0FS=1 002030ROM BUSBUSPC0000JMP0EPCARPC+113ROMBUS BUSPC00OUT0FRsLED006: 操作控制器单元( 1)设计微指令格式和微指令代码表CISC模型机系统使用的微指令采用全水平型微指令,字长为25 位,其中微命令字段为17 位, P 字段为 2 位,后继微地址为6 位,其格式如下:24232221201918 1716151413 121110987 6543210LOAD LDPC LDAR LDIR
9、 LDRi RD_B RS_B S1 S0 ALU_B LDAC LDDR WR CS SW_B LED_B LDFR P1 P2后继微地址由微指令格式和微程序流程图编写的微指令代码表如下所示,在微指令的代码表中微命令字段从左边到右代表的微命令信号依次为:LOAD、LDPC、LDAR、LDIR、LDRi、RD_B、RS_B、S1、 S0、 ALU_B、 LDAC、 LDDR、 WR、 CS、 SW_B、LED_B、 LDFR。4 欢迎下载精品文档微命令字段P1P1微地址后继位地址LOADLDPCLDARLDIRLDRiRD_BRS_BS1S0ALU_BLDACLDDRWRCSSW_BLED_B
10、LDFR00000011100110010011110000000100000011000010001101111000010101000010100101100100101101000100000001110001110010010110000000000001001000001001011111000000101000101100001101100111110000000000011010000010010111110000001110001111000111000001111000000000001000100011100100110100000000000100111100110010
11、011110000000110010101000010001101111000000100001011111001100100111100110000000110010000100011011110000001100011011000001001101111000010010001110111001100100111100001001200111110000100010001100000000000100101000111100001111000000000010011010001100100101100000000001010110000010010111110000101100101101
12、00011111000111100000000010000001000110010010110000000001100001000011001001111000000000( 2)设计地址转移逻辑电路地址转移逻辑电路是根据微程序流程图3-2 中的棱形框部分及多个分支微地址,利用微地址寄存器的异步置“1”端,实现微地址的多路转移。由于微地址寄存器中的触发器异步置“ 1”端低电平有效, 与 A4 A0 对应的异步置 “1”控制信号SE5 SE1的逻辑表达式为:SE5=(FC+FZ)?P(2) ?T4SE4=I7?P(1) ?T4SE3=I6?P(1) ?T4SE2=I5?P(1) ?T4。5 欢迎
13、下载精品文档SE1=I4?P(1) ?T47:嵌入式 CISC模型计算机的顶层电路图在 MAX+plus下设计的CISC模型机的顶层电路图如下图7-1 所示。图 7-1 嵌入式 CISC模型计算机的顶层电路图8:汇编语言源程序MOV R10-R1置为 0,保存累加结果MOV R20-R2置为 0,判输入数据正负性,计输入数据的次数MOV R35-R3置为 5,计输入次数L1: IN R0-外部输入数据存到 R0DEC R3-R3减 1CMP R2,R0-比较 R2 和 R0的大小JB L2-若 R2 小于 R0 则跳转 L2CMP R2,R3-判断次数,若不到 5 次返回 L1JB L1-跳转
14、到 L1JMP L3-若次数达到 5 次,跳转到L3,输出结果,程序结束L2: MUL R0,R0 - R0大于 0,做平方运算,存到 R0 中ADD R0,R1-R1用来存累加结果的,故将R0 中的平方和R1 的值相加。6 欢迎下载精品文档CMP R2,R3-判断次数,若不到5 次返回 L1JB L1-跳转到 L1L3: OUT R1-将正数的平方和输出9:机器语言源程序根据设计的指令格式,将汇编语言源程序手工转换成机器语言源程序,并将其设计到模型机中的ROM中去。与汇编语言源程序对应的机器语言源程序如下:助记符地址(十六进制)机器代码功能MOV1 R0,0001001000100H R00
15、100000000MOV1 R1,0021001001000H R10300000000MOV1 R2,5041001001105H R20500000101L1:IN R00610000000(SW) R0DEC R30711010011(R0)-1 R3CMP R2,R00810101000(R2)-(R0)JB L20910110000若小于, L2 PC0A00010000CMP R2,R30B10101011(R2)-(R3)JB L10C10110000L1 PCOD00000110JMP L30E11100000L3PC0F00010101L2: MUL R0,R01000010
16、000(R0)*(R0)R0ADD R0,R11111000001(R0)+(R1) R1CMP R2,R31210101011(R2)-(R3)JB L11310110000L1PC1400000110L3: OUT R11511110100(R1) LED。7 欢迎下载精品文档10:机器语言程序的功能仿真波形图及结果分析结果分析:输入的整数依次为01H,FFH, 01H, 02H,FFH。结果输出: 06H。计算结果与事实相符,程序正确执行11:进行时序仿真是芯片的引脚分配在进行仿真时主要的引脚分配为:PCARIRCROM R0R1R2R3MUX1MUX2ALUPSWROM26232251
17、5161718283023112:故障现象和故障分析1 CMP指令一开始设为CMP R0,R2 导致结果出错。原来JB 指令是小于等于的时候跳转,所以导致结果取反。之后将CMP指令改为CMP R2, R0,结果程序正确。2 微程序控制器中采用全水平微指令,在设计AC*DRRd 指令时忘记设计S0,S1 为 1,1,即控制为乘法时,变成了加法,导致结果出错。在仿真时发现结果不对,算的是加法,然后通过修改为乘法,结果正确。13:软件清单,含各个部件的VHDL源程序 (.VHD) 或图形描述文件 (.gfd)13.1:ALU 单元LIBRARY IEEE;。8 欢迎下载精品文档有符号型ENTITY
18、ALU ISPORT(A:IN STD_LOGIC_VECTOR(7 DOWNTO 0);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 ISSIGNAL AA,BB,TEMP:STD_LOGIC_VECTOR(8 DOWNTO 0);BEGINPROCESS(S1,S0)BEGINIF(S1='0' AND S0='0')T
19、HEN-加法AA<='0'&A;BB<='0'&B;TEMP<=AA+BB;BCDOUT<=TEMP(7 DOWNTO 0);CY<=TEMP(8);IF(TEMP="100000000"OR TEMP="000000000")THENZI<='1'ELSEZI<='0'END IF;ELSIF(S1='0' AND S0='1')THEN-减法BCDOUT<=A-B;IF(A<B)THEN
20、。9 欢迎下载精品文档CY<='1'ZI<='0'ELSIF(A=B)THENY<='0'ZI<='1'ELSECY<='0'ZI<='0'END IF;ELSIF(S1='1' AND S0='1')THEN-乘法AA<='0'&A;BB<='0'&B;TEMP<=AA*BB;BCDOUT<=TEMP(7 DOWNTO 0);CY<=TEMP(8);IF
21、(TEMP="100000000"OR TEMP="000000000")THENZI<='1'ELSEZI<='0'END IF;ELSIF(S1='1' AND S0='0')THEN-自减 1AA<='0'&A;TEMP<=AA-1;BCDOUT<=TEMP(7 DOWNTO 0);CY<=TEMP(8);IF(TEMP="100000000"OR TEMP="000000000")TH
22、ENZI<='1'ELSEZI<='0'END IF;。10 欢迎下载精品文档ELSEBCDOUT<="00000000"CY<='0'ZI<='0'END IF;END PROCESS;END A;13.2:状态条件寄存器单元LIBRARY IEEE;ENTITY LS74 ISPORT(LDFR:IN STD_LOGIC;CY,ZI:IN STD_LOGIC;FC,FZ:OUT STD_LOGIC);END LS74;- 状态寄存器ARCHITECTURE A OF LS74
23、ISBEGINPROCESS(LDFR)BEGINIF(LDFR'EVENT AND LDFR='1')THEN。11 欢迎下载精品文档FC<=CY;FZ<=ZI;END IF;END PROCESS;END A;13.3:暂存寄存器单元LIBRARY IEEE;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 ISB
24、EGINPROCESS(CLK)BEGINIF(CLK'EVENT AND CLK='1')THENO<=D;END IF;END PROCESS;END A;。12 欢迎下载精品文档13.4: 3选 1 数据选择器LIBRARY IEEE;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;-3 选 1
25、 数据选择器单元ARCHITECTURE A OF MUX3 ISBEGINPROCESS(SW_B,CS)BEGINIF(SW_B='0')THENEW<=ID;-从输入设备输入数据ELSIF(CS='0')THENEW<=N2;-将 ROM中读出的指令代码送入内部数据通路ELSEEW<=N1;-将 5 选 1 多路选择器的输出送入内部数据通路。13 欢迎下载精品文档END IF;END PROCESS;END A;13.5 : 5 选 1 数据选择器LIBRARY IEEE;ENTITY MUX5 ISPORT(C,D,E,F,G: IN
26、STD_LOGIC;X1,X2,X3,X4,x5: IN STD_LOGIC_VECTOR(7 DOWNTO 0);W: out STD_LOGIC_VECTOR(7 DOWNTO 0);END MUX5;-5 选 1 数据选择器单元ARCHITECTURE A OF MUX5 ISSIGNAL SEL: STD_LOGIC_VECTOR(4 DOWNTO 0);BEGIN。14 欢迎下载精品文档SEL<=G&F&E&D&C;PROCESS(SEL)BEGINIF(SEL="11110") THEN-输出 R0 的内容W<=X1;
27、ELSIF(SEL="11101") THEN -输出 R1 的内容W<=X2;ELSIF(SEL="11011") THEN -输出 R2 的内容W<=X3;ELSIF(SEL="10111") THEN -输出 R3 的内容W<=X4;ELSIF(SEL="01111") THEN -输出 ALU的内容W<=X5;ELSEnull;END IF;END PROCESS;END A;13.6:程序计数器单元LIBRARY IEEE;。15 欢迎下载精品文档ENTITY PC ISPORT(
28、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')THENQOUT<="00000000" -将 pc 清 0ELSIF(LDPC'EVENT AND LDPC=
29、39;1')THENIF(LOAD='0')THENQOUT<=D;-将数据总线的内容送入pcELSEQOUT<=QOUT+1; -PC+1END IF;END IF;END PROCESS;O<=QOUT;END A;。16 欢迎下载精品文档13.7:地址寄存器单元13.8:主存储器单元LIBRARY IEEE;ENTITY ROM16 ISPORT(DOUT:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);ADDR:IN STD_LOGIC_VECTOR(7 DOWNTO 0);CS:IN STD_LOGIC);END ROM16
30、;-主存储器单元ROM16ARCHITECTURE A OF ROM16 ISBEGINDOUT<="10010001" WHEN ADDR="00000000" AND CS='0' ELSE- MOV R1,00"00000000" WHEN ADDR="00000001" AND CS='0' ELSE"10010010" WHEN ADDR="00000010" AND CS='0' ELSE-MOV R2,00。
31、17 欢迎下载精品文档"00000000" WHEN ADDR="00000011" AND CS='0' ELSE"10010011" WHEN ADDR="00000100" AND CS='0' ELSE -MOV R3,05 "00000101" WHEN ADDR="00000101" AND CS='0' ELSE"10000000" WHEN ADDR="00000110"
32、AND CS='0' ELSE- L1: IN R0"11010011" WHEN ADDR="00000111" AND CS='0' ELSE - DEC R3 "10101000" WHEN ADDR="00001000" AND CS='0' ELSE - CMP R2,R0 "10110000" WHEN ADDR="00001001" AND CS='0' ELSE -JB L2"00010
33、000" WHEN ADDR="00001010" AND CS='0' ELSE"10101011" WHEN ADDR="00001011" AND CS='0' ELSE- CMP R2,R3"10110000" WHEN ADDR="00001100" AND CS='0' ELSE - JB: L1 "00000110" WHEN ADDR="00001101" AND CS='0
34、' ELSE "11100000" WHEN ADDR="00001110" AND CS='0' ELSE - JMP L3 "00010101" WHEN ADDR="00001111" AND CS='0' ELSE -"00010000" WHEN ADDR="00010000" AND CS='0' ELSE-L2:MUL R0,R0"11000001" WHEN ADDR="00
35、010001" AND CS='0' ELSE -ADD R0,R1 "10101011" WHEN ADDR="00010010" AND CS='0' ELSE -CMP R2,R3"10110000" WHEN ADDR="00010011" AND CS='0' ELSE -JB L1 "00000110" WHEN ADDR="00010100" AND CS='0' ELSE -"
36、11110100" WHEN ADDR="00010101" AND CS='0' ELSE-L3:OUT1 R1"00000000"END A;13.9:指令寄存器单元。18 欢迎下载精品文档13.10:时序产生器单元LIBRARY IEEE;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 DOW
37、NTO 0);BEGINPROCESS(Q,CLR)BEGINIF(CLR='0')THENT2<='0'T3<='0'T4<='0'X<="00"ELSIF(Q'EVENT AND Q='1')THEN-当出现时钟Q上边沿时,计数器的值X+1X<=X+1;-由当前值 X 译码后产生节拍脉冲信号T2, T3, T4.。19 欢迎下载精品文档T2<=(NOT X(1)AND X(0);T3<=X(1)AND (NOT X(0);T4<=X(1)AND X(0);END IF;END PROCESS;END A;13.11:微程序控制器单元微程序控制器单元。20 欢迎下载精品文档微程序控制器的内部结构地址转移逻辑电路。21 欢迎下载精品文档LIBRARY IEEE;ENTITY ADDR ISPORT(I7,I6,I5,I4:IN STD_LOGIC;FZ,FC,T4,P1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《来之不易的粮食》教学设计
- 中国历史上的十大科学家为人类进步作出重要贡献的学者
- 2024年温州科技职业学院高职单招职业适应性测试历年参考题库含答案解析
- 中考数学总复习策略知识讲稿
- 农业标准化与农业现代化讲解材料
- 2024年浙江舟山群岛新区旅游与健康职业学院高职单招职业适应性测试历年参考题库含答案解析
- 第一讲何谓艺术史教材课程
- 感染性休克抢救的程序课件
- 四年级语文上册第五单元第17课爬山都峰习题课件新人教版
- 2024年泊头职业学院高职单招语文历年参考题库含答案解析
- 湖南省娄底市名校学术联盟2024-2025学年高三上学期1月月考政治试题 含解析
- 2024年浙江杭州师范大学附属医院招聘考试真题
- 2025年汉江水利水电(集团)限责任公司丹江口水力发电厂招聘12人高频重点提升(共500题)附带答案详解
- 2025年新疆兖矿集团公司招聘笔试参考题库含答案解析
- 产品召回管理制度内容
- 2025年云南大理州工业投资(集团)限公司招聘31人高频重点提升(共500题)附带答案详解
- 2024商业招商运营培训
- 2025年春节工厂放假通知范文
- 道路隐患排查整治
- 2024-2025学年沪科版九年级数学上册期末模拟考试卷(安徽专用九上全册+九下24.1~24.3圆周角)
- 节前教育动员部署及安全检查
评论
0/150
提交评论