可综合的verilog语法子集
0赞
发表于 2010/5/25 19:35:01
阅读(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级设计来说,掌握好上面这些基本语法是很重要。