数字部件设计课,使用Verilog在fpga板上做了不少东西,秒表、单周期cpu、流水线cpu、vga小游戏,小小总结一下。
Verilog
- Verilog是硬件描述语言,但是它跨度挺大,有四个层次。
- 晶体管开关级。
- 逻辑门级。
- 寄存器传输级。
- 功能描述风格。
- 我主要用到后两个层次,还是偏软件,前两个层次更低、更贴近硬件设计。
- 虽然表现形式有多种,但它的核心,我认为在于,操作的对象变为了电路,不管从何种层级描述,最终的结果就是电路。电路就两种,组合逻辑电路和时序逻辑电路。
- 组合逻辑就更多用到assign、wire。
- 时序逻辑就是@(posedge),<=这样的形式。
- 还有很多关键字和语法,最终被翻译成怎样的电路,跟写法也有关系,并未深究。
Quartus
- Windows上的一个FPGA开发平台,用来分析硬件描述,生成硬件相关的写入文件。
- 由于全量编译很慢,基本上也就真正写入硬件的时候用。
ModelSim
- Verilog模拟器,功能强大。
- 编译速度快,可以提取任意变量查看,可以模拟一些信号。
CPU设计
- TODO
VGA设计
- VGA信号就是先查表,看看行列各多少,时钟频率多少。
- 然后按要求输出RGB信号即可。