




已阅读5页,还剩20页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
编号: 计算机组成原理课程设计说明书题 目: 设计一台嵌入式CISC模型计算机学院: 计算机科学与工程学院 专 业: 计算机科学与技术 学生姓名: 学 号: 指导教师: 陈智勇 2013年4月11日目 录1 课程设计的题目22 CISC模型机数据通路框图23 操作控制器的逻辑框图44 模型机的指令系统和所有指令的指令格式44.1 总的指令格式及说明44.2 具体指令格式及功能表55 设计时序产生器电路66 机器指令的微程序流程图67 操作控制器单元的设计87.1 微指令格式设计87.2 微指令中各位的功能设计87.3 微指令表98 汇编语言源程序119 机器语言源程序1110 CISC模型机的顶层电路图1210.1 顶层电路图1210.2 微程序控制器crom1410.3 微地址寄存器aa1411 关键元器件实现部分代码1511.1 ADDR(地址转移逻辑电路)1511.2 ALU(算术逻辑运算单元)1511.3 TIME_COUNTER(时序产生器)1811.4 PC(程序计数器)1812 仿真波形图及其分析1913 故障现象和故障分析2014 心得体会231 课程设计的题目采用定长CPU周期、联合控制方式,并运行能完成一定功能的机器语言源程序进行验证,机器语言源程序功能如下:连续输入5个有符号整数(8位二进制补码表示,用十六进制数输入),求所有负数的平方和并输出显示。说明:5个有符号数从外部输入;一定要使用符号标志位(比如说SF),并且要使用为负的时候转移(比如JS)或不为负的时候转移(比如JNS)指令;采用三数据总线结构的运算器,采用RAM,先将输入数据依次存放在RAM的某一连续的存储区域内,再依次读出判断是否为负数,若为负数再求其平方和。2 CISC模型机数据通路框图模型机的总体设计内容包括确定各种部件的设置以及它们之间的数据通路结构。该CISC模型机的CPU由运算器、控制器和高速缓冲存储器组成。采用了三数据总线结构的运算器,且CPU内部包含有指令Cache(此处简单模拟,采用ROM)和数据Cache(RAM)。其中控制器由程序计数器(PC)、指令寄存器(IR)、指令译码器、时序产生器和操作控制器组成;运算器由算术逻辑运算单元(ALU)、通用寄存器(R0-R3)和状态寄存器(PSW)组成。CISC模型机的操作控制器采用微程序控制器。根据模型机要求,画出如图1所示模型机数据通路框图。第 22 页 共 25 页图1:模型CPU的组成框图3 操作控制器的逻辑框图微程序控制器主要由控制存储器、微指令寄存器和地址转移逻辑三大部分组成,其中微指令寄存器分为微地址寄存器和微命令寄存器两部分。微程序控制器的组成原理框图说明:在T4内形成微指令的微地址,并访问控制存储器,在T2的上边沿到来时,将读出的微指令打入微指令寄存器,即图中的微命令寄存器和微地址寄存器。4 模型机的指令系统和所有指令的指令格式4.1 总的指令格式及说明15 14 13 1211 109 870操作码RsRdim/addr说明:Rs指源寄存器,Rd指目的寄存器,im指立即数,addr指地址; 其中对Rs/Rd规定如下:Rs或者Rd选中的寄存器0 0R00 1R11 0R21 1R3对数据im的规定:模型机规定数据的表示采用定点整数补码表示,单字长为8位,其格式如下:76 5 4 3 2 1 0符号位尾数4.2 具体指令格式及功能表序号指令助记符指令格式15 1211、109、87 0功能01INI Rd0001xxRdxxxx输入设备-Rd02MOV Rd , im0010xxRdim立即数-Rd03LAD (Rs) , Rd0011RsRdxxxx(Rs)-Rd04ADD Rs , Rd0100RsRdxxxxRs+Rd-Rd05INC Rd0101xxRdxxxxRd+1-Rd06DEC Rd0110xxRdxxxxRd-1-Rd07JNZ addr0111xxxxaddrZF=0时,addr-PC08STO Rs , addr1000RsxxaddrRs-addr09JMP addr1001xxxxaddrAddr-PC0AOUT1 Rs1010RsxxxxxxRs-输出设备0BSTOI Rs , (Rd)1011RsRdxxxxRs-(Rd)0CJNS addr1100xxxxaddrSF=0时,addr-PC0DMUL Rs , Rd1101RsRdxxxxRs * Rd -Rd0EAND Rs , Rd1110RsRdxxxxRs Rd -Rd5 设计时序产生器电路CISC微处理器的时钟信号CLK和清除信号CLR由外部输入,节拍脉冲信号Ti由时序产生器产生。下图即为节拍脉冲信号与外部时钟信号、清除信号的时序关系。由图可知,节拍脉冲信号T1、T2、T3、T4可以由以CLK为时钟输入信号输入到模4计数器,并经2:4译码器译码产生。6 机器指令的微程序流程图根据模型机的数据通路图以及所有指令在CISC模型机中的操作过程,画出所有机器指令的微程序流程图。所有指令的取指周期是完全相同的,均占用一个CPU周期。但是由于各条指令完成不同的功能,它们的执行周期也各不相同。每条指令解释完后都要进入一个公操作部分,在公操作期间,CPU开始一些特殊的操作,如判断并处理各类中断请求、DMA请求、总线请求等,若无任何请求,那么CPU就根据当前PC值从指令Cache中取下一条指令。00STO00RD RAMDBUSRdRsAR00RsDBUSWE RAM12RdARRsDBUSWE RAM0B000004RsXRdYX+YRd锁存标志位SWRdRdYY+1Rd锁存标志位 PCABUS(I) RD ROM IBUS IR PC + 1P(1)0003050111IR(A)Rd02000A000600RdYY-1Rd锁存标志位0000IR(A)PC0009DECRsLEDLADADDINCJNZMOVIN112JMP0700IR(A)PCP(2)ZF=0ZF=11000STOIIR(A)AROUT1JNS080C00IR(A)PCP(3)SF=0SF=12000RsXRdYXYRd锁存标志位00AND0ERsXRdYX*YRd锁存标志位000DMUL7 操作控制器单元的设计7.1 微指令格式设计CISC模型机系统使用的微指令采用全水平型微指令,字长为27位,其中微命令字段为18位,P字段为3位,后继微地址为6位,其格式如下:LDADLDPCLDARLDIRLDRiLDPSWRs_BS2S1S0ALU_BRD_DCS_DRAM_BCS_IADDR_BSW_BLED_B操作控制P1P2P3顺序控制uA5uA07.2 微指令中各位的功能设计(1) 、操作控制字段中用来控制时许逻辑电路的微命令中,LDPC、LDAR、LDIR、LDRi、LDPSW为高电平有效。(2) 、P1测试操作码,P2测试ZF,P3测试SF,都为高电平有效。(3) 、RAM的功能表:CS_DRD_D功能1不选择0()0写0()1读(4) 、程序计数器PC的功能表:CLRLOADLDPC功能0 将PC清010 BUS-PC110不装入,也不计数11 PC+1(5) 、算术逻辑运算单元ALU的功能表:S2S1S0功能000X+Y,锁存CF和ZF001X-Y,锁存CF和ZF010Y+1,锁存CF和ZF011Y-1,锁存CF和ZF100XY,锁存CF和ZF101XY,锁存CF和ZF110Y111X*Y,锁存CF、ZF和SF7.3 微指令表微地址微命令字段P1P2P3后继微地址LOADLDPCLDARLDIRLDRiLDPSWRs_BS2S1S0ALU_BRD_DCS_DRAM_BCS_IADDR_BSW_BLED_BuA5uA000110100100011110111100000110001010001111110100000021000101000111110110000003101000000011111111000110410001110000111111100000051000111010011111110000006100011101101111111000000710000010001111111101000081010001000111110110001209010000100011111011000000A100000000011111110000000B101000111001111111000120C100000100011111111001000D100011111101111111000000E100011110001111111000001001000010001111101100000111000000000100111110000020010000100011111011000008 汇编语言源程序MOV R1 , 11H; 输入的数据存放到RAM中从11H起始的某一连续区域MOV R1 ,5H; R2用于循环计数,输入5个数L0: INI R0; 输入数据到R0STOI R0 , (R1); R0 -(R1)INC R1; 地址加1 DEC R2; 循环计数减一 JNZ L0; 不为0,跳到L0,继续输入MOV R0 , 0; R0用来存放最终结果MOV R1,11H; R1用来存放存数数组首地址11HMOV R2 , 5H; R2循环计数用L1: LAD (R1) , R3; (R1)-R3,将以R1寄存器指向的存储器的内容给R3AND R3 , R3; R3R3JNSL2; 不为负,跳到L2MUL R3 , R3; 负数求平方和,R3-R3*R3ADD R3 , R0; R0 = R3+R0;L2: INC R1; 地址自增(取数的地址) DEC R2; 循环计数减一 JNZ L1; 不为0,跳到L1,继续取数,判断运算STO R0 , 10H; 将结果存入到地址为10H的RAM中END: OUT1 R0; 输出R0的内容(累加和)JMP END; 跳到END,使保持输出9 机器语言源程序 根据汇编语言源程序以及指令格式设计出机器语言源程序如下:地址汇编语言源程序(助记符)机器语言源程序(二进制)机器语言源程序(16进制)151211、109、87000MOV R1 , 11H001000010001 0001211101MOV R1 ,5H001000100000 0101220502L0: INI R0000100000000 0000100003STOI R0 , (R1)101100010000 0000B10004INC R1010100010000 0000510005 DEC R2011000100000 0000620006JNZ L0011100000000 0010700207MOV R0 , 0001000000000 0000200008MOV R1,11H001000010001 0001211109MOV R2 , 5H001000100000 010122050AL1: LAD (R1) , R3001101110000 000037000BAND R3 , R3111011110000 0000EF000CJNSL2110000000000 1111C00F0DMUL R3 , R3110111110000 0000DF000EADD R3 , R0010011000000 00004C000FL2: INC R1010100010000 0000510010DEC R2011000100000 0000620011JNZ L1011100000000 1010700A12STO R0 , 10H100000000001 0000801013END: OUT1 R0101000000000 0000A00014JMP END100100000001 0011901310 CISC模型机的顶层电路图10.1 顶层电路图ARR0R3寄存器10.2 微程序控制器crom10.3 微地址寄存器aa11 关键元器件实现部分代码11.1 ADDR(地址转移逻辑电路)LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY ADDR IS PORT( I15,I14,I13,I12:IN STD_LOGIC; ZF,CF,SF,T4,P1,P2,P3:IN STD_LOGIC; SE5,SE4,SE3,SE2,SE1,SE0:OUT STD_LOGIC);END ADDR;ARCHITECTURE A OF ADDR ISBEGIN SE5=NOT(NOT SF)AND P3 AND T4); -JNS,P3测试,修改第五位 SE4=NOT(NOT ZF)AND P2 AND T4); -JNZ,p2测试,修改第四位 SE3=NOT(I15 AND P1 AND T4); -根据四位操作码,改变微地址低四位 SE2OP(X) SE1=NOT(I13 AND P1 AND T4); SE0=NOT(I12 AND P1 AND T4);END A;11.2 ALU(算术逻辑运算单元)LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE 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(7 DOWNTO 0) ; -结果输出 CF,SF,ZF: OUT STD_LOGIC -锁存标志位SF、ZF );END ALU;ARCHITECTURE A OF ALU ISSIGNAL AA,BB,TEMP:STD_LOGIC_VECTOR(8 DOWNTO 0);SIGNAL TEMP1:STD_LOGIC_VECTOR(7 DOWNTO 0);BEGIN PROCESSBEGIN IF(S2=0 AND S1=0 AND S0=0) THEN-000,ADD AA=0&X; -拼接 BB=0&Y; TEMP=AA+BB; -ALUOUT是不可读,要TEMPALUOUT=TEMP(7 DOWNTO 0);CF=TEMP(8); -CF=TEMP的最高位,溢出位 -SF=TEMP(7); -SF=结果的最高位,符号 IF (TEMP=100000000 OR TEMP=000000000) THEN -正0,负0,设ZF=1 ZF=1; ELSE ZF=0; END IF;ELSIF(S2=0 AND S1=0 AND S0=1) THEN -001,SUB ALUOUT=X-Y;IF(XY) THEN CF=1; ZF=0; ELSIF(X=Y) THEN CF=0; ZF=1; ELSE CF=0; ZF=0; END IF; ELSIF(S2=0 AND S1=1 AND S0=0) THEN -010,INC AA=0&Y; TEMP=AA+1; ALUOUT=TEMP(7 DOWNTO 0); CF=TEMP(8); IF (TEMP=100000000) THEN ZF=1; ELSE ZF=0; END IF; ELSIF(S2=0 AND S1=1 AND S0=1) THEN -010,DEC AA=0&Y; TEMP=AA-1; ALUOUT=TEMP(7 DOWNTO 0); CF=TEMP(8); IF (TEMP=000000000) THEN ZF=1; ELSE ZF=0; END IF; ELSIF(S2=1 AND S1=0 AND S0=0) THEN -100,AND TEMP1=X AND Y; ALUOUT=TEMP1; CF=0;SF=TEMP1(7); -符号位 IF (TEMP1=00000000) THEN ZF=1; ELSE ZF=0; END IF; ELSIF(S2=1 AND S1=0 AND S0=1) THEN -101,OR TEMP1=X OR Y; ALUOUT=TEMP1; CF=0; IF (TEMP1=00000000) THEN ZF=1; ELSE ZFDBUS ALUOUT=Y;-SF=Y(7); -符号位ELSE -111,X*Y AA=0&X; -拼接 BB=0&Y;TEMP=AA*BB;ALUOUT=TEMP(7 DOWNTO 0); CF=TEMP(8); -CF=TEMP的最高位,溢出位 SF=TEMP(7); -SF=结果的最高位,符号 IF (TEMP=100000000 OR TEMP=000000000) THEN -正0,负0,设ZF=1 ZF=1; ELSE ZF=0; END IF; END IF; END PROCESS;END A;11.3 TIME_COUNTER(时序产生器)LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY TIME_COUNTER ISPORT( CLK,CLR: IN STD_LOGIC; T2,T3,T4: OUT STD_LOGIC );END TIME_COUNTER;ARCHITECTURE A OF TIME_COUNTER ISSIGNAL X:STD_LOGIC_VECTOR(1 DOWNTO 0):=00; -复初值00BEGIN PROCESS(CLK,CLR) BEGIN IF(CLR=0) THEN -启停控制 T2=0; T3=0; T4=0; X=00; ELSIF(CLKEVENT AND CLK=1) THEN X=X+1; -计数器方式 T2T2 T3T3 T4T4 END IF; END PROCESS;END A;11.4 PC(程序计数器)LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.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); Q: OUT STD_LOGIC_VECTOR(7 DOWNTO 0) );END PC;ARCHITECTURE A OF PC ISSIGNAL QOUT: STD_LOGIC_VECTOR(7 DOWNTO 0);BEGIN PROCESS(LDPC,CLR,LOAD) BEGIN IF(CLR=0) THEN QOUT=00000000; ELSIF(LDPCEVENT AND LDPC=1) THEN IF(LOAD=0) THEN QOUTPC ELSE QOUT=QOUT+1; -PC+1 END IF; END IF; END PROCESS; Q=QOUT;END A;执行INI R0,输入第一个数执行MOV R1,11H执行MOV R2,5H存入第一个数JNZ L0,不为0,后面为循环输入12 仿真波形图及其分析INC R1DEC R2JNZ L0,为0,不跳转,顺序执行,后面为三个MOV操作LAD (R1),R3AND R3,R3,锁存SFJNS L2,第一个数为负,不跳转,继续执行后面的平方累加JNZ L1,不为0,跳到L1,继续取数判断并运算将结果存入10H地址单元中,可以看到MEM中值的变化OUT1 R0,将结果输出JMP END,跳到END,继续输出13 故障现象和故障分析(1)实现某一个元器件编译的时候出现的错误如下图错误;由错误提示检查后发现是我写了过长的中文注释,可能编译器对中文的支持度不够。将注释缩短后错误消失。(2)、发现PC值并没有跳转,一直在做加一操作;检查发现寄存器的2:4译码器连接错误;导致对计数器的操作有问题。(3)、修改完毕后发现可以循环了,但是其一直循环下去,没有坐后面的取数操作;经过一一对照检查发现,MOV
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 8 大自然谢谢您 教学设计-2023-2024学年道德与法治一年级下册统编版
- 生命生态安全教案家庭树
- 商场场地出租协议8篇
- 一年级语文上册 第一单元 识字(一)3 口耳目教学设计 新人教版
- Module5 Unit1 How many?(教学设计)-2024-2025学年外研版(三起)英语三年级上册
- 七年级语文上册 第二单元 综合性学习 有朋自远方来教学设计 新人教版
- 超轻黏土培训
- 2023八年级数学上册 第十五章 分式15.2 分式的运算15.2.1 分式的乘除第2课时 分式的乘除混合运算与分式的乘方教学设计(新版)新人教版
- 2024-2025学年高中物理 第二章 力 第六节 力的分解教学设计 教科版必修1
- Unit7 study skills教学设计-2023-2024学年牛津译林版七年级英语下册
- 6.3.1 平面向量基本定理 课件(共15张PPT)
- 安全安全检查表分析(SCL)记录表(设备、设施)
- 城市湿地公园设计导则2017
- 小学巡课记录表
- 社会团体民办非清算审计报告模板
- 消防管道隐蔽工程验收报审表(表格记录)
- 地质灾害群测群防讲义
- 高频变压器标准工时对照表
- 建筑工程质量检测收费项目及标准表67262
- 232425黄昆固体物理教案
- 金蝶资产负债表公式设置
评论
0/150
提交评论