推荐几份Verilog的进阶学习资料
1赞如本文标题所示,这些资料并不适合初学者,而是是否有一定基础的学习者,想进一步提高巩固的。资料来自Sunburst Design(一家知名的Verilog&System Verilog(UVM)培训团队),作者为VSG(Verilog Standard Group)成员,参与了IEEE Verilog-2001标准的指定。本次推荐的资料主要关于非阻塞赋值、状态机设计、复位设计、跨时钟域设计等,下面分别做一个简单的介绍。
第一篇:1205-Nonblocking Assignments in Verilog Synthesis, Coding Styles That Kill! .pdf
本文详细介绍了一些关于Verilog 非阻塞赋值的使用规范(建议),
分析了为什么要在组合逻辑中使用阻塞赋值,在时序逻辑中使用非阻塞赋值。
同时介绍了Verilog IEEE标准中的stratified event queue(感觉比IEEE标准讲解的要清晰,且简单易懂);
介绍了在编写Testbench时,何时使用$display/$write,什么时候使用$monitor/$strobe;
介绍了为什么不建议使用#0 delay等。
第二篇:1205-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约束指令可能会导致的问题。
第三篇:1205-Verilog Coding Styles for Improved Simulation Efficiency.pdf
这篇有点扯犊子,随便看看就好了……
第四篇:1205-State Machine Coding Styles for Synthesis.pdf
介绍了摩尔型与米莉型状态机的区别
介绍了状态机组合逻辑的设计注意事项和输出逻辑的设计注意事项
第五篇:xxxx-Verilog Nonblocking Assignments With Delays,Myths & Mysteries.pdf
这篇有点难,不过写的还是很赞的,主要是从ASIC设计的角度来写的
从ASIC设计的角度介绍了同步复位和异步复位
介绍了复位同步逻辑(for ASICdesigners)
第七篇:1206-Verilog-2001 Behavioral and Synthesis Enhancements.pdf
这篇文章是2001年写的(2002年修订),写的时候IEEE Verilog-2001正式版还没发布
本文内容可能会与IEEE Verilog-2001有点不一致,一切以IEEE标准为准
不过从另一个角度来说,本文体现了IEEE Verilog-2001在制定的时候所考虑和争论的一些信息,看看还是蛮有意思的
第八篇:1207-Synthesis and Scripting Techniques for Designing MultiAsynchronous Clock Designs.pdf
这一篇写的非常赞!主要讲解的是跨时钟域设计的基本思想和注意事项
介绍了follow two-flip-flop的同步器设计与注意事项
介绍了跨时钟域设计下,时钟与相关信号的命名规范(建议)
介绍了为什么建议将每一个时钟域逻辑独立为一个单独的模块,并使用同步模块来连接不同的时钟域逻辑模块
介绍了处理跨时钟域的控制信号的处理方式
介绍了两种跨时钟域数据信号的处理方式——握手机制和FIFO