特权同学

可综合的verilog语法子集

0
阅读(4251)

常用的RTL语法结构如下:

☆ 模块声明:module……endmodule

☆ 端口声明:input,output,inout(inout的用法比较特殊,需要注意)

☆ 信号类型:wire,reg,tri等,integer常用语for语句中(reg,wire时最常用的,一般tri和integer不用)

☆ 参数定义:parameter

☆ 运算操作符:各种逻辑操作符、移位操作符、算术操作符大多时可综合的(注:===与!==是不可综合的)

☆ 比较判断:if……else,case(casex,casez)……default endcase

☆ 连续赋值:assign,问号表达式(?:)

☆ always模块:(敏感表可以为电平、沿信号posedge/negedge;通常和@连用)

☆ begin……end(通俗的说,它就是C语言里的“{ }”)

☆ 任务定义:task……endtask

☆ 循环语句:for(用的也比较少,但是在一些特定的设计中使用它会起到事半功倍的效果)

☆ 赋值符号:= 和<= (阻塞和非阻塞赋值,在具体设计中时很有讲究的)

可综合的语法时verilog可用语法里很小的一个子集,用最精简的语句描述最复杂的硬件,这也正是硬件描述语言的本质。对于做RTL级设计来说,掌握好上面这些基本语法是很重要。

Baidu
map