Felix

技术源于积累,成功始于执着!

推荐几份Verilog的进阶学习资料

0
阅读(106) 评论(1)

如本文标题所示,这些资料并不适合初学者,而是是否有一定基础的学习者,想进一步提高巩固的。资料来自Sunburst Design(一家知名的Verilog&System Verilog(UVM)培训团队),作者为VSG(Verilog Standard Group)成员,参与了IEEE Verilog-2001标准的指定。本次推荐的资料主要关于非阻塞赋值、状态机设计、复位设计、跨时钟域设计等,下面分别做一个简单的介绍。

第一篇:http://blog.chinaaet.com/ueditor/dialogs/attachment/fileTypeImages/icon_pdf.gif1205-Nonblocking Assignments in Verilog Synthesis, Coding Styles That Kill! .pdf

  • 本文详细介绍了一些关于Verilog 非阻塞赋值的使用规范(建议),

  • 分析了为什么要在组合逻辑中使用阻塞赋值,在时序逻辑中使用非阻塞赋值。

  • 同时介绍了Verilog IEEE标准中的stratified event queue(感觉比IEEE标准讲解的要清晰,且简单易懂);

  • 介绍了在编写Testbench时,何时使用$display/$write,什么时候使用$monitor/$strobe;

  • 介绍了为什么不建议使用#0 delay等。

 

第二篇:http://blog.chinaaet.com/ueditor/dialogs/attachment/fileTypeImages/icon_pdf.gif1205-RTL Coding Styles That Yield Simulation and Synthesis Mismatches.pdf

  • 本文介绍了组合逻辑设计中的always的敏感列表,分析了当敏感列表与逻辑中的RHS不一致(多了或者少了)时,会出现什么样的现象;

  • 介绍了在function中设计时序逻辑可能会导致的问题;

  • 介绍了使用 “//synopsys full_case”约束指令和“//synopsys parallel_case”约束指定可能会导致的问题;

  • 介绍了在RTL Code中使用casez和casex可能会导致的问题;

  • 介绍了在RTL Code中使用translate_on/off约束指令可能会导致的问题。

 

第三篇:http://blog.chinaaet.com/ueditor/dialogs/attachment/fileTypeImages/icon_pdf.gif1205-Verilog Coding Styles for Improved Simulation Efficiency.pdf

  • 这篇有点扯犊子,随便看看就好了……

 

第四篇:http://blog.chinaaet.com/ueditor/dialogs/attachment/fileTypeImages/icon_pdf.gif1205-State Machine Coding Styles for Synthesis.pdf

  • 介绍了摩尔型与米莉型状态机的区别

  • 介绍了状态机组合逻辑的设计注意事项和输出逻辑的设计注意事项

 

第五篇:http://blog.chinaaet.com/ueditor/dialogs/attachment/fileTypeImages/icon_pdf.gifxxxx-Verilog Nonblocking Assignments With Delays,Myths & Mysteries.pdf

  •  这篇有点难,不过写的还是很赞的,主要是从ASIC设计的角度来写的

 

第六篇:http://blog.chinaaet.com/ueditor/dialogs/attachment/fileTypeImages/icon_pdf.gif1206-Synchronous Resets, Asynchronous Resets, I am so confused! How will I ever know which to use.pdf

  • 从ASIC设计的角度介绍了同步复位和异步复位

  • 介绍了复位同步逻辑(for ASICdesigners)

 

第七篇:http://blog.chinaaet.com/ueditor/dialogs/attachment/fileTypeImages/icon_pdf.gif1206-Verilog-2001 Behavioral and Synthesis Enhancements.pdf

  • 这篇文章是2001年写的(2002年修订),写的时候IEEE Verilog-2001正式版还没发布

  • 本文内容可能会与IEEE Verilog-2001有点不一致,一切以IEEE标准为准

  • 不过从另一个角度来说,本文体现了IEEE Verilog-2001在制定的时候所考虑和争论的一些信息,看看还是蛮有意思的

 

第八篇:http://blog.chinaaet.com/ueditor/dialogs/attachment/fileTypeImages/icon_pdf.gif1207-Synthesis and Scripting Techniques for Designing MultiAsynchronous Clock Designs.pdf

  • 这一篇写的非常赞!主要讲解的是跨时钟域设计的基本思想和注意事项

  • 介绍了follow two-flip-flop的同步器设计与注意事项

  • 介绍了跨时钟域设计下,时钟与相关信号的命名规范(建议)

  • 介绍了为什么建议将每一个时钟域逻辑独立为一个单独的模块,并使用同步模块来连接不同的时钟域逻辑模块

  • 介绍了处理跨时钟域的控制信号的处理方式

  • 介绍了两种跨时钟域数据信号的处理方式——握手机制和FIFO

 


  1. 此外,还有两篇关于FIFO设计的文章,考虑到目前FPGA开发中都是直接使用工具直接生成FIFO,而不需要用户自己去设计,所以没有贴出来。有兴趣的可以自行去Sunburst网站上下载阅读,或者联系我索取。