实验一 8位程序计数器PC[7:0]的设计
实验要求:
1. 分别用图形方式和Verilog HDL语言设计8位程序计数器,计数器带有复位,计数,转移功能。
2. 具体要求参见1_部件实验内容.doc说明文件。
实验实现:
1. 用图形方式设计实现8位程序计数器,用到了两个74LS161四位十六进制计数器,主要步骤是两个四位十六进制计数器的串联,低四位计数器的进位端RCO连到高四位计数器的进位使能端ENT,然后连上reset、clk、ir[7:0]、t[1:0]、pc[7:0]、rco等输入输出信号,最后加上转移控制逻辑即可。注意两个十六进制计数器是同步的,具体参见PC_8bit.gdf文件。
2. 编译通过,建立波形仿真文件,设置输入信号参数。注意在一张图中同时实现复位(reset低位有效)、计数、转移功能,最后加上一些文字注释即可,具体参见PC_8bit.scf文件。
3. 用Verilog HDL语言设计实现8位程序计数器。在已经实现.gdf文件的基础上使用库函数形式是很容易编写出.v文件的,不过学生选择了行为描述方式实现,因为后者更具有通用性,依次实现8位程序计数器的复位、计数、转移功能即可,具体参见PC_8bit.v文件。
4. 编译仿真类似上述步骤2。
实验小结:
1. 这是计算机组成原理的第一个实验,比较简单,按照实验要求即可完成实验。通果这次实验,我对Max+Plus软件的使用方法和Verilog HDL语言编程复习了一遍,为后面的实验打好基础。
实验二 CPU运行时序逻辑的设计
实验要求:
1. 用Verilog HDL 语言设计三周期时序逻辑电路,要求带复位功能,t[2:0]在非法错误状态下能自动恢复。(比如说110恢复到001)。
2. 具体要求参见1_部件实验内容.doc说明文件。
实验实现:
1. 用Verilog HDL 语言设计实现带复位和纠错功能的三周期时序逻辑电路。输入clk外部时钟信号和reset复位信号(低位有效),输出ck内部时钟信号和三周期信号t[2:0]。利用两级3位移位式分频逻辑实现,具体参见cycle_3.v文件。
2. 编译通过,建立波形仿真文件,设置clk外部时钟信号和reset复位信号,Simulate 即可输出实验要求中显示的波形。
实验小结:
1. 刚做这个实验的时候不知道CPU运行时序逻辑设计的真实用途,在进一步学习了计算机组成原理的理论知识,做cpu4实验后才知道是用来由外部时钟信号clk产生内部时钟信号ck以及三周期信号t[2:0]的。刚完成本次实验的时候未添加三周期信号t[2:0]的自动功能,后来完成cpu4后补上了。
实验三 静态存储器的设计与读写验证
实验要求:
1. 设计一个SRAM存储器,地址和数据都是8位,存储容量是256个字节。
2. 采用异步的时序逻辑设计方式,数据是双向的,输入输出不寄存,存储器的地址也不寄存。
3. 具体要求参见1_部件实验内容.doc说明文件。
实验实现: