二、程序框架
1.注释
与C语言注释写法类似,不做赘述。
2.关键字
常用关键字如下:
3.程序框架
(1)模块的结构
Verilog的基本设计单元是‘模块’(Block)。
一个模块是由两部分组成的,一部分描述接口,另一部分描述功能。
例如:verilog语言
module block(a,b,c,d);
input a,b;
output c,d;
assign c = a|b;
assign d = a&b;
endmodule
其中block为变量名,(a,b,c,d)为端口定义,input和output为IO说明,assign为功能定义,有些代码还有内部信号声明。
(2)模块的调用
在模块调用时,信号通过模块端口在模块之间传递。
模块间调用首先例化模块,通过重新命名(通常使用u_xxx)模块名,再使用.clk()的方式将模块中定义的clk端口与xxx(顶层模块端口)对应连接(注意输入端口和输出端口对应,对应位宽也应一致)。其中,输出端只能连接wire类型。
第二种方式中调用模块端口名(sys.clk等)必须按被调用模块端口端口名(module中的顺序)顺序连接不可改变顺序。
#后的.MAX_NUM不为端口表示,为参数传递(将被调用模块中的50000_000用25000_000代替,传递完的值依然为25000_000)。