Verilog:用文字画电路
约 10 分钟
画图纸画到手抽筋之后
电路一大,原理图就成灾难:几千个门,连线像一盘面条。上世纪八十年代,工程师想出一个办法——不画了,改用文字「描述」电路,让软件把文字自动翻译成门电路。这类语言叫硬件描述语言(HDL),Verilog 是其中最流行的一种。今天几乎所有芯片,都是先写 Verilog 再「综合」成电路的。
它不是程序,是图纸
初学最大的坑是把 Verilog 当 C 语言。C 代码一行行顺序执行;Verilog 描述的电路却是所有模块同时工作。写 always @(posedge clk) 意思是「每个时钟上升沿,这块电路动一下」;两个 always 块之间没有先后,它们物理上就是两块并排的电路。时钟逻辑里要用非阻塞赋值 <=,白话讲就是「这一拍大家先各自读旧值,拍末再一起更新」,正好对应触发器的行为。
写完之后两步走
先仿真:给输入加上假想的波形,看输出对不对,相当于搭电路之前先在电脑里通电试跑。再综合:工具把 Verilog 翻译成具体门电路,烧进 FPGA 或送去造芯片。第一章说的那些加法器、状态机、计数器,每样都只要十几行 Verilog。
常见误区:仿真通过不等于硬件没问题——时序、毛刺、亚稳态,仿真里未必暴露。
练一练:用一句话向家长解释「Verilog 是描述不是执行」,可以用「乐谱和演奏」作类比。
小纸条
写出 always @(posedge clk) 这行 Verilog 的白话意思。
登录 后可看答案