Verilog是一门硬件描述语言, 其可以通过简单的代码描绘出真实的电路情况。对于Verilog的学习可以先从整体上了解这个语言的一些特点,然后熟练掌握这些基础,在后面的不断练习中以这些简单的特点为核心向周围衍生出各种小的知识点。
Verilog代码有几种不同的代码设计层次,分别是算法级描述、结构级描述、RTL级描述、开关门级描述、混合层次描述;在一般书写代码过程中多使用混合层级描述,同时也需要知道综合器可以综合的范围,有的综合器可以综合更加抽象的代码层次,而有的却不行。 一般我们验证的对象都是RTL层级描述,其中RTL级描述主要是加法器,触发器级别的。
RTL即是寄存器级别描述,而触发器是构成寄存器的基本单元,一个触发器储存一个bit,而n个触发器可以构成n位寄存器。
Verilog的5种不同的控制语句,分别是:for, if else, repeat, while, forever
for (i = 1;i<5;i++) begin [statement;] end
if (condition) begin [statements] end else begin [statements] end
repeat (number) begin [statement;] end
while (i>0) begin [statement;i = i-1] end
forever begin [statements;] end
对于这五种不同的控制语句,当我们在写的时候统一将语句statement包括在begin end代码块中,这样可能导致代码冗余,但是作为初学者我们的第一步是在脑海中记住最简单的写法,后期当然是很好进行优化的。
Verilog中的 %, $ 符号的使用
$
后面可以加系统函数,可以直接执行这个函数。几种常见的函数分别是 $display, $monitor, $time, $finish, $stop, $random%
目前主要用于打印输出时作为传入变量使用,如$display("sum is %d", sum);
这里可以直接传入sum变量。也有写成%0d
的形式。