原创 【博客大赛】risc cpu模块调试

2012-5-22 18:54 1662 11 12 分类: FPGA/CPLD

不知道博客大赛有木有结束,不管了,就是借着这个机会好好学学risc cpu设计。

这个risc cpu是参考夏宇闻老师的《数字系统设计——verilog实现》实现的,这是一个多周期,无流水的cpu,指令和寻址方式都是最简单的,等有空了在自己设计个有流水的,功能更丰富的risc cpu。

下面进入risc cpu模块的前仿真
为了对设计的cpu模型进行验证,需要把risc cpu包装在一个模块下,再连接上一些外围测试的器件模型,如存储器等。这就是用虚拟器件来代替真实器件对设计的cpu模型验证。
cpu和外围器件的连接图已经在上一篇外围器件的博文中给出。
调试时,需要先将汇编程序和数据分别加载到rom和ram中,在顶层testbench中使用$readmemb读入对应的文件(test*.pro是汇编程序,test*.dat是数据文件)到rom和ram中。
调试包含3个test,test1用于验证risc cpu逻辑功能的机器代码;test2是用于验证risc cpu的功能;test3是计算0~144的fibonacci序列。
 
附件中test文件夹下是顶层测试模块和所需的测试文件。
 
PARTNER CONTENT

文章评论1条评论)

登录后参与讨论

用户403664 2012-5-24 09:41

博客大赛第一季一直到5月31号。第二季6月1号开始。
相关推荐阅读
用户1623618 2012-05-04 10:28
【博客大赛】RISC CPU设计之外围模块
为了对cpu进行测试,需要有存储测试程序的rom和装载数据的ram、地址译码器。 1.地址译码器用于产生选通信号,选通rom或ram。 module addr_decode(     i...
用户1623618 2012-05-04 10:09
【博客大赛】RISC CPU设计之状态控制器
状态控制器由两部分组成:1.状态机(machine)。2.状态控制器(machinectl)。 状态控制器接收复位信号,当rst有效时,通过信号ena使其为0,输入到状态机中停止状态机的工作。...
用户1623618 2012-05-03 13:43
【博客大赛】RISC CPU设计之程序计数器
程序计数器用于提供指令地址,以便读取指令,指令安地址顺序存放在存储器中。有两种途径可形成指令地址:一是顺序执行的情况,二是遇到要改变顺序执行的情况。例如,执行JMP指令后,需要形成新的指令地址。下...
用户1623618 2012-04-15 10:21
【博客大赛】RISC CPU设计之数据控制器&地址多路器
数据控制器 数据控制器的作用是控制累加器数据输出,由于数据总线是各种操作时传送数据的公共通道,不同的情况下传送不同的内容。有时需要传输指令,有时要传RAM区或接口的数据。累加器的数据只有在需要...
用户1623618 2012-04-15 09:56
【博客大赛】RISC CPU设计之累加器&算术运算器
累加器用于存放当前的结果,它也是双目运算其中一个数据来源。复位后,累加器的值是0。当累加器通过ENA口收到来自CPU状态控制器LOAD_ACC信号时,在CLK1时钟上升沿就收到来自于数据总线的数据...
我要评论
1
11
关闭 站长推荐上一条 /3 下一条