昨日已不再现... » 日志 » Verilog实现的8周期非流水CPU
Verilog实现的8周期非流水CPU
Bloodmoon 发表于 2009-12-10 19:54:07
(1)accum.v 累加器
(2)adr.v 地址多路器
(3)alu.v 算术逻辑运算单元
(4)clk_gen.v 时钟发生器
(5)counter.v 程序计数器
(6)datactl.v 数据控制器
(7)register.v 指令寄存器
(8)machine.v与(9)machinectl.v共同组成 状态控制器
以上为cpu的8个组成部分。
(10)cpu.v使用以上文件中的模块,构成cpu,以下文件是验证cpu的功能所必须的模块。
(11)rom.v ROM
(12)ram.v RAM
(13)addr_decode.v 地址译码器
(14)cputop.v文件使用了cpu.v, rom.v, ram.v, addr_decode.v文件中的模块来验证cpu的功能。
整个工程能够在modelsim SE PLUS 6.2b 中通过编译,并且能够仿真。 这个cpu参考了夏宇闻《Verilog数字系统教程》一书,是个非流水cpu。
源代码下载地址:
http://cid-590b880d9b5a76e5.skydrive.live.com/self.aspx/.Public/CPU.rar
复制以上链接到IE地址栏,敲击回车就能看到文件,(也可以右键点击上述链接,选择在新窗口中打开),推荐使用IE直接下载,用迅雷可能会损坏文件。(点击文件的时候迅雷可能会弹出,选择取消,再点击文件一次,迅雷弹还是出的话,还是选择取消,多试几次,直到IE下载框出现。)
这是用Modelsim SE PLUS 6.2b 创建的工程,工程里除了源代码和工程文件以外,还有6个文件用于测试CPU是否正确实现,分别为:tes1.pro test1.dat, test2.pro test2.dat, test3.pro test3.dat,.pro文件里存的是指令,.dat文件里存的是数据;.pro文件会被读入到ROM中,.dat文件会被读入到RAM中。test1.pro使用test1.dat中的数据,test2.pro使用test2.dat中的数据,test3.pro使用test3.dat中的数据。
test1和test2用于测试CPU的指令,test3使用该CPU实现斐波那契数的计算。
下列为仿真结果。

图1. tes1.pro的结果

图2. tes2.pro的结果

图3. tes3.pro的结果
最新评论
-
2009-12-11 17:06:17 匿名 72.52.*.* http://zhehou.blogspot.com/
还有源码,幸福的孩子~
-
2009-12-17 18:13:24 http://zhehou.blogspot.com/
突然发现你居然还在Ycool很活跃~
没有没有,我很低调的……

-
2009-12-27 12:17:36 http://zhehou.blogspot.com/
你太低调了,问你话你半句都不答,以后去保密局工作吧~

