当前位置:文档之家› 计算机组成原理实验报告

计算机组成原理实验报告

实验一8位程序计数器PC[7:0]的设计实验要求:1.分别用图形方式和V erilog 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.用V erilog HDL语言设计实现8位程序计数器。

在已经实现.gdf文件的基础上使用库函数形式是很容易编写出.v文件的,不过学生选择了行为描述方式实现,因为后者更具有通用性,依次实现8位程序计数器的复位、计数、转移功能即可,具体参见PC_8bit.v文件。

4.编译仿真类似上述步骤2。

实验小结:1.这是计算机组成原理的第一个实验,比较简单,按照实验要求即可完成实验。

通果这次实验,我对Max+Plus软件的使用方法和V erilog HDL语言编程复习了一遍,为后面的实验打好基础。

实验二CPU运行时序逻辑的设计实验要求:1.用V erilog HDL 语言设计三周期时序逻辑电路,要求带复位功能,t[2:0]在非法错误状态下能自动恢复。

(比如说110恢复到001)。

2.具体要求参见1_部件实验内容.doc说明文件。

实验实现:1.用V erilog 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说明文件。

实验实现:1.用图形文件方式设计实现SRAM,用到了库文件lpm_ram_io。

主要步骤是在Max+Plus下调用库文件lpm_ram_io。

调用方法有很多种,选择一种后按照实验要求中的步骤即可生成一个SRAM,注意在Max下memenab、outenab、we信号都是高位有效。

接着连上输入输出信号即可,具体参见sram.gdf 文件。

2.编译通过,建立波形仿真文件,学生未使用存储器初始化.mif文件,所以自己设计cs、rd、wra[7:0]、d[7:0]信号参数后即可Simulate,输出正确的结果,具体参见相应的sram.scf文件。

3.用.v文件方式设计实现SRAM。

主要就是.v语言中lpm_ram_io库文件的调用,除了设置相应的端口外,还要设置default parameters,比如说数据、地址是8位等等,具体参见sram.v文件。

4.编译仿真类似上述步骤2。

实验小结:1.本次实验学生第一次接触到存储器的设计,按照实验说明文档的步骤学生顺利的完成了实验,对Max+Plus下MegaWizard Plug-In Manage功能的使用有了一定的了解。

实验四16位整数运算器ALU 的设计实验要求:1.设计一个16位运算器,操作码为3位,支持8种运算。

输入a[15:0],b[15:0],ir[2:0],t[2:0],输出运算结果f[15:0]和进位cy。

2.用V erilog HDL 语言实现三种描述方法,串行进位(74LS181)、提前进位(74LS181和74LS182)和行为描述(always@ case 语句块),比较这三种方法的延时和资源消耗。

3.具体要求参见1_部件实验内容.doc说明文件。

实验实现:1.首先用V erilog HDL 语言分别实现三种描述方法,编写三个.v文件,然后分别进行编译、波形仿真,由于上学期做数电实验时已经做过16位运算器(并行实现),所以通过调用74LS181和74LS182库函数,加上ir[2:0]三位操作码的逻辑转换即可完成串行进位和提前进位两种描述方式。

2.行为描述方式是最简单的,不需要任何调用库函数,编译、波形仿真结果也正确。

3.将三种描述方式整合到一个.v文件中,always@ case语句块的复杂度有所提高。

同时定义的临时变量也明显增多,具体参见ALU16.v文件。

4.编译通过后针对上述的ALU16.v文件进行波形仿真,设置输入信号的参数,注意体现出8种运算,而且加法和减法运算要求同时出现无进位(借位)和有进位(借位)。

然后Simulate一下就得到波形仿真结果,从波形仿真结果中可以看出延迟时间行为描述最长,提前进位最短。

关于资源的消耗,通过分别查看rpt文件可以知道行为描述消耗资源最多,串行进位和提前进位几乎相同,明显比行为描述少,具体参见ALU16.scf文件。

实验小结:1.本次实验的最大特色是通过几种V erilog HDL语言的描述方式使学生对V erilog HDL语言有了更为深入的了解。

调用库文件的方式比较简单,只需查看对应库文件的函数端口说明即可。

行为描述方式虽然消耗资源比较多,但是通用性更强,不要求我们对库函数非常了解。

第一阶段实验小结:1.上面四个实验是本课程第一阶段的实验任务,是一些功能部件的设计练习,每周完成一个,比较简单,都是在Max+Plus平台下完成的。

