数字部件设计课,使用Verilog在fpga板上做了不少东西,秒表、单周期cpu、流水线cpu、vga小游戏,小小总结一下。

Verilog

  • Verilog是硬件描述语言,但是它跨度挺大,有四个层次。
    • 晶体管开关级。
    • 逻辑门级。
    • 寄存器传输级。
    • 功能描述风格。
  • 我主要用到后两个层次,还是偏软件,前两个层次更低、更贴近硬件设计。
  • 虽然表现形式有多种,但它的核心,我认为在于,操作的对象变为了电路,不管从何种层级描述,最终的结果就是电路。电路就两种,组合逻辑电路和时序逻辑电路。
  • 组合逻辑就更多用到assign、wire。
  • 时序逻辑就是@(posedge),<=这样的形式。
  • 还有很多关键字和语法,最终被翻译成怎样的电路,跟写法也有关系,并未深究。

Quartus

  • Windows上的一个FPGA开发平台,用来分析硬件描述,生成硬件相关的写入文件。
  • 由于全量编译很慢,基本上也就真正写入硬件的时候用。

ModelSim

  • Verilog模拟器,功能强大。
  • 编译速度快,可以提取任意变量查看,可以模拟一些信号。

CPU设计

  • TODO

VGA设计

  • VGA信号就是先查表,看看行列各多少,时钟频率多少。
  • 然后按要求输出RGB信号即可。