VerilogHDL数字系统设计——原理、实例及仿真作者康磊第8-13章第11章.ppt

VerilogHDL数字系统设计——原理、实例及仿真作者康磊第8-13章第11章.ppt

  【代码11.12】 RISC CPU顶层模块的实现。   RISC CPU的模块符号如图11.34所示。 图11.34 RISC CPU的模块符号      11.8 模型机的组成   构建模型机的目的是在整机环境下对RISC CPU的功能进行测试。图11.35所示的模型机是在RISC CPU模块的基础上增加了只读存储器ROM、随机存储器RAM和总线控制部件ADDR_DECODE而构成的模型机系统。 图11.35 模型机结构框图 11.8.1 总线控制   总线控制器用来产生存储器的选通信号,根据地址总线上的输出地址的大小来选通ROM或者RAM,是通过一个地址译码器实现的。地址译码器的另一作用是对地址总线和数据总线进行控制以保证数据能在总线上准确流通。其工作逻辑是,根据RISC CPU对外输出的地址进行译码,地址译码器根据地址的范围来控制总线的使用权限,其实现见代码11.13,模块符号如图11.36所示。 图11.36 地址译码器的模块符号   【代码11.13】 地址译码器的实现。 11.8.2 ROM   ROM用于存储程序,根据CPU中运算器和寄存器的长度,ROM存储字长设计成16位,存储容量为256字,地址空间为0x0000~0x00FF。ROM的实现见代码11.14,其模块符号如图11.37所示。 图11.37 ROM的模块符号 11.8.3 RAM   RAM用于装载数据,其存储字长设计成16位,存储容量为512字,地址空间为0x0100~0x02FF。RAM区被分为两部分,其中0x0100~0x01FF地址空间用作一般数据存储区,0x0200~0x02FF地址空间用作堆栈区。RAM的实现见代码11.15,其模块符号如图11.38所示。 图11.38 RAM的模块符号   【代码11.15】 RAM的实现。 11.8.4 模型机的构成   用前面已经实现的模块RISC_CPU、ROM、RAM和ADDR_DECODE就可以构成模型机系统,其实现见代码11.16。   【代码11.16】 模型机的实现。   【代码11.17】 交互式数据输出控制模块。   【代码11.18】 共阳极七段数码管译码器模块。 11.8.5 模型机的样例程序   为了验证模型机的功能,这里设计了几个用于测试指令功能的小程序,这些程序均在Altera公司的开发板DE2-70上验证通过。每一个测试程序存放在不同的ROM区域,为了可以选择执行不同的程序,在cpu_top模块中引入了输入端口sw[1:0]。通过设置不同的sw,可以在复位信号有效后执行不同的样例程序。为此需要对程序计数器模块中复位信号执行的操作进行相应的修改,修改后的代码见代码11.19。   【代码11.19】 选择执行程序的PC模块。   1.测试样例一   该样例的功能是实现控制16个LED灯产生流水灯效果,具体代码设计如下:   图11.39是cpu_top模块执行样例一程序过程中PC和IR的变化情况,PC和IR的数据显示均为十六进制。图中可以看出,sw=2b01,在复位信号有效后,PC=16h002a,开始执行指令,从ROM的[002a]单元中取出指令16h901,随后PC的值依次为16h002、16h002c、16h002d、16h002e、16h002f,由于[002f]单元中是一个有条件跳转指令,当条件满足时PC跳转至16h002d执行,而后又继续执行指令16h002e…。指令在执行过程中对应的流水灯数据可从outdata(十六进制显示)输出。 图11.39 流水灯程序执行过程中的PC和IR变化过程   2.测试样例二   该样例的功能是实现1到100的累加求和,并将其存在R0寄存器指示的存储单元中。其具体码设计如下:   3.测试样例三   该样例的功能是对若干个数进行排序,并按升序将排序结果通过七段显示器显示出来。   输入数据:7,129,13,6,1,257,34833,5   输出排序结果:1,5,6,7,13,129,257,34883   具体代码设计如下: 图11.24 寄存器组的功能仿真结果 11.6.7 堆栈指针寄存器   堆栈指针寄存器(SP)是用于存储堆栈栈顶地址的。入栈(PUSH)和出栈(POP)指令访问的存储单元地址是由SP指出的。这里设计的CPU采用默认的堆栈起始地址(0x0200),初始化时SP的值为0x0200。当执行入栈(PUSH)指令时,控制信号sp_push有效,则SP的值加1;执行出栈(POP)指令时,控制信号sp_pop有效,则SP的值减1。   堆栈寄存器模块的实现见代码11.7,其各端口信号的说明如下:   输入信号:   clk——时钟信号;   rst—

文档评论(0)

1亿VIP精品文档

相关文档