这些功能部件是cpu(或memory)的组成单元,通过练习为后面两个阶段cpu设计实验打好基础。

实验五4条指令CPU设计练习实验要求:1.实验时间是3周,第一周完成手工仿真,第二周完成模板仿真,第三周完成下载。

2.掌握MaX+Plus平台到Quartus平台的移植方法,在Quartus平台下完成本阶段的实验。

3.掌握WinDebug软件的基本使用方法。

4.掌握CPU的基本原理与结构及其设计与验证的最基本技术、方法与步骤。

实验实现:1.参考4指令功能表.doc、cpu4框图4.doc、Cpu4流程.doc三个文件,掌握本阶段实验的理论知识。

2.编译改错err_cpu4.v文件,主要有语法错误、双向数据调库格式改正、逻辑错误,改错完成后形成文件cpu4.v.3.建立波形文件cpu4.vwf ,参考cpu4_scf.scf文件进行手工仿真,Simulate后得到实验要求中的结果。

4. 完成手工仿真后,使用cpu4.v文件生成库文件cpu4.bsf,接着创建顶层文件cpu4b.bdf, 接着添加存储器模板,进行具有存储器的模板仿真。

实验说明文档中模板仿真的方式有很多种,学生选择自创建仿真模板。

按照Max+plusII to QutarusII移植须知.doc文档中的说明自己创建一个SRAM (lpm_ram_io)的模板,采用Cyclone器件编译,其中输入数据和地址寄存,输出数据不寄存。

然后添加输入输出端口,完成cpu4b.bdf文件的编辑。

5.编译通过cpu4b.bdf文件,建立相应的波形仿真文件cpu4b.vwf。

设置完输入信号reset和clk参数后Simulate一下即可得到仿真结果,通过查看仿真报告中内存情况知道10号、11号单元分别存储77、94,与实验要求一致。

6.完成模板仿真后,即可开始下载。

首先下载老师给的cpu4down文件夹,根据其中的使用说明.txt 新建cpu4.download文件夹,将自己写得cpu4.v,老师给的ep1c12.qpf、ep1c12.qsf、ep1c12.v拷入该文件夹中,以ep1c12.qbf文件为工程文件建立工程,按照使用说明.txt文件中的说明进行修改,然后编译ep1c12.v顶层文件。

7.编译完成后将ep1c12.sof文件下载入实验台的芯片中。

接着打开WinDebug软件进行下载测试。

依次打开.asm文件,加载.bin文件,然后运行(连续加复位)。

接着进行存储测试,按照实验要求读内存,发现0A号和0B号单元分别是77,94,说明下载成功。

实验小结:1.本次实验是学生做的第一次cpu设计练习,按照实验说明文档的要求一步一步完成的。

做完这次实验,学生对计算机组成原理中cpu控制模块的理论知识有了更为深入的认识,知道了每个机器周期中每个节拍具体的执行情况,对CPU的运转原理有了一定的了解。

实验六简单CPU设计实验实验要求:1.实验时间是3周,学生选择了8条指令CPU的组合逻辑设计,要求分别完成模板仿真和下载。

2.指令的条数为8条,存储器的数据总线为8位,地址总线为13位,指令字长为16位,利用四周期实现。

3.对CPU设计的方法有进一步认识,自己能够设计任何简单方式的CPU(微程序控制方式、组合逻辑控制方式、寄存器模块化方式等等)。

实验实现:1.参考3_简单CPU设计内容与选择要求.doc、CPU8设计注意问题.doc两个文件,掌握本阶段实验的理论知识。

2.利用老师给的cpu8_sim文件夹进行模板仿真。

修改cpu8.v文件,写入自己定义的四周期信号,填写组合逻辑控制模块(send address、read,write)和时序逻辑控制模块(cpu内部时序逻辑)。

编辑完成后生成cpu8.v文件。

3. 利用cpu8.v文件生成新的cpu8.bsf库函数文件,替换cpu4tvb.bdf文件中旧的cpu8模块。

接着将cpu4tvb.bdf文件设置为顶层文件。

编译通过后,利用工程中原有的cpu4tvb.vwf文件进行Simulate,查看仿真结果报告中的内存情况,发现04~0B号单元依次是F0 87 77 BB 80 C0 39 97,与实验要求中的仿真结果一致,仿真正确。

4. 利用老师给的cpu8_download文件夹进行下载验证。

将步骤2中生成的cpu8.v文件拷入老师给的cpu8_domnload文件夹中,替换原有的cpu4t.v和cpu8t.v文件。

相关主题