简易计算机系统综合设计
简易计算机系统综合设计设计报告
班级 计科 1601
姓名
陈明康
学号 201608010120
一、设计目的
连贯运用《数字逻辑》所学到的知识,熟练掌握 EDA 工具的使用方法,为学习好后续
《计算机原理》课程做铺垫。
二、设计内容
按给定的数据格式和指令系统,使用 EDA 工具设计一台用硬连线逻辑控制的简易计算机系
统。
三、 详细设计
3.1 设计的整体架构
指令同期与数据通路结构、指令执行方式有关。指令可以串行执行,也可以并行执行。 本
设计采用串行工作方式,即“读取—执行—再读取—再执行……”。串行工作方式虽然工 作
速度和主机效率都要差一些,但它的控制简单。因此,本机指令周期可以确定为:
读取指令的时间随所使用的 RAM 的性能而异。执行一条指令所需工作脉冲的个数与宽 度
要依据控制流和数据流所经过的路径与各级门的最大延迟而定。例如,本机中写入 RAM 和
寄存器组的操作显然不能发生在“执行阶段”的任意时刻,它必须是在运算结果已经产生,并
被传送到总线的适当时刻才能“写”,这就需要工作脉冲来控制时序。
上图是本人设计的时序控制。其中 CLK1,CLK2 是不同的两个时钟信号
IR 为指令寄存器,JCQZ 为通用寄存器组,SM 为控制指令译码器的使能信号。
时序部件:RAM, 程序计数器 PC,指令寄存器 ,通用寄存器组
第 1 页 共 23 页
简易计算机系统综合设计
寻址方式:指令的高 4 位为操作码,低 4 位分别用 2 位表示目的寄存器和源寄存器的编
号,或表 示寻址方式。本机有 2 种寻址方式。
指令系统:该机给定的指令系统有 16 条指令,指令格式见指令系统表。应该指出的是,各
条指令 的编码形式可以多种多样。为叙述方便,下面采用汇编符号对指令进行描述,其中
R1 和 R2 分别表示“目标”和“源”两个寄存器,M 表示地址在寄存器 C 中的存贮单元。
数据通路:
第 2 页 共 23 页
简易计算机系统综合设计
微控制信号:指令寄存器 IR 接收到一条机器指令后,这条指令就被译码执行。指令通过译
码产生出 的各种控制信号在时钟信号的配合下控制着指令执行的全过程。为此,需要将执
行每条指令 所需的全部基本微操作的控制信号罗列出来,进行综合分析、化简,并落实到
不同的周期、 节拍之中,然后用各种逻辑门电路实现。以下是所用基本控制信号列表。
总逻辑图:添加了输出端口便于波形仿真时观察
第 3 页 共 23 页
简易计算机系统综合设计
3.2 各模块的具体实现
(此部分必须有模块的接口设计,功能实现,功能的仿真验证等内容。)
1、 RAM
LPM_WIDTH 是 dio(输入输出端口)的宽度,LPM_WIDTHAD 是 address[]端口的宽度
波形仿真
mif 文件-RAM 中预存的地址与对应的指令
第 4 页 共 23 页
简易计算机系统综合设计
设计需求:能通过控制端和时钟信号控制数据的读写
分析:时钟的上升沿到来判断读使能端 outenab 和写使能端 we 是否为高电平(保证不同时
为 1),如图先往 00,01,02,03(16 进制表示)这几个地址里写数据(dio 表示传入的数据-后面
都是高阻态而不影响输出)FF(16 进制)-即二进制的 11111111,在后面可以看到,时钟的上升
沿到来输出使能段为高电平时则输出此时读取的地址对应的内容-即前面写入的 11111111,
再往后对应 mif 文件中的地址与内容对比是否正确。
dio~result 表示 dio 端口输出的数据。
2、 选择器
VHDL 语言描述
由于选择器是一个组合电路不由时钟信号控制,所以选用并行语句中的条件赋值语句来描
述,即 MADD 为 00(ASCII-0)时选择指令计数器中的地址,MADD 为 01(1)时选择通用寄存
器组 A(A1)口的地址,MADD 为 10(2)时选择从通用寄存器组 B(A2)口出来的地址。
波形仿真进行功能验证
第 5 页 共 23 页
简易计算机系统综合设计
观察易知符合设计需求
3、 指令计数器 PC
VHDL 语言描述
波形仿真验证
第 6 页 共 23 页
简易计算机系统综合设计
设计需求:时钟的上升沿到来,LDPC 为 1 且 INPC 为 0 时允许 BUS 总线上的数据传入 PC,
LDPC 为 0 且 INPC 为 1 时 PC 自加 1。波形图符合设计需求
4、 通用寄存器组
①R1 R2 的含义-寄存器的编号
R1(10) - RWBA1(1) RWBA0(0)
R2(10) -RAA1(1) RAA0(0)
②A B 端输出逻辑
R1 取出的数据从 B 端出,R2 取出的数据从 A 端出,而 R1 R2 两者都可能从 A/B/C 三个寄
存器中取数据.
第 7 页 共 23 页
简易计算机系统综合设计
VHDL 语言描述
波形仿真:
设计需求:根据 RAA1 RAA0 和 RWBA1 RWBA0 的值确定输出端 A 和 B 的输出值;时钟
的上升沿到来判断写使能端是否为 0(低电平有效),若为低电平则允许把 BUS 总线上的数
据写入 R1(RAA1 RAA0)所指定的寄存器中。
如图,先设计写使能端 WE 为低电平往 A,B,C 三个寄存器(tmp 表示)中写入相应的数据,
时钟的上升沿到来根据 RAA1 RAA0 的值将 BUS 总线上的数据写入指定的寄存器:00 写
A,01 写 B,10 写 C;而 A ,B 输出端任意时刻都会输出由 RAA1 RAA0 和 RWBA1 RWBA0
所指定的寄存器中的存储值。如图所示时刻,往 A 寄存器中-Atmp 表示写入 C7,A 口 B 口
第 8 页 共 23 页