Verilog课程设计.docxVIP

  • 107
  • 0
  • 约2.2万字
  • 约 28页
  • 2017-02-28 发布于湖北
  • 举报
实验目的(1)学习RISC_CPU的基本结构和原理;(2)了解Verilog HDL仿真和综合工具的潜力;(3)展示Verilog设计方法对软/硬件联合设计和验证的意义;(4)学习并掌握一些常用的 Verilog语法和验证方法。二.实验原理CPU即中央处理单元的英文缩写,它是计算机的核心部件。计算机进行信息处理可分为两个步骤:(1)将数据和程序(即指令序列)输入计算机的存储器中。(2)从第一条指令的地址起开始执行该程序,得到所需结果,结束运行。CPU的作用是协调并控制计算机的各个部件并执行程序的指令序列,使其有条不紊地进行。因此它必须具有以下基本功能。①取指令——当程序忆在存储器中时,首先根据程序入口地址取出一条程序,为此要发出指令地址及控制信号。②分析指令——即指令译码,这是对当前取得的指令进行分析,指出它要求什么操作,并产生相应的操作控制命令。③执行指令——根据分析指令时产生的“操作命令”形成相应的操作控制信号序列,通过运算器、存储器及输入/输出设备的执行,实现每条指令的功能,其中包括对运算结果的处理以及下条指令地址的形成。将CPU的功能进一步细化,可概括如下:(1)能对指令进行译码并执行规定的动作;(2)可以进行算术和逻辑运算;(3)能与存储器和外设交换数据;(4)提供整个系统所需要的控制。尽管各种CPU的性能指标和结构细节各不相同,但它们所能完成的基本功能相同。由功能分析,可知任何一种CPU内部结构至少应包含下面这些部件:(1)算术逻辑运算部件(ALU);(2)累加器;(3)程序计数器;(4)指令寄存器和译码器;(5)时序和控制部件。三.实验内容通过我们自己动手,设计出一个CPU的软核和固核。这个CPU是一个简化的专门为教学目的而设计的RISC_CPU。在设计中我们不但关心CPU总体设计的合理性,而且还使得构成这个RISC_CPU的每一个模块不仅是可仿真的也都可以综合成门级网表。因而从物理意义上说,这也是一个能真正通过具体电路结构而实现的CPU。为了能在这个虚拟的CPU上运行较为复杂的程序并进行仿真,把寻址空间规定为8K(即13们地址线)字节。四.实验代码1.源代码//----------------------------------clk_gen.v------------------------------`timescale 1ns/1ns //时间单位1ns,时间单位1nsmodule clk_gen(clk,reset,fetch,alu_ena); //模块名clk_gen,参数列表(clk,reset,fetch,alu_ena)input clk,reset; //输入clk,resetoutput fetch,alu_ena; //输出fetch,alu_enawire clk,reset; //wire型变量clk,resetreg fetch,alu_ena; //reg寄存器型变量fetch,alu_enareg[7:0]state; //reg寄存器型变量8位的stateparameter S1=8S2=8S3=8S4=8S5=8S6=8S7=8S8=8idle=8 //参数型定义8位二进制常量s1,s2,s3,s4,s5,s6,s7,s8,idlealways@(posedge clk) //always块时钟触发if(reset) //如果reset为真begin //执行begin,and顺序块fetch=0; //fetch非阻塞赋值赋为0alu_ena=0; //alu_ena非阻塞赋值赋为0state=idle; //idle非阻塞赋值给stateendelse //reset为假执行下面begin语句begincase(state) //case表达式(state)S1:beginalu_ena=1; //alu_ena非阻塞赋值赋为1state=S2; //state非阻塞赋值赋为S2endS2:begi

文档评论(0)

1亿VIP精品文档

相关文档