




免费预览已结束,剩余19页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第 1 页 第 1 页 计算机组成原理课程设计说明书 题 目 设计一台嵌入式 CISC 模型计算机 院 系 计算机科学与工程学院 专 业 网络工程 学生姓名 唐波 学 号 1100380219 指导教师 陈智勇 第 2 页 第 2 页 一 课设题目 一 课设题目 设计一台嵌入式 CISC 模型计算机 采用定长 CPU 周期 联合控制方式 并运行能完成一 定功能的机器语言程序进行验证 实现方法可从以下 4 类中任选一个 连续输入 5 个有符号整数 8 位二进制补码表示 用十六进制数输入 求最小的负 数的绝对值并输出显示 说明 5 个有符号数从外部输入 一定要使用符号标志位 比如说 SF 并且要使用为负的时候转移 比如 JS 或不为负的时候转移 比如 JNS 指令 二 二 CISCCISC 模型机系统总体设计模型机系统总体设计 三 操作控制器的逻辑框图三 操作控制器的逻辑框图 指令寄存器 IR 操作码 微地址寄存器 地址译码 控制存储器 地址转移 逻辑 状态条件 微命令寄存器P 字段操作控制字段 微命令信号 第 3 页 第 3 页 说明 在 T4 内形成微指令的微地址 并访问控制存储器 在 T2 的上边沿到来时 将读出的 微指令打入微指令寄存器 即图中的微命令寄存器和微地址寄存器 四 模型机的指令系统和所有指令的指令格式四 模型机的指令系统和所有指令的指令格式 由此可见 本模型机中的指令系统中共有 8 条基本指令 下表 9 列出了每条指令的格 式 汇编符号和指令功能 指令格式指令格式 指令助记符指令助记符 15 1211 109 87 0 功能功能 IN1 Rd 0101 Rd Rd 1 Rd 锁存标志 位 MOV Rd im 0001 Rdim 立即数立即数 Rd CMP Rs Rd 0011RsRd Rs Rd 比较 INC Rd 0010 Rd 输入设备 Rd JNS addr 0100 addr 若大于 则 addr PC JMP addr 0110 addr addr PC OUT1 Rs 1001Rs Rs 输出设备输出设备 MOV1 Rs Rd 1000RsRd Rs Rd NOT Rd 0111 Rd Data 取反 第 4 页 第 4 页 指令格式 1 I O 指令 单字节 I 说明 对 Rs 和 Rd 的规定 Rs 或 Rd选定的寄存器 0 0R0 0 1R1 1 0R2 1 1R3 五 所有机器指令的微程序流程图五 所有机器指令的微程序流程图 设计操作控制器单元 即微程序控制器 1 设计微指令格式和微指令代码表 CISC 模型机系统使用的微指令采用全水平型微指令 字长为 25 位 其中微命令字段 为 17 位 P 字段为 2 位 后继微地址为 6 位 其格式如下 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 LOAD LDPC LDAR LDIR LDRi RD B RS B S2 S1 S0 ALU B SW B LED B RD D CS D RAM B CS I ADDR B P1 P2 后继微地 PC ABUS I RD ROM IBUS IR PC 1 Rd Y Y 1 Rd 锁存 CF ZF Rs X Rd Y 锁存 CF ZF SW Rd ROM BUS BUS PC Rs X X Rs 锁存 CF ZF Rs LED IR A PC IR I Rd P 1 P 2 00 00 02 030405O60709 00 01 20 10 CF 0 ZF 0 CF 1 ZF 1 INCCMPJNS IN1 JMPNOT OUT1 00 00 0000 00 00 MOV 00 MOV1 Rs X X Rd 08 00 00 00 第 5 页 第 5 页 址 由微指令格式和微程序流程图编写的微指令代码表如下所示 在微指令的代码表中微 命令字段从左边到右代表的微命令信号依次为 LOAD LDPC LDAR LDIR LDRi RD B RS B S2 S1 S0 ALU B SW B LED B RD D CS D RAM B CS I ADDR B 微地址微命令字段 P1P2 后继微地址 0011010010001111110110000010 0110001010001111111000000000 0210001110100111111100000001 0310000110011111111100000000 0410000010001101111101000011 0510001010001011111100000100 0601000010001111111000100000 0710001111000111111100000000 0810001011010111111100010010 0910000000001101111100010100 1001000010001111111000000000 2 设计地址转移逻辑电路 地址转移逻辑电路是根据微程序流程图 3 2 中的棱形框部分及多个分支微地址 利用 微地址寄存器的异步置 1 端 实现微地址的多路转移 由于微地址寄存器中的触发器异步置 1 端低电平有效 与 A4 A0 对应的异步置 1 控制信号 SE5 SE1 的逻辑表达式为 A5 的异步置 1 端 SE6 实际未使用 SE5 FS P 2 T4 SE4 I7 P 1 T4 SE3 I6 P 1 T4 SE2 I5 P 1 T4 SE1 I4 P 1 T4 六 嵌入式六 嵌入式 CISCCISC 模型计算机的顶层电路图模型计算机的顶层电路图 第 6 页 第 6 页 CROM AA 第 7 页 第 7 页 七 汇编代码 七 汇编代码 MOV R0 00H 功能 将 0 赋给 R0 MOV R1 FFH 将 FF 赋给 R1 MOV R2 05H 将 05 赋给 R2 L0 INC R0 计数加 1 CMP R0 R2 R0 与 R2 比较 是否输入五个数 JNS L3 是跳转 L2 输出 IN1 R3 输入一个数到 R3 CMP R3 R1 R3 和 R1 比较 锁存 CF ZF JNS L2 跳转 L2 输出 JMP L1 跳转 L1 L1 MOV1 R1 R3 R3 R1 JMP L0 跳转 L0 L2 NOT R1 R1 取反 INC R1 R1 加 1 OUT1 R1 输出 R1 第 8 页 第 8 页 八 机器语言源程序八 机器语言源程序 地址 十六进制 汇编语言源程序 机器语言源程序 代码 00 MOV R0 00H 0001 0000 0000 0000 1000 01 MOV R1 FFH 0001 0001 1111 1111 11FF 02 MOV R2 05H 0001 0010 0000 0101 1025 03 L0 INC R0 0010 0000 0000 0000 2000 04 CMP R0 R2 0011 1000 0000 0000 3800 05 JNS L3 0100 0000 0000 1100400C 06 IN1 R3 0101 0011 0000 0000 5300 07 CMP R3 R1 0011 1101 0000 0000 3D00 08 JNS L2 0100 0000 0000 1010400A 09 JMP L1 0110 0000 0000 0011 6003 0A L1 MOV1 R1 R3 1000 1101 0000 0000 8D00 0B JMP L0 0110 0000 0000 0011 6003 0C L2 NOT R1 0111 0001 0000 0000 7100 0D INC R1 0010 0001 0000 0000 2100 0E OUT1 R1 1001 0100 0000 0000 9400 九 机器语言源程序的功能仿真波形图及结果分析九 机器语言源程序的功能仿真波形图及结果分析 第 9 页 第 9 页 1 MOV R0 00H 2 MOV R1 FFH 3 MOV R2 05H 4 CMP R2 R0 5 IN1 R3 F4 存到 R3 6 MOV1 R3 R1 F4 存入 R1 7 IN1 R3 02 存到 R3 8 02 是大于 F4 的正数 不跳到 L1 存 R1 直接跳回 L0 9 IN1 R3 F1 存到 R3 10 F1 是小于于 F4 的负数 跳到 L1 MOV1 R3 R1 F1 存入 R1 第 10 页 第 10 页 11 FNOT R1 INC R1 F1 取反加 1 存入 R1 12 OUT1 R1 输出 R1 最终结果是 0F 十 故障现象和故障分析十 故障现象和故障分析 故障一 在进行仿真的时候 当输入一个正数存进 R3 之后 执行 CMP R3 R1 之后 没有执行 JNS L0 而是错将正数也存入 R1 查看之后发现是 ALU 里 CMP 运算代码有问题 故障二 计数 R0 一直加 到 5 时不会跳转输出 检查机器指令发现 JNS L2 的地址写成了 06 故障三 输出结果时 取反都变成 FB 检查很久之后发现原本应该对 AC 里的数取反的 结 第 11 页 第 11 页 果弄成了 DR 的 故障 N 汇编程序出错 连线错误 微指令错误 修改器件没有重新编译等 十一十一 心得体会心得体会 刚开始去上老师的课时 听得一头雾水 因为发现好多地方自己同不懂 然后我就去看课本 同时问老师一些问题 当看到其他同学也问老师问题时 自己也跑过去凑热闹 因为这样可以了解更多的知识 直到后来才发现 原来 除了设计自己的指令外 我们需要写 MCOMMAND 写 CONTROM 来解析我 们写的指令 这或许可以算得上一个极简单的 CPU 模型了吧 就是有了微程序 控制器 计算机才认识我们自己设计的指令 才知道当读取到什么指令时该执 行什么操作 听得多了 看得多了 就渐渐的明白了一些课设的相关知识 然 后画指令流程图 设计指令 写程序完成任务 这些几乎都是水到渠成的工作 了 很多都可以依葫芦画瓢来完成 本次课设 由于汇编学的很差 期汇编代码是和班级同学的相同 但是自 己重新设计了指令周期流程图 经过调试得出的结果 其实只要把最基本的原理搞明白了 后续工作开展是非常快的 但在没明 白原理前 千万不要畏惧困难 慢慢的一点一点学习 特别是仿真软件的学习 和使用 需要花费相当的时间 只要认真了 就有可能实现 十二十二 软件清单软件清单 AAAA 里的里的 MMM MMM LIBRARY IEEE USE IEEE STD LOGIC 1164 ALL ENTITY MMM IS PORT 第 12 页 第 12 页 SE IN STD LOGIC CLK IN STD LOGIC D IN STD LOGIC CLR IN STD LOGIC UA OUT STD LOGIC END MMM ARCHITECTURE A OF MMM IS BEGIN PROCESS CLR SE CLK BEGIN IF CLR 0 THEN UA 0 ELSIF SE 0 THEN UA 1 ELSIF CLK EVENT AND CLK 1 THEN UA D END IF END PROCESS END A CROMCROM 的 的 ADDRADDR LIBRARY IEEE USE IEEE STD LOGIC 1164 ALL ENTITY ADDR IS PORT I15 I14 I13 I12 IN STD LOGIC ZF CF T4 P1 P2 IN STD LOGIC SE5 SE4 SE3 SE2 SE1 SE0 OUT STD LOGIC END ADDR ARCHITECTURE A OF ADDR IS 第 13 页 第 13 页 BEGIN SE5 1 预留给 JB 或 JAE 指令使用 SE4 NOT NOT ZF AND CF AND P2 AND T4 SE3 NOT I15 AND P1 AND T4 SE2 NOT I14 AND P1 AND T4 SE1 NOT I13 AND P1 AND T4 SE0 NOT I12 AND P1 AND T4 END A LIBRARY IEEE USE IEEE STD LOGIC 1164 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 第 14 页 第 14 页 LIBRARY IEEE USE IEEE STD LOGIC 1164 ALL ENTITY F2 IS PORT D IN STD LOGIC VECTOR 5 DOWNTO 0 UA5 UA4 UA3 UA2 UA1 UA0 OUT STD LOGIC END F2 ARCHITECTURE A OF F2 IS BEGIN UA5 D 5 UA4 D 4 UA3 D 3 UA2 D 2 UA1 D 1 UA0 DATAOUT DATAOUT DATAOUT DATAOUT DATAOUT DATAOUT DATAOUT DATAOUT DATAOUT DATAOUT DATAOUT DATAOUT 10000010001111111100000000 END CASE UA 5 DOWNTO 0 DATAOUT 5 DOWNTO 0 O 19 DOWNTO 0 DATAOUT 25 DOWNTO 6 END PROCESS END A 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 END F3 ARCHITECTURE A OF F3 IS BEGIN UA3 D 3 UA2 D 2 UA1 D 1 UA0 D 0 END A 第 16 页 第 16 页 LIBRARY IEEE USE IEEE STD LOGIC 1164 ALL USE IEEE STD LOGIC ARITH ALL USE IEEE STD LOGIC UNSIGNED ALL ENTITY MCOMMAND IS PORT 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 D CS D RAM B CS I ADDR B P1 P2 OUT STD LOGIC END MCOMMAND ARCHITECTURE A OF MCOMMAND IS SIGNAL 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 第 17 页 第 17 页 END IF LOAD DATAOUT 19 LDPC DATAOUT 18 AND T4 LDAR 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 OR 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 Top 顶层图的 顶层图的 MUX3 功能表功能表 输入输入 输出输出 SW B CS ID 7 0 N1 7 0 N2 7 0 EW 7 0 0 X X X X IN 7 0 1 0 X X X N2 7 0 1 1 X X X N1 7 0 LIBRARY IEEE USE IEEE STD LOGIC 1164 ALL ENTITY MUX3 IS PORT 第 18 页 第 18 页 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 IS BEGIN PROCESS SW B CS BEGIN IF SW B 0 THEN EW ID ELSIF CS 0 THEN EW N2 ELSE EW N1 END IF END PROCESS END A ROM 功能功能 CS 1 不选择不选择 CS 0 读 读 LIBRARY IEEE USE IEEE STD LOGIC 1164 ALL USE IEEE STD LOGIC ARITH ALL USE IEEE STD LOGIC UNSIGNED ALL ENTITY ROM IS PORT 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 IS BEGIN 第 19 页 第 19 页 DOUT 0001000000000000 WHEN ADDR 00000000 AND CS I 0 ELSE 0001000111111111 WHEN ADDR 00000001 AND CS I 0 ELSE 0001001000000101 WHEN ADDR 00000010 AND CS I 0 ELSE 0010000000000000 WHEN ADDR 00000011 AND CS I 0 ELSE 0011100000000000 WHEN ADDR 00000100 AND CS I 0 ELSE 0100000000001100 WHEN ADDR 00000101 AND CS I 0 ELSE 0101001100000000 WHEN ADDR 00000110 AND CS I 0 ELSE 0011110100000000 WHEN ADDR 00000111 AND CS I 0 ELSE 0100000000001010 WHEN ADDR 00001000 AND CS I 0 ELSE 0110000000000011 WHEN ADDR 00001001 AND CS I 0 ELSE 1000110100000000 WHEN ADDR 00001010 AND CS I 0 ELSE 0110000000000011 WHEN ADDR 00001011 AND CS I 0 ELSE 0111000100000000 WHEN ADDR 00001100 AND CS I 0 ELSE 0010000100000000 WHEN ADDR 00001101 AND CS I 0 ELSE 1001010000000000 WHEN ADDR 00001110 AND CS I 0 ELSE 0000000000000000 END A LIBRARY IEEE USE IEEE STD LOGIC 1164 ALL USE IEEE STD LOGIC ARITH ALL USE IEEE STD LOGIC UNSIGNED ALL ENTITY COUNTER IS PORT CLK CLR IN STD LOGIC T2 T3 T4 OUT STD LOGIC END COUNTER ARCHITECTURE A OF COUNTER IS SIGNAL X STD LOGIC VECTOR 1 DOWNTO 0 00 BEGIN PROCESS CLK CLR BEGIN IF CLR 0 THEN 第 20 页 第 20 页 T2 0 T3 0 T4 0 X 00 ELSIF CLK EVENT AND CLK 1 THEN X X 1 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 LIBRARY IEEE USE IEEE STD LOGIC 1164 ALL ENTITY LS273 IS PORT D IN STD LOGIC VECTOR 7 DOWNTO 0 CLK IN STD LOGIC Q OUT STD LOGIC VECTOR 7 DOWNTO 0 END LS273 ARCHITECTURE A OF LS273 IS BEGIN PROCESS CLK BEGIN IF CLK EVENT AND CLK 1 THEN Q D END IF END PROCESS END A 第 21 页 第 21 页 ALU 功能表功能表 S2 S1 S0 功能功能 0 0 0 ADD 锁存锁存 CF ZF 0 1 1 CMP 比较指令比较指令 0 1 0 INC 加 加 1 指令 指令 1 1 0 NOT 取反指令取反指令 1 0 1 MOV1 Rs Rd LIBRARY IEEE USE IEEE STD LOGIC 1164 ALL USE IEEE STD LOGIC ARITH ALL USE IEEE STD LOGIC UNSIGNED all ENTITY ALU IS PORT 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 ZF OUT STD LOGIC END ALU ARCHITECTURE A OF ALU IS SIGNAL AA BB TEMP STD LOGIC VECTOR 8 DOWNTO 0 SIGNAL TEMP1 STD LOGIC VECTOR 7 DOWNTO 0 BEGIN PROCESS BEGIN IF S2 0 AND S1 0 AND S0 0 THEN ADD AA 0 BB 0 TEMP AA BB ALUOUT TEMP 7 DOWNTO 0 CF TEMP 8 IF TEMP 100000000 OR TEMP 000000000 THEN ZF 1 ELSE ZF 0 第 22 页 第 22 页 END IF ELSIF S2 0 AND S1 0 AND S0 1 THEN CMP SUB AA 0 BB 0 TEMP AA BB ALUOUT TEMP 7 DOWNTO 0 TEMP1 TEMP 7 DOWNTO 0 CF TEMP1 7 IF TEMP1 00000000 THEN ZF 1 ELSE ZF 0 END IF ELSIF S2 0 AND S1 1 AND S0 0 THEN INC AA 0 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 DEC AA 0 TEMP AA 1 ALUOUT TEMP 7 DOWNTO 0 CF TEMP 8 IF TEMP 000000000 THE
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年饮料行业健康饮品市场前景研究报告
- 2025年医药行业医疗器械市场需求预测报告
- 2025年放射科影像学报告结果解读模拟试卷答案及解析
- 不高考协议书
- 抚州高新区2025年公开招聘五级主办工作人员【11人】笔试模拟试题及答案解析
- 玛沁县公安局2025年下半年招聘警务辅助人员笔试备考试题及答案解析
- 2025年消化科肠胃溃疡疾病的饮食调理模拟测验答案及解析
- 2025广东潮州市教育局直属学校赴“百万英才汇南粤”潮州市秋季招聘会(广州站) 招聘教师14人笔试模拟试题及答案解析
- 2026秋季中国移动通信集团云南有限公司校园招聘笔试备考题库及答案解析
- 2025年滁州全椒县县属国有公司“凤还巢”人才返乡招募7人笔试备考试题及答案解析
- 2.3河流与湖泊第1课时课件-八年级地理上学期人教版
- 专题04 利用基本不等式求最值(压轴题8大类型专项训练)数学人教A版2019必修一(解析版)
- 2025上海浦东新区浦东公安分局文员招聘300人考试参考题库及答案解析
- 风险限额管理与应用
- 工程结算审核工作方案(3篇)
- 秋季企业施工安全培训内容课件
- 2025年秋期新教材人音版三年级上册小学音乐教学计划+进度表
- 中国心房颤动管理指南(2025)解读
- 2025年成人高考专升本民法真题及答案
- 2025-2026学年陕旅版(三起)(2024)小学英语四年级上册(全册)教学设计(附目录)
- 高血压防治知识课件下载
评论
0/150
提交评论