电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

可综合的Verilog语法子集总汇

可综合的Verilog语法子集总汇_第1页
1/9
可综合的Verilog语法子集总汇_第2页
2/9
可综合的Verilog语法子集总汇_第3页
3/9
常用的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 级设计来说,掌握好上面这些基本语法是很重要。 相信大家在看了这么多了 verilog 语法书籍以后一定有点烦了,那么现在我告诉大家一个好消息,对于一个 RTL 级的设计来说,掌握了上面的语法就已经足够了,无论多么牛逼的工程师,在他的代码里无非也就是上面一些语法而已。当然了,对于一个能够进行很好的仿真验证的代码,一般还需要在RTL 级的设计代码中添加一些延时之类的语句,比如大家一定知道#10 的作用,就是延时 10 个单位时间,这个语句虽然在仿真的时候是实实在在的延时,但是这个语句在综合后是会被忽略的,也就是说在我们综合并且布局布线最后烧进 FPGA 里,这个#10 的延时是不会在硬件上实现的。所以说,上面给出的这些语法才是可以最后在硬件上实现的,其它的语法大多会在综合后被忽略。这么一来大家就要问了,为什么语法书里又要给出这么多的语法呢?呵呵,它们大都是为仿真验证是写 testbench准备的,先点到为止,下集继续! 对于模型(module)的建立,要保证可综合性应该注意: (1)不使用 initial。(被忽略) (2)不使用#10。(被忽略) (3)不使用循环次数不确定的循环语句,如 forever、while 等。 (4)不使用用户自定义原语(UDP 元件)。 (5)尽量使用同步方式设计电路。 (6)除非是关键路径的设计...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

可综合的Verilog语法子集总汇

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部