FPGA-10:设计个简单的cpu(真的简单!)
编写一个简单的cpu
经过了之前的学习
想必各位对verilog应该有了基本的基础
那么,接下来,我们就来造cpu吧!
我们将写一个简单的单周期cpu
- 该cpu有一下特点:
- 32位架构
- 单周期执行
- 简洁实用
- 32位定长指令
- 有手就行
我称之为 “ant” 内核
就跟蚂蚁一样,“功能弱小”,但也什么能干
我也特地为该cpu编写了个汇编器
包括使用python编写的bin转txt工具
连接如下:
下载该项目
即可得到5个文件
1 | cpu.v: ant内核核心文件 |
下面是寄存器说明及指令集:
1 | 寄存器: |
虽然指令只有短短14条,但也几乎能够完成所有事了
接下来我们来写个简单的1+2+3+…+100的程序
c代码如下:
1 | int main() { |
c代码对应的汇编代码
汇编代码如下:
1 | //0起始地址 |
将该汇编代码保存进”demo.ant”文件中
输入命令:
1 | ant-asm demo.ant |
即可得到
out.bin可执行文件
再执行binTotxt.py脚本(注意更改里面的路径)
得到out.list填充文件
仿真test.v文件,将out.list内容填充进rom
运行
仿真效果如下:

可以看到,正确的算出了5050这个值
说明代码和ant内核是没有什么问题的
