8位模型计算机的设计
计算机硬件课程设计报告——拓展接口的复杂模型机设计
计算机硬件课程设计报告——拓展接口的复杂模型机设计学院:计算机科学与工程学院专业:计算机科学与技术班级:组员1:组员2:起止时间:目录一、实验目的 (3)二、实验内容 (3)三、实验思路 (3)四、实验原理 (3)五、实验步骤 (10)六、实验设计 (11)七、实验心得 (14)一、实验目的经过一系列硬件课程的学习及相关实验后,做一个综合的系统性的设计,这在硬件方面是一个提高,进一步培养实践能力。
二、实验内容搭建一台有拓展接口的8位模型机,指令系统要求有10条以上,其中包括运算类指令、传送类指令、控制转移类指令、输入输出指令、停机指令等。
三、实验思路1、确定设计目标:确定所设计计算机的功能和用途。
2、确定指令系统:确定数据的表示格式、位数、指令的编码、类型、需要设计哪些指令及使用的寻址方式。
3、确定总体结构与数据通路:总体结构设计包含确定各部件设置以及它们之间的数据通路结构,列出各种信息传送路径以及实现这些传送所需要的微命令。
4、设计指令执行流程:数据通路确定后,就可以设计指令系统中每条指令的执行流程。
根据指令的复杂程度。
每条指令所需要的机器周期数。
对于微程序控制的计算机,根据总线结构,需要考虑哪些微操作可以安排在同一个微指令中。
5、确定微程序地址:根据后续微地址的形成方法,确定每条微程序地址及分支转移地址。
6、根据微指令格式,将微程序流程中的所有微操作进行二进制代码化,写入到控制存储器中的相应单元中。
7、组装、调试:在总装调试前,先按功能模块进行组装和分调,因为只有功能模块工作正常后,才能保证整机的运行正确。
四、实验原理1、指令系统及指令格式(1)数据格式8位。
(2)指令格式:指令系统应包括:算术逻辑运算指令、访存指令、控制转移指令、I/O指令、停机指令。
一般指令格式如下:O P-C O D E(4位)R S(2位)R D(2位)D A T A /A D D R (8位)其中R S 、R D 可以是R 0、R 1、R 2中任一个,它们的代码分别为00、01、10。
TEC-8计算机组成原理实验北邮
MBUS
K15
LAR MEMW
K10 K11
LPC
K12
ARINC PCINC PCADD
GND GND GND
实验任务
将实验电路与控制台的有关信号进行线路连接,方 法同前面的实验。
接好线后,将编程开关拨到“正常”位置,控制转换 开关拨到“独立”位置,合上电源,按CLR#按钮,使 TEC-8实验系统处于初始状态。
指示灯
指示灯、复位、插座
运算器74LS181
双端口RAM7132
DBUS ALU A、B C Z PC 、AR、IR、INS
ZC
数据总线 DBUS
INS7—INS0
M S0
ABUS
S1 S2
ALU
LDC
S3
LDZ
CIN A端口
B端口
T3
MBUS MEMW
T2
D7L—D0L
D7R—D0R
双端口RAM
运算。
14
运算器组成实验电路分析
双端口寄存器组由1片EPM7064组成,内部包含4 个8位寄存器R0-3,4选1选择器A、B和1个2-4译码器。 根据信号RD1-0的值选择寄存器送往ALU的A端口, 根据信号RS1-0的值选择寄存器送往ALU的B端口, 当DRW信号为1时,则在T3的上升沿,将数据总线 DBUS上的数写入相应寄存器。
VGA 接口
交通灯 喇叭
微程序控制器 单片机
LED 显示
运算器
存储器
EPM7128
VCC GND
时钟源
电位 器
单脉冲
时序
操作 模式
数据开关
电平控制信号开关
TEC-8实验系统简介
复杂模型机实验实验报告(共9篇)
复杂模型机实验实验报告(共9篇)_复杂模型机实验报告计算机组成原理实验报告实验题目:一台模型计算机的总体设计之复杂模型机设计实验目的:(1)在掌握部件单元电路实验的基础上,进一步将其组成系统,构造一台复杂模型计算机,建立一台基本完整的整机。
(2)为其定义至少五条机器指令,并编写相应的微程序,通过联机调试,观察计算机执行指令:从取指令、指令译码、执行指令等过程中数据通路内数据的流动情况,进一步掌握整机概念。
实验设备TDN-CM+教学实验系统一套、微型计算机一台、排线若干。
实验原理:(1)数据格式及指令系统:①数据格式模型机规定数据采用定点整数补码表示,字长为8位,其格式如下:其中,第7位为符号位,数值表示范围是-27 ≤X≤27-1 ②指令格式模型机设计4大类指令共16条,其中包括算术逻辑指令、I/O 指令、访问及转移指令和停机指令。
A.算术逻辑指令设计九条算术逻辑指令并用单字节表示,寻址方式采用寄存器直接寻址,其格式如下:其中,OP-CODE为操作码,RS为源寄存器,RD为目标寄存器,并规定:九条算术逻辑指令的助记符、功能和具体格式见表5.2-1。
B.访问及转移指令:模型机设计两条访问指令,即存数(STA)、取数(LDA),两条转移指令,即无条件转移(JMP)、结果为零或有进位转移(BZC),指令格式如下:其中,OP-CODE为操作码,RD为目的寄存器地址(LDA、STA 指令使用)。
D为位移量(正负均可),M为寻址模式,其定义如下:本模型机规定变址寄存器RI指定为寄存器R2。
C.I/O指令:输入(IN)和输出(OUT)指令采用单字节指令,其格式如下:其中,addr=01时,选中“INPUT DEVICE”中的开关组作为输入设备,addr=10时,选中“OUTPUT DEVICE”中的数码块作为输出设备。
D.停机指令:停机指令格式如下:HALT指令,用于实现停机操作。
③指令系统:本模型机共有16条基本指令,其中算术逻辑指令七条,移位指令两条,访问内存指令和程序控制指令四条,输入/输出指令两条,其它指令一条。
8位CPU的设计与实现
计算机组成原理CPU 实验题目 8位的系统设计1115106046 号学魏忠淋姓名B 11电子班班级凌朝东指导老师华侨大学电子工程系8位CPU的系统设计一、实验要求与任务完成从指令系统到CPU的设计,编写测试程序,通过运行测试程序对CPU设计进行正确性评定。
具体内容包括:典型指令系统(包括运算类、转移类、访存类)设计;CPU结构设计;规则文件与调试程序设计;CPU调试及测试程序运行。
1.1设计指标能实现加减法、左右移位、逻辑运算、数据存取、有无条件跳转、内存访问等指令;1.2设计要求画出电路原理图、仿真波形图;二、CPU的组成结构三、元器件的选择1.运算部件(ALU)ALU181的程序代码:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY ALU181 ISPORT (S : IN STD_LOGIC_VECTOR(3 DOWNTO 0 );A : IN STD_LOGIC_VECTOR(7 DOWNTO 0);B : IN STD_LOGIC_VECTOR(7 DOWNTO 0);F : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);COUT : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);M : IN STD_LOGIC;CN : IN STD_LOGIC;CO,FZ: OUT STD_LOGIC );END ALU181;ARCHITECTURE behav OF ALU181 ISSIGNAL A9 : STD_LOGIC_VECTOR(8 DOWNTO 0);SIGNAL B9 : STD_LOGIC_VECTOR(8 DOWNTO 0);SIGNAL F9 : STD_LOGIC_VECTOR(8 DOWNTO 0);BEGINB9 <= '0' & B ; A9 <= '0' & A ;PROCESS(M,CN,A9,B9)BEGINCASE S ISWHEN ぜ?尰=> IF M='0' THEN F9<=A9 + CN ; ELSE F9<=NOT A9; END IF;WHEN IF M='0' THEN F9<=(A9 or B9) + CN ; ELSEF9<=NOT(A9 OR B9); END IF;WHEN 0 => IF M='0' THEN F9<=(A9 or (NOT B9))+ CN ; ELSEF9<=(NOT A9) AND B9; END IF;WHEN 1 => IF M='0' THEN F9<= ; ELSEF9<= END IF;WHEN 0 => IF M='0' THEN F9<=A9+(A9 AND NOT B9)+ CN ; ELSE F9<=NOT (A9 AND B9); END IF;WHEN 1 => IF M='0' THEN F9<=(A9 or B9)+(A9 AND NOT B9)+CN ; ELSE F9<=NOT B9; END IF;WHEN 0 => IF M='0' THEN F9<=(A9 - B9) - CN ; ELSE F9<=A9 XOR B9; END IF;WHEN 1 => IF M='0' THEN F9<=(A9 or (NOT B9)) - CN ; ELSE F9<=A9 and (NOT B9); END IF;WHEN @0 => IF M='0' THEN F9<=A9 + (A9 AND B9)+CN ; ELSE F9<=(NOT A9)and B9; END IF;WHEN @1 => IF M='0' THEN F9<=A9 + B9 + CN ; ELSE F9<=NOT(A9 XOR B9); END IF;WHEN A0 => IF M='0' THEN F9<=(A9 or(NOT B9))+(A9 AND B9)+CN ;ELSE F9<=B9; END IF;WHEN A1 => IF M='0' THEN F9<=(A9 AND B9)- CN ;ELSE F9<=A9 AND B9; END IF;WHEN H0 => IF M='0' THEN F9<=(A9 + A9) + CN ; ELSEF9<= END IF;WHEN H1 => IF M='0' THEN F9<=(A9 or B9) + A9 + CN ; ELSEF9<=A9 OR (NOT B9); END IF;WHEN I0 => IF M='0' THEN F9<=((A9 or (NOT B9)) +A9) + CN ; ELSEF9<=A9 OR B9; END IF;WHEN I1 => IF M='0' THEN F9<=A9 - CN ; ELSEF9<=A9 ; END IF;WHEN OTHERS => F9<=END CASE;IF(A9=B9) THEN FZ<='0';END IF;END PROCESS;F<= F9(7 DOWNTO 0) ; CO <= F9(8) ;COUT<=END behav;ALU的原理图:2.微控制器实现信息传送要靠微命令的控制,因此在CPU 中设置微命令产生部件,根据控制信息产生微命令序列,对指令功能所要求的数据传送进行控制,同时在数据传送至运算部件时控制完成运算处理。
8位模型机设计-指令系统及通用寄存器设计
东北大学秦皇岛分校计算机与通信工程学院计算机组成原理课程设计专业名称计算机科学与技术班级学号学生姓名指导教师设计时间2014.12.22~2015.1.2课程设计任务书专业:计算机科学与技术学号:学生姓名(签名):设计题目:8位模型机设计-指令系统及通用寄存器设计一、设计实验条件综合楼808实验室二、设计任务及要求总的设计目标是:设计一个8 位的模型机,其组成为:总线结构:单总线,数据总线位数8位、地址总线8位;●存储器:内存容量64K*8bit●控制器:用硬联线控制器实现26位微操作控制信号●运算器:单累加器,实现加、减等8种操作外设:●输入:用开关输入二进制量●输出:7段数码管和LED显示指令系统规模:64 条指令,7种类型,5种寻址方式本组任务是:1.设计12、15、22、32号指令;2.模型机的通用寄存器R1设计;3.BCD编码器的设计。
三、设计报告的内容1.设计题目与设计任务(设计任务书)设计内容如下:1、指令系统设计:ADDC A, #II 将立即数II加入累加器A中带进位SUB A, EM 从A中减去存储器EM地址的值AND A, @R? 累加器A“与”间址存储器的值MOV A, #II 将立即数II送到累加器A中2、模型机硬件设计:通用寄存器R13、逻辑电路设计:BCD码编码器2.前言(绪论)(设计的目的、意义等)1.融会贯通计算机组成原理课程的内容,通过知识的综合运用,加深对计算机系统各个模块的工作原理及相互联系的认识;2.学习运用VHDL进行FPGA/CPLD设计的基本步骤和方法,熟悉EDA的设计、模拟调试工具的使用,体会FPGA/CPLD技术相对于传统开发技术的优点;3.培养科学研究的独立工作能力,取得工程设计与组装调试的实践经验。
3.设计主体(各部分设计内容、分析、结论等)【系统设计】1、模型机逻辑框图图1 模拟机整体逻辑框图图2 XCV200芯片引脚图3 CPU逻辑框图2、指令系统设计:ADDC A, #II 将立即数II加入累加器A中带进位助记符:ADDC A, #II类型:算数运算指令寻址方式:立即数寻址指令格式:第一字节001011XX第二字节立即数:SUB A, EM 从A中减去存储器EM地址的值助记符:SUB A, EM类型:算数运算指令寻址方式:存储器直接寻址指令格式:第一字节001110XX第二字节存储地址:AND A, @R? 累加器A“与”间址存储器的值助记符:AND A, @R?类型:算数运算指令寻址方式:寄存器间接寻址指令格式:第一字节010101XX:MOV A, #II 将立即数II送到累加器A中助记符:MOV A, #II类型:数据传送指令寻址方式:立即数寻址指令格式:第一字节011111XX第二字节立即数3、微操作控制信号:外部设备读信号,当给出了外设的地址后,输出此信号,从指定外设读数据。
8位模型机的设计与实现
结 构和数 据通 路如 图 1所 示. 制 器 是 整个 模 型 机 控
的 中心 , 由它 来控制 计算 机指 令 的执行 . 型机执行 模 指 令 的具 体过程 为 : 先 控 制器 从 指令 寄 存 器 取得 首 指令, 编译 指 令 , 输 出微 控 制 信 号 , 制 AL 的 再 控 U 运算 , C加 1 并且 从 RAM 中取 出数 据 运算 , 算 P , 运
方式后 , 要掌握 其它类 型 的 寻址 方 式 ( 接寻 址 等) 间 就 比较 容易 了. 由于我 们 设计 模 型 机 的主要 目的 又 是 为 了使 学生掌握 计算机 的工作 原理及 指令在 计算 机 中执行 的流程 , 而不 是 真 正要 实 现一 台计算 机 产 品 , 以我们 只在模 型机 中实现这 两种 寻址方式. 所
觉得 计 算 机 组 成 原 理 整 机 实验 不 再 抽 象 难 懂 . 关 键 词 :模 型 机 ; 计 与 实 现 ; 设 VHDL 中 图 分 类 号 :T 3 3 P 0 文 献 标 识 码 :A 文 章 编 号 : 1 7 一 l 9 ( 0 10 — 0 7 —0 6 1 lX 2 1 )1 0 1 3
立 即数或 存储 单元 等操 作 数 , 4位用 于保 存 指令 高 操 作码 , 模型 机 的指令 格式 如图 2 示. 所 模型 机指令
系统 包括 数据 传送 类指 令 、 术逻辑 运算 类指令 、 算 转 移类 指令 、 停机 指令 4类 指令 , 1 共 0条指令 . 每条 指 令 的助记 符 、 令格 式 、 指 机器码 和指令 功能 如表 1所
存 器读 取 下一 条指令 , 次循 环. 依
0 引 言
计算 机组成 原理是 计算 机科 学 专业 的一 门重 要 的专 业基础 课 , 内容 包 括 计算 机 部 件 和 整 机 的组 成
实验六:复杂模型机的设计与实现精编版
实验六:复杂模型机的设计与实现精编版MQS system office room 【MQS16H-TTMS2A-MQSS8Q8-MQSH16898】实验五复杂模型机的设计与实现一、实验目的综合运用所学计算机原理知识,设计并实现较为完整的计算机。
二、实验设备Dais-CMX16+计算机组成原理教学实验系统一台,实验用导线若干。
三、数据格式及指令系统1.数据格式其中第7。
2.指令格式模型机设计四大类指令共16条,其中包括算术逻辑指令、I/O指令、访问及转移指令和停机指令。
⑴算术逻辑指令设计9条算术逻辑指令并用单字节表示,寻址方式采用寄存器直接寻址,其格式如下:其中,OP-CODE其中9条算术逻辑指令的名称、功能和具体格式见表5-1。
⑵访问指令及转移指令模型机设计2条访问指令,即存数(STA)、取数(LDA),2条转移指令,即无条件转移(JMP)、结果为零或有进位转移指令(BZC指令使用)。
D为十⑶I/O指令输入(IN)和输出(⑷停机指令 指令格式如下:HALT 3. 指令系统本模型机共有16条基本指令,其中算术逻辑指令9条,访问内存指令和程序控制指令4条,输入输出指令2条,其它指令1条。
下表列出了各条指令的格式、汇编符号、指令功能。
表5-1图5-1复杂模型机微程序流程图按照系统建议的微指令格式,参照微指令流程图,将每条微指令代码化,译成二进制代四、实验方法㈠键盘操作⑴首先卸去实验连接,然后按如下操作,把系统工作方式设为“微控/在线”。
在待命状态0下按【减址】键,LCD 显示器显示工作模式选项:按【增址】键,将光标移到“MUD ”微程序模式,按【减址】键确定后,系统先询问用户是否使用搭接方式,按【增址】键选择“y ”(搭接)或“n ”(在线),按【减址】键确定:接着系统询问用户是否使用扩展I/O 方式,按【增址】键选择“y ”(扩展I/O )或“n ”(微控制器关联),按【减址】键确定:确定设置后,系统返回待命状态0。
8位模型计算机自动测试系统的设计与实现
0 引 言
( l 机 组 成 原 理 》 程 是 大 学 本 科 计 算 机 科 学 与 (- t算 课
技 术 专 业 的 主 干 课 程 , 《 算 机 组 成 原 理 》 程 设 计 而 计 课 是 学 习这 门 课程 的 关键 实 践 环 节 所 采 用 的实 验 设 备
控 制 器 模 块 由 N 2 C1 MC 7 6芯 片 、4 S 6 7 L 1 1芯 片 、
7 L 2 3芯 片 、4 S 2 4 S7 7 L 1 5芯 片 、4 S 4芯 片 和 7 L 0 7L7 4S8
芯 片 所 组 成 . 要 作 用 是 将 指令 编 译 为 控 制 信 息 . 按 主 并
操作次序将这些信息传送给相关部件
时 序 模 块 由 7 L 3 片 、4 Sl 4 S7 7 L 1 片 、4 S 9 7L33 芯 片 、4 S 2 7 L 1 3芯 片 和 L 5 M5 5芯 片 所 组 成 . 要 作 用 是 主
现 存 储 器 模 块 的读 写 操 作
运 算 器 模 块 由 7 L 1 1芯 片 、4 S 7 4S8 7 L 2 3芯 片 和
7 [ 2 4芯 片所 组 成 .主 要 作 用 是 完 成 对 操 作 数 的 运 4 4 ¥
算 功 能
图 1 测 试 系 统 的 结构
收 稿 日期 : 0 2 7 0 2 1 —0 — 3 修 稿 日期 :0 2 0 —2 21— 8 0
是 8位 模 型 计 算 机 由运 算 器 、 储 器 、 程 序 控 制 器 和 存 微
时 序 电路 等 模 块 组 成 课 程 设 计 规 模 较 大 . 线 较 多 . 接
很 容 易 出现 接 线 错 误 或 设 备 故 障 . 成 实 验 无 法 进 行 造 闪此 . 实 验 前 . 要 对 实 验 设 备 进 行 测 试 如 果 采 用 在 需 手工测 试 . 则工 作 量 过 大 , 乎 无 法 实 现 本 文 设 计 了 儿 基 于 MC 一 】 单 片 机 自动 测 试 系统 , 别 对 运 算 器 、 S5 的 分
8位CPU的设计
8位CPU的设计一、设计的任务与要求计算机的核心部件CPU通常包含运算器和控制器两大部分。
组成CPU的基本部件有运算部件,寄存器组,微命令产生部件和时序系统等。
这些部件通过CPU内部的总线连接起来,实现它们之间的信息交换。
1.设计目的(1).深入理解基本模型计算机的功能、组成知识;(2).深入学习计算机各类典型指令的执行流程;(3).学习微程序控制器的设计过程和相关技术,掌握LPM_ROM的配置方法。
(4).在掌握部件单元电路实验的基础上,进一步将单元电路组成系统,构造一台基本模型计算机。
(5).定义五条机器指令,并编写相应的微程序,上机调试,掌握计算机整机概念。
掌握微程序的设计方法,学会编写二进制微指令代码表。
(6).通过熟悉较完整的计算机的设计,全面了解并掌握微程序控制方式计算机的设计方法。
2.设计原理在部件实验过程中,各部件单元的控制信号是人为模拟产生的,而本实验将能在微过程控制下自动产生各部件单元控制信号,实现特定的功能。
实验中,计算机数据通路的控制将由微过程控制器来完成,CPU从内存中取出一条机器指令到指令执行结束的一个指令周期,全部由微指令组成的序列来完成,即一条机器指令对应一个微程序。
11该CPU 主要由算术逻辑单元ALU,数据暂存寄存器DR1、DR2,数据寄存器R0~R2,程序计数器PC,地址寄存器AR,程序/数据存储器MEMORAY,指令寄存器IR,微控制器uC,输入单元INPUT 和输出单元OUTPUT 所组成。
图中虚线框内部分包括运算器、控制器、程序存储器、数据存储器和微程序存储器等,实测时,它们都可以在单片FPGA 中实现。
虚线框外部分主要是输入/输出装置,包括键盘、数码管、LCD 显示器等,用于向CPU 输入数据,或CPU 向外输出数据,以及观察CPU 内部工作情况及运算结果。
二、单元电路设计1、运算部件运算部件的任务是对操作数进行加工处理。
主要由三部分组成:(1) 输入逻辑。
HL-CPTH+ 八位、十六位计算机组成原理与系统结构实验仪
HL-CPTH+ 八位、十六位计算机组成原理与系统结构实验仪一、系统简介CPTH+是我公司吸收了国内先进的计算机组成原理实验仪的优点,研制开发的一款八位、十六位兼容设计的计算机组成原理和系统结构实验仪,系统由八位机主板和十六位机扩展实验板组成,主板以八位机模式,用TTL74系列器件加多片在线可编程CPLD构建模型机部件,大大提高了实验系统可靠性和二次开发的灵活性,让学生以可视方式观察CPU内各部件工作过程和模型机的实现。
扩展实验板以十六位机模式,用12万门EP1C6芯片构建模型机所有部件,并配置64K×16位存储器,通过VHDL语言编程,可设计16位机的部件和模型机,学生将设计好的电路下载到FPGA芯片上,实现16位机的部件和模型机功能;也可完成其它设计性实验和课程设计实验。
在对八位机了解的基础上,让学生对十六位计算机组成原理有更深刻的理解,实现质的飞跃,为FPGA设计CPU打下坚实基础。
满足不同层次的教学的需求。
系统软件提供了详尽的信息窗口、运行图表和多类帮助信息,使教学的过程轻松自如。
二、系统特点(1)先进的硬件设计,充分展示计算机结构模型,每个模块均有数码管实时监视,模块间线条明快,数据/指令流向一目了然。
(2)完善的硬件配置,实验电路以分立器件为主,同时配备CPLD,支持部分模块的重构。
(3)开放的软硬件设计,支持用户新建指令/微指令的系统设计。
(4)控制器的有机结合,只需拨动选择开关,就可实现微程序或组合逻辑控制的切换。
(5)提供多种工作方式,支持手动、脱机、联机。
(6)提供三总线接口和锁紧插座,支持I/O扩展。
(7)提供多种指令系统,支持基本模型机、指令流水线、RISC模型机实验。
(8)强大的指令功能,支持多种寻址方式和中断、子程序调用等。
(9)丰富的调试手段,具有单步、微单步、运行、暂停等功能。
(10)提供联机调试软件,自带编译器、支持汇编语言源程序调试,图形化动态显示计算机结构模型的数据/指令流向,操作历史记录状态显示,方便用户查找历史记录。
计算机组成原理实验报告-八位补码加减法器的设计与实现
计算机科学与技术学院计算机组成原理实验报告书实验名称八位补码加/减法器的设计与实现班级学号姓名指导教师日期成绩实验1八位补码加/减法器的设计与实现一、实验目的1.掌握算术逻辑运算单元(ALU)的工作原理。
2.熟悉简单运算器的数据传送通路。
3.掌握8位补码加/减法运算器的设计方法。
4.掌握运算器电路的仿真测试方法二、实验任务1.设计一个8位补码加/减法运算器(1)参考图1,在QUARTUS II里输入原理图,设计一个8位补码加/减法运算器。
(2)创建波形文件,对该8位补码加/减法运算器进行功能仿真测试。
(3)测试通过后,封装成一个芯片。
2.设计8位运算器通路电路参考下图,利用实验任务1设计的8位补码加/减法运算器芯片建立运算器通路。
3.利用仿真波形,测试数据通路的正确性。
设定各控制信号的状态,完成下列操作,要求记录各控制信号的值及时序关系。
(1)在输入数据IN7~IN0上输入数据后,开启输入缓冲三态门,检查总线BUS7~BUS0上的值与IN0~IN7端输入的数据是否一致。
(2)给DR1存入55H,检查数据是否存入,请说明检查方法。
(3)给DR2存入AAH,检查数据是否存入,请说明检查方法。
(4)完成加法运算,求55H+AAH,检查运算结果是否正确,请说明检查方法。
(5)完成减法运算,分别求55H-AAH和AAH-55H,检查运算结果是否正确,请说明检查方法。
(6)求12H+34H-56H,将结果存入寄存器R0,检查运算结果是否正确,同时检查数据是否存入,请说明检查方法。
三、实验要求(1)做好实验预习,掌握运算器的数据传送通路和ALU的功能特性。
(2)实验完毕,写出实验报告,内容如下:①实验目的。
②实验电路图。
③按实验任务3的要求,填写下表,以记录各控制信号的值及时序关系。
表中的序号表示各控制信号之间的时序关系。
要求一个控制任务填一张表,并可用文字对有关内容进行说明。
⑤实验体会与小结。
四、实验预习内容1.实验电路设计原理及思路说明本实验利用基本逻辑门电路设计一位全加器(FA),如表1:法又可以实现减法,所以使用了一个M输入来进行方式控制加减。
计算机组成原理实验报告_八位补码加减法器的设计与实现
计算机科学与技术学院计算机组成原理实验报告书实验名称八位补码加/减法器的设计与实现班级学号姓名指导教师日期成绩实验1八位补码加/减法器的设计与实现一、实验目的1.掌握算术逻辑运算单元(ALU)的工作原理。
2.熟悉简单运算器的数据传送通路。
3.掌握8位补码加/减法运算器的设计方法。
4.掌握运算器电路的仿真测试方法二、实验任务1.设计一个8位补码加/减法运算器(1)参考图1,在QUARTUS II里输入原理图,设计一个8位补码加/减法运算器。
(2)创建波形文件,对该8位补码加/减法运算器进行功能仿真测试。
(3)测试通过后,封装成一个芯片。
2.设计8位运算器通路电路参考下图,利用实验任务1设计的8位补码加/减法运算器芯片建立运算器通路。
3.利用仿真波形,测试数据通路的正确性。
设定各控制信号的状态,完成下列操作,要求记录各控制信号的值及时序关系。
(1)在输入数据IN7~IN0上输入数据后,开启输入缓冲三态门,检查总线BUS7~BUS0上的值与IN0~IN7端输入的数据是否一致。
(2)给DR1存入55H,检查数据是否存入,请说明检查方法。
(3)给DR2存入AAH,检查数据是否存入,请说明检查方法。
(4)完成加法运算,求55H+AAH,检查运算结果是否正确,请说明检查方法。
(5)完成减法运算,分别求55H-AAH和AAH-55H,检查运算结果是否正确,请说明检查方法。
(6)求12H+34H-56H,将结果存入寄存器R0,检查运算结果是否正确,同时检查数据是否存入,请说明检查方法。
三、实验要求(1)做好实验预习,掌握运算器的数据传送通路和ALU的功能特性。
(2)实验完毕,写出实验报告,内容如下:①实验目的。
②实验电路图。
③按实验任务3的要求,填写下表,以记录各控制信号的值及时序关系。
表中的序号表示各控制信号之间的时序关系。
要求一个控制任务填一张表,并可用文字对有关内容进行说明。
⑤实验体会与小结。
四、实验预习内容1.实验电路设计原理及思路说明本实验利用基本逻辑门电路设计一位全加器(FA),如表1:表1-一位全加器(FA)电路的输入输出信号说明然后以此基础上实现八位补码加/减法器的设计,考虑到实现所需既可以实现加法又可以实现减法,所以使用了一个M输入来进行方式控制加减。
TEC-8计算机组成实验及习题
2017.11
TEC-8计算机综合实验系统
一、TEC-8实验系统的特点 它适用于《计算机组成原理》、《计
算机组织和结构》和《数字逻辑和数字系 统》三门课程的实验教学,是一种多用途 仪器。该仪器为提高学生的动手能力、提 高学生对计算机整体和各组成部分的理解、 培养学生的创新精神提供了一个良好的舞 台。
二、TEC-8实验系统的组成
整个TEC-8计算机硬件综合实验系统由 下列部分构成:电源、试验台、下载电缆、 通讯线。下面分别对各个组成部分予以介 绍:
⑴电源
安装在实验箱的下部,输出+5V,最大电流 为3A。220V交流电源开关安装在实验箱的 右侧。220V交流电源插座安装在实验箱的 背面。实验台上有一个+5V电源指示灯。
TEC-8实验系统的特点
⑹ 控制存储器中的微代码可用PC计算机下载, 省去了E2PROM器件的专用编程器和对器 件的插、拔。
⑺ 运算器中ALU采用2片74LS181实现,4个 8位寄存器组用1片EPM7064实现,设计新 颖。
⑻ 每一条机器指令的时序采用不定长机器周 期方式,符合现代计算机设计思想。
TEC-8实验系统的特点
⑴ 模型计算机采用8位字长、简单而实用,有利于 学生掌握模型计算机整机的工作原理。通过8位数 据开关用手动方式输入二进制测试程序,有利于 学生从最底层开始了解计算机工作原理。
⑵ 指令系统采用4位操作码,可容纳16条指令。已 实现加、减、与、加1、存数、取数、条件转移、 无条件转移、输出、中断返回、开中断、关中断 和停机等14条指令,指令功能非常典型。
8位 CM3 HN58C658位来自CM2A5-A0
μ AR(174)
微地址转移逻辑
ASIC实验报告(8位CPU的设计)
ASIC设计实验报告学院:电子工程学院学号:2014*******姓名:***指导老师:***2014年11月13日一、实验目的:通过对ASIC实验课的学习,应当学会以下几点:1.熟悉Linux操作系统的应用环境,基本命令行的应用,以及对vi编辑器熟练应用。
2.熟练掌握Verilog编程语言,包括基本组合逻辑电路的实现方法,基本时序逻辑电路的实现方法,怎样使用预定义的库文件,利用always块实现组合逻辑电路的方法已经着重了解assign与always 两种组合逻辑电路实现方法之间的区别,深入了解阻塞赋值与非阻塞赋值的概念以及应用的差别,有限状态机(FSM)实现复杂时序逻辑的方法,以及学会在Linux 系统环境当中应用Synopsys工具VCS进行仿真。
3.熟悉电路设计当中的层次化、结构化的设计方法。
4.熟悉CPU当中有哪些模块组成,模块之间的关系,以及其基本的工作原理。
5.学会利用汇编语言设计程序,注意代码规范性要求。
二、实验要求:按照实验指导书上的要求即:CPU各个模块的Verilog语言代码的编写、编译及仿真正确,并在规定的时间内完成。
要求对CPU进行语言级系统仿真结果正确之后,利用该实验当中采用的八个汇编关键字,编写一个能够实现某种功能的小程序。
然后对其中的控制器电路进行综合,并检查Timing 和Power,进行门级仿真。
三、实验内容:设计一个8位RISC_CPU 系统。
(RISC: Reduced Instruction Set Computer),它是一种八十年代才出现的CPU,与一般的CPU相比,不仅只是简化了指令系统,而且通过简化指令系统使计算机的结构更加简单合理,从而提高了运算速度。
从实现的方法上,它的时序控制信号部件使用了硬布线逻辑,而不是采用微程序控制方式,故产生控制序列的速度要快的多,因为省去了读取微指令的时间。
此CPU所具有的功能有:(1)取指令:当程序已在存储器中时,首先根据程序入口地址取出一条程序,为此要发出指令地址及控制信号。
基于VHDL语言的8位CPU的设计(quartus仿真)
假设指令地址为0、1、2、3…,为便于显示,设置地址指令和程序计数器输出为数制十进制, 仿真波形如下图:
图2.14 程序计数电路仿真波形
第二部分:RISC-CPU各模块设计与仿真
8. 状态控制器
是CPU的控制核心, 用于产生一系列的控 制信号,启动或停止 某些部件,由状态机 和状态机控制器组成, 如图。
图2.9 数据输出控制器
假设累加器输出值由00000000递增,验证当data_ena为1时,data输出alu_out的值,当 data_ena为0时,data输出"ZZZZZZZZ"。波形如下:
图2.10 数据输出控制器仿真波形
第二部分:RISC-CPU各模块设计与仿真
6. 地址多路器
用于选择输出的地址是PC地址还是数据/ 端口地址,如图2.11所示。每个指令周期的 前4个时钟周期用于从ROM中读取指令,输 出PC地址。后4个时钟周期用于对RAM或 端口的读写,输出数据或端口地址。
图2.7算术逻辑单元
在仿真过程中,假设操作码依次为上述8种操作码。数据值为5,累加器值为由3变0,以此来 验证zero作用。仿真波形下图所示:
图2.8 算术逻辑运算单元仿真波形
第二部分:RISC-CPU各模块设计与仿真
5.数据输出控制器
控制累加器数据输出,如图2.9由于数据总 线是各种操作时传送数据的公共通道,不同 的情况下传送不同的内容。有时要传输指令, 有时要传送RAM区或接口的数据。
图3.2 RISC-CPU各模块连接图
谢谢!!
WPS Office
Make Presentation much more fun
@WPS官方微博 @kingsoftwps
基于VHDL语言的8位 RISC-CPU的设计
计算机硬件课程设计(微程序)
1.指令系统及指令格式 1.指令系统及指令格式
指令系统应包括:算术逻辑运算指令、访存指令、控制转 移指令、I/O指令、停机指令。一般指令格式如下: 移指令、I/O指令、停机指 0
OP-CODE DATA / RS ADDR RD
指令系统如: 指令系统如: ADD RS,RD MOV DATA,RD MOV RS,[ADDR] JZ ADDR IN RD HALT 其中RS RD为R0、R1、R2中之一( 其中RS 、RD为R0、R1、R2中之一(为00,01,10) ,DATA为立即数,ADDR DATA为立即数,ADDR 为内存地址。
七、具体要讲的几个问题
1、指令格式、指令系统:讲各种指令格式,寻址方式 指令格式、指令系统:讲各种指令格式, 举例讲微操作流程, RS,RD: 2、举例讲微操作流程,如ADD RS,RD: 举例讲微指令编写: 3、举例讲微指令编写: 微程序的入口地址形成及微指令的后续地址: 4、微程序的入口地址形成及微指令的后续地址: 装载微程序的格式: 5、装载微程序的格式: 模型机的时序电路: 6、模型机的时序电路: 运行模型机:运行前先要复位( RESET或拨动CLR开关 或拨动CLR开关1 7、运行模型机:运行前先要复位(按RESET或拨动CLR开关1-0),按单微指令按钮进行单步调试 按单微指令按钮进行单步调试, 1),按单微指令按钮进行单步调试,按连续按钮进行连续运 行; 模型机电路图:双击CMPP20 在帮助中找到“ CMPP20, 8 、模型机电路图:双击CMPP20,在帮助中找到“复杂模型机 图” 9、模型机调度过程中常见问题及解决办法
寄存器地址译码电路
5.微程序装载格式 5.微程序装载格式
机器指令格式: 机器指令格式: $Pxxxx 微指令格式: 微指令格式: $Mxxxxxxxx
基于FPGA技术的8位模型机设计与实现
s se y t m,c l ua o ,c n rl r ac ltr o t l ,me r oe mo y,t n e e ao n h u . I i d s n d o i d a d s lt d u d rt e I tg ae i g g n r tr a d t e b s t s e i e ,c mp l n i ae n e h n e rt d mi g e mu
l 模 型 机硬 件 设 计
该 8位模 型 机逻辑 功 能结构 如 图 1 示 。 图 中 所
系 统 ( N o) 乃 至 整个 计 算 机 系 统 都 用 F G 如 i , s P A来 虚 线框 内包 括运 算 器 、 制 器 、 控 程序 存 储 器 、 据存 数
实现 , 即所谓 的单 片 系统 :O S s m O hp 和 储 器 和微程 序 存 储 器 等 。 虚 线 框 外 部 分 主 要 是 输 S C( yt naC i) e
De i n a m p e e t to f a — bi o e m pu e s d o s g nd I l m n a i n o n 8 — t M d l Co t r Ba e n FPGA
Z HANG S e g HU Ja h n in— mi C n HAIHo g F a n U L
E A技术 和 F G D P A技 术设 计并 实现 一个 8位模 型 计 工作 情况 及运 算结 果 。该模 型机 主要 由算术 逻辑 单
2 1
基 于 F G 技 术 的 8位 模 型 机 设 计 与 实 现 PA
◎张 胜 胡建 明
南昌
蔡
虹
付
娜
( 昌航 空大学 , 南 江西
【精品】8位移位寄存器的电路设计与版图实现要点
8位移位寄存器的电路设计与版图实现要点8位移位寄存器的电路设计与版图实现摘要电子设计自动化,缩写为EDA,主要是以计算机为主要工具,而Tanner EDA则是一种在计算机windows平台上完成集成电路设计的一种软件,基本包括S-Edit,T-Spice,W-Edit,L-Edit与LVS等子软件,其S-Edit以及L-Edit为常用软件,前者主要实现电路设计,后者主要针对的是已知电路的版图绘制,而T-Spice主要可实现电路图及版图的仿真,可以用Tanner EDA实现电路的设计布局以及版图实现等一系列完整过程。
本文用Tanner EDA工具主要设计的是8位移位寄存器,移位寄存器主要是用来实现数据的并行和串行之间的转换以及对数据进行运算或专业处理的工具,主要结构构成是触发器,触发器是具有储存功能的,可以用来储存多进制代码,一般N位寄存器就是由N个触发器构成,移位寄存器工作原理主要是数据在其脉冲的作用下实现左移或者右移的效果,输入输出的方式表现为串行及并行自由组合,本设计就是在Tanner EDA 的软件平台上进行对8位移位寄存器的电路设计仿真,再根据电路图在专门的L-Edit平台上完成此电路的版图实现,直至完成的结果和预期结果保持一致。
关键词:Tanner EDA;L-Edit;移位寄存器,S-Edit8 bits shift register circuit design and layoutAbstractElectronic design automation,referred to as EDA,it is based on computers as the main tool,and Tanner EDA is a kind of software that complete the integrated circuit design on Windows platforms.Its Sub-Softwares include S-Edit,T-Spice,W-Edit,L-Edit and LVS and so on.S-Edit and L-Edit are commonly used software,S-Edit is primarily designed to achieve circuit,the latter is aimed primarily known circuit layout drawing,T-Spice can achieve schematic and layout simulation.We can achieve layout of the circuit design and a series of complete process layout used Tanner EDA tools.In this paper, Tanner EDA tools are mainly designed an 8-bit shift register.The shift register is mainly used for data conversion between parallel and serial, and the data processing tool operation or professional,its main structure is the trigger composition,flip-flop is a storage function,it can be used to store more hexadecimal code,In general N-bits register is composed of N trigger.Working principle of the shift register data under the action of the pulse, mainly the effect of the shift to the left or right,input and output of the way of serial and parallel free combination.This design is in Tanner on the EDA software platform to 8 bits shift register circuit design and simulation,then according to the circuit diagram on special L - Edit platform to complete the circuit layout implementation,until the finish is consistent with the results and expected results.Keywords:Tanner EDA;L-Edit;Shift register,S-Edit目录目录 (III)1 前言 (1)1.1 课题的背景和目的 (1)1.2课题的设计内容 (1)2 设计软件简介 (2)2.1EDA技术的介绍 (2)EDA技术在硬件实现方面融合了大规模集成电路制造技术、IC版图设计技术、ASIC测试和封装技术、FPGA/CPLD编程下载技术、自动测试技术等;在计算机辅助工程方面融合了计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)、计算机辅助工程(CAE)技术以及多种计算机语言的设计概念;而在现代电子学方面则容纳了更多的内容,如电子线路设计理论、数字信号处理技术、数字系统建模和优化技术及长线技术理论等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
石家庄经济学院华信学院计算机组成原理课程设计报告题目 8位模型计算机的设计姓名学号班号 4064170801指导老师关文革尹立洁赵洋成绩2009年1月目录1. 课程设计目的 522. 开发工具选择 523. 方案选择 524.指令系统设计 525. 模型机框图设计 526. 指令流程图 527. 指令操作时间表(组合逻辑控制器)或者微指令格式(微程序控制器)设计 528. 微操作信号综合与优化(组合逻辑控制器)或者微程序(微程序控制器)设计 529. VHDL实现 5210. 调试仿真 5211. 课程设计回顾总结 52参考文献 52附录 52一、课程设计目的1、计算机组成原理课程设计的主要任务是让学生通过动脑和动手解决计算机设计中的实际问题。
综合运用所学计算机组成原理知识,在掌握部件单元电路实验的基础上,进一步将其组成系统构造一台基本的模型计算机,掌握整机概念,并设计机器指令系统,编写程序,在所设计的模型计算机上调试运行。
2、通过一台模型机的设计过程,明确计算机的控制原理与控制过程,巩固和灵活应用所学的理论知识,掌握计算机组成的一般设计方法,提高学生设计能力和实践操作技能,为从事计算机研制与设计打下基础。
二、开发工具选择以TEC-CA教学实验系统为平台,采用硬件描述语言 VHDL为设计工具,应用QUARTUSⅡ5.1环境进行大规模集成电路的功能设计仿真。
三、方案选择应用微程序控制器来实现8位模型计算机的设计。
四、指令系统设计所要设计的微程序控制器是由七条指令来完成的,即:load,sta,add,sub,and1,nop,jmp。
实现功能分别如下:load指令是公操作,实现取数据的功能;sta指令实现存操作;add指令实现加法操作;sub指令实现减法操作;and指令实现与操作; nop指令实现空操作;jmp指令实现无条件跳转操作。
其中add,sub,and1,属于双操作数指令,其指令格式如下图:目的源其中jmp属于转移指令,其指令格式如下图:转移条件转移地址五、模型机框图设计I/O六、指令流程图Addr_busload_MARCSR_NW3OPNopAndSubAddStaJmp Load913111210814ACC_bus load_MDR transfer CSR_NWCSR_NWCSR_NW1676417MDR_bus load_MDR 5CSMDR_busALU_ACCALU_ANDMDR_busALU_ACCALU_SUBMDR_busALU_ACCALU_ADDMDR_busload_ACC七、微指令格式(微程序控制器)设计八、微程序(微程序控制器)设计微处理器的所有数据通路宽度是8位,操作码是3位。
操作码对应的编码:load—>000,sta—>001,add—>010,sub—>011,and0—>100,nop—>101,jmp—>110。
微程序的编码采用直接编码方法,有16个控制信号,外加5位地址,所以一共21位。
地址3的下地址,应该根据指令操作码来形成,所以将其下地址设为01111,表示如果下地址为01111时,下地址的低3位是指令操作码,高2位固定是01,因此load指令的开始地址是01000=8,sta指令的开始地址是01001=9,同理add的是01010=10,sub的是01011=11,and1的是01100=12,nop的是01101=13,jmp的是01110=14。
九、VHDL实现--实验12 微程序控制器实验(头文件)LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;PACKAGE cpu_defs ISTYPE opcode IS (load, sta, add, sub, and1, nop, jmp);CONSTANT word_w: NATURAL :=8;CONSTANT op_w: NATURAL :=3;CONSTANT rfill: STD_LOGIC_VECTOR(op_w-1 downto 0):=(others =>'0');--FUNCTIOn slv2op(slv:IN STD_LOGIC_VECTOR) RETURN opcode;FUNCTION op2slv(op:in opcode) RETURN STD_LOGIC_VECTOR;END PACKAGE cpu_defs;PACKAGE BODY cpu_defs ISTYPE optable IS ARRAY(opcode) OF STD_LOGIC_VECTOR(op_w-1 DOWNTO 0);CONSTANT trans_table:optable :=("000", "001", "010", "011", "100","101","110");FUNCTION op2slv(op:IN opcode) RETURN STD_LOGIC_VECTOR ISBEGINRETURN trans_table(op);END FUNCTION op2slv;--function slv2op(slv:in std_logic_vector) return opcode is-- variable transop:opcode;-- begin-- for i in opcode loop-- if slv=trans_table(i) then-- transop:=i;-- end if;-- end loop;-- return transop;--end function slv2op;END PACKAGE BODY cpu_defs;--实验12 微程序控制器实验LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL,IEEE.NUMERIC_STD.ALL;USE WORK.CPU_DEFS.ALL;ENTITY CPU ISPORT( clock : IN STD_LOGIC;reset : IN STD_LOGIC;mode : IN STD_LOGIC_VECTOR(2 DOWNTO 0);mem_addr : IN UNSIGNED(word_w-op_w-1 DOWNTO 0);output : OUT STD_LOGIC_VECTOR(word_w-1 DOWNTO 0);data_r_out : OUT STD_LOGIC_VECTOR(21 DOWNTO 0);op_out : OUT STD_LOGIC_VECTOR(op_w-1 DOWNTO 0);add_r_out : OUT UNSIGNED(4 DOWNTO 0));END ENTITY;ARCHITECTURE rtl OF CPU ISTYPE mem_array IS ARRAY (0 TO 2**(word_w-op_w)-1) OF STD_LOGIC_VECTOR(word_w-1 DOWNTO 0);SIGNAL mem : mem_array;CONSTANT prog : mem_array:=(0=> op2slv(load) & STD_LOGIC_VECTOR(TO_UNSIGNED(7,word_w-op_w)),1=> op2slv(sta) & STD_LOGIC_VECTOR(TO_UNSIGNED(8,word_w-op_w)),2=> op2slv(add) & STD_LOGIC_VECTOR(TO_UNSIGNED(9,word_w-op_w)),3=> op2slv(sub) & STD_LOGIC_VECTOR(TO_UNSIGNED(10,word_w-op_w)),4=> op2slv(and1) & STD_LOGIC_VECTOR(TO_UNSIGNED(11,word_w-op_w)),5=> op2slv(nop) & STD_LOGIC_VECTOR(TO_UNSIGNED(12,word_w-op_w)),6=> op2slv(jmp) & STD_LOGIC_VECTOR(TO_UNSIGNED(8,word_w-op_w)),7=> STD_LOGIC_VECTOR(TO_UNSIGNED(2,word_w)),8=> STD_LOGIC_VECTOR(TO_UNSIGNED(3,word_w)),9=> STD_LOGIC_VECTOR(TO_UNSIGNED(4,word_w)),10=> STD_LOGIC_VECTOR(TO_UNSIGNED(5,word_w)),11=> STD_LOGIC_VECTOR(TO_UNSIGNED(6,word_w)),OTHERS => (OTHERS =>'0'));TYPE microcode_array IS ARRAY (0 TO 17) OF STD_LOGIC_VECTOR(21 DOWNTO 0);CONSTANT code : microcode_array:=(0=> "0000010100010000000001",1=> "0000000000000110000010",2=> "0000001010000000000011",3=> "0000000100001000001111",4=> "0000100010000000000000",5=> "0000000000000100000000",6=> "0000000010100001000000",7=> "0000000010100000100000",8=> "0000000000000110000100",9=> "0101000001000000000101",10=> "0000000000000110000110",11=> "0000000000000110000111",12=> "0000000000000110010000",13=> "0000000000000000000000",14=> "0000000000000110010001",15=> "0000000000000000000000",16=> "1000000010100000000000",17=> "0010000010000000000000");SIGNAL count : UNSIGNED(word_w-op_w-1 DOWNTO 0);SIGNAL op : STD_LOGIC_VECTOR(op_w-1 DOWNTO 0);SIGNAL z_flag : STD_LOGIC;SIGNAL mdr_out : STD_LOGIC_VECTOR(word_w-1 DOWNTO 0);SIGNAL mar_out : UNSIGNED(word_w-op_w-1 DOWNTO 0);SIGNAL IR_out : STD_LOGIC_VECTOR(word_w-1 DOWNTO 0);SIGNAL acc_out : UNSIGNED(word_w-1 DOWNTO 0);SIGNAL sysbus_out : STD_LOGIC_VECTOR(word_w-1 DOWNTO 0);BEGINPROCESS(reset,clock)VARIABLE instr_reg : STD_LOGIC_VECTOR(word_w-1 DOWNTO 0);VARIABLE acc : UNSIGNED(word_w-1 DOWNTO 0);CONSTANT zero : UNSIGNED(word_w-1 DOWNTO 0):=(OTHERS =>'0');VARIABLE mdr : STD_LOGIC_VECTOR(word_w-1 DOWNTO 0);VARIABLE mar : UNSIGNED(word_w-op_w-1 DOWNTO 0);VARIABLE sysbus : STD_LOGIC_VECTOR(word_w-1 DOWNTO 0);VARIABLE microcode : microcode_array;VARIABLE add_r : UNSIGNED(4 DOWNTO 0);VARIABLE data_r : STD_LOGIC_VECTOR(21 DOWNTO 0);VARIABLE temp : STD_LOGIC_VECTOR(4 DOWNTO 0);BEGINIF reset='0' THENadd_r:=(OTHERS =>'0');count <= (OTHERS =>'0');instr_reg := (OTHERS =>'0');acc := (OTHERS =>'0');mdr := (OTHERS =>'0');mar := (OTHERS =>'0');z_flag <='0';mem <= prog;sysbus :=(OTHERS =>'0');ELSIF RISING_EDGE(clock) THEN--microprogram controllerdata_r := code(TO_INTEGER(add_r));IF data_r(4 DOWNTO 0)="01111" THEN --判断下地址temp:="01" & op(2 DOWNTO 0);add_r := UNSIGNED(temp);ELSEadd_r := UNSIGNED(data_r(4 DOWNTO 0));END IF;data_r_out <=data_r;add_r_out <= add_r;--PCIF data_r(16)='1' THEN --PC_bus='1'sysbus := rfill & STD_LOGIC_VECTOR(count);END IF;IF data_r(19)='1' THEN --load_PC='1'count <= UNSIGNED(mdr(word_w-op_w-1 DOWNTO 0));ELSIF data_r(10)='1' THEN --INC_PC='1'count <= count+1;ELSEcount <= count;END IF;--IRIF data_r(15)='1' THEN --load_IRinstr_reg := mdr;END IF;IF data_r(9)='1' THEN --Addr_bus='1'sysbus := rfill & instr_reg(word_w-op_w-1 DOWNTO 0);END IF;op <= instr_reg(word_w-1 DOWNTO word_w-op_w);IR_out <= instr_reg;op_out <=op;--ALUIF data_r(17)='1' THEN --load_ACC='1'acc:=UNSIGNED(mdr);END IF;IF data_r(11)='1' THEN --ALU_ACC='1'IF data_r(6)='1' THEN --ALU_add='1'acc := acc + UNSIGNED(mdr);ELSIF data_r(5)='1' THEN --ALU_sub='1'acc := acc - UNSIGNED(mdr);ELSIF data_r(20)='1' THEN --Transfer='1'acc := acc ;ELSIF data_r(21)='1' THEN --ALU_and1='1'acc := acc and UNSIGNED(mdr);END IF;END IF;IF data_r(18)='1' THEN --ACC_bus='1'sysbus := STD_LOGIC_VECTOR(acc);END IF;acc_out<= acc;--RAMIF data_r(14)='1' THEN --load_MAR='1'mar := UNSIGNED(sysbus(word_w-op_w-1 DOWNTO 0));ELSIF data_r(12)='1' THEN --load_MDR='1'mdr := sysbus;ELSIF data_r(8)='1' THEN --CS='1'IF data_r(7)='1' THEN --R_NW='1'mdr := mem(TO_INTEGER(mar));ELSEmem(TO_INTEGER(mar))<=mdr;END IF;END IF;IF data_r(13)='1' THEN --MDR_bus='1'sysbus:=mdr;END IF;mdr_out <= mdr;mar_out <= mar;END IF;sysbus_out <=sysbus;END PROCESS;PROCESS(mode,mem_addr)BEGIN--mode=0 -> sysbus--mode=1 -> PC--mode=2 -> result of ALU--mode=3 -> IR--mode=4 -> MAR--mode=5 -> MDR--mode=6 -> memoutput <= (OTHERS =>'0');CASE mode isWHEN "000" =>output<=sysbus_out;WHEN "001" =>output(word_w-op_w-1 DOWNTO 0)<= STD_LOGIC_VECTOR(count);WHEN "010" =>output <= STD_LOGIC_VECTOR(acc_out);WHEN "011" =>output <= IR_out;WHEN "100" =>output(word_w-op_w-1 DOWNTO 0) <= STD_LOGIC_VECTOR(mar_out);WHEN "101" =>output <= mdr_out;WHEN "110" =>output <= mem(TO_INTEGER(mem_addr));WHEN others =>output <= (OTHERS =>'Z');END CASE;END PROCESS;END ARCHITECTURE;十、调试仿真1、实现load到sta的操作2、实现sta到add的操作3、实现add到sub的操作4、实现sub到and1的操作5、实现and1到nop的操作6、实现nop到jmp的操作6、实现jmp跳转后的操作十一、课程设计回顾总结本次课程设计我们要设计一台微程序控制的模型计算机,完成对计算机组成原理这门课程的综合应用,达到学习本书的作用。