Verilog

培养Verilog良好代码编写风格的25个技巧

良好代码编写风格可以满足信、达、雅的要求。在满足功能和性能目标的前提下,增强代码的可读性、可移植性,首要的工作是在项目开发之前为整个设计团队建立一个命名约定和缩略语清单,以文档的形式记录下来,并要求每位设计人员在代码编写过程中都要严格遵守。良好代码编写风格的通则概括如下:

verilog快速入门经验分享

整个verilog中是以module为编写基本单元的,module不宜过大,目标是实现一些基本功能即可,module的层次不宜太深,一般3-5层即可,给module划分层次原则:实现最基本功能的为底层module,然后中层是调用这些基本module,实现大的功能,最高层是系统级模块,统筹各大块之间端口连接,时序关系等。

Verilog中阻塞与非阻塞式赋值解惑

Verilog中阻塞与非阻塞式赋值是比较让初学者难以理解的两种赋值方式,今天我就来谈一谈它们之间的区别:
使用过VHDL的朋友都知道,VHDL中信号使用非阻塞式 ,而变量类似于阻塞赋值。

阻塞式过程赋值与非阻塞式过程赋值在Verilog中表示如下:
c = a & b; 阻塞式过程赋值
c <= a & b; 非阻塞式过程赋值
两种赋值不会对语句本身的赋值有影响,但会影响以后对赋值结果的引用。一般的参考书中建议组合逻辑使用阻塞式,时序逻辑使用非阻塞式。且语句块 中如果只有一条赋值语句,是阻塞还是非阻塞都没有任何不一样。

Verilog HDL建模技巧 :低级建模 仿顺序操作

第1章“低级建模”的思路
首先,我将用一个简单的例子来说明一下,“低级建模”的最基本思路:
(一)利用C语言驱动八位发光二极管:

Verilog语言谈(1)——ZT

最近几天,我在用Verilog对一个小电路进行仿真。我想写一个延时模块,把输入信号延时一个给定值之后,再输出。

经验分享:写verilog代码要有硬件的概念--ZT

因为Verilog是一种硬件描述语言,所以在写Verilog语言时,首先要有所要写的module在硬件上如何实现的概念,而不是去想编译器如何去解释这个module. 比如在决定是否使用reg定义时,要问问自己物理上是不是真正存在这个register, 如果是,它的clock是什么? D端是什么?Q端是什么?有没有清零和置位?同步还是异步?再比如上面讨论的三态输出问题,首先想到的应该是在register的输出后面加一个三态门,而不是如何才能让编译器知道要“赋值”给一个信号为三态。同样,Verilog中没有“编译”的概念,而只有综合的概念。

verilog学习五点经验分享

1.规范很重要
工作过的朋友肯定知道,公司里是很强调规范的,特别是对于大的设计(无论软件还是硬件),不按照规范走几乎是不可实现的。逻辑设计也是这样:如果不按规范做的话,过一个月后调试时发现有错,回头再看自己写的代码,估计很多信号功能都忘了,更不要说检错了;如果一个项目做了一半一个人走了,接班的估计得从头开始设计;如果需要在原来的版本基础上增加新功能,很可能也得从头来过,很难做到设计的可重用性。

Verilog HDL入门(第3版)

Verilog HDL入门(第3版)本书简要介绍了Verilog硬件描述语言的基础知识,包括语言的基本内容和基本结构,以及利用该语言在各种层次上对数字系统的建模方法。书中列举了大量实例,帮助读者掌握语言本身和建模方法,对实际数字系统设计也很有帮助。第3版中添加了与Verilog2001有关的新内容。本书是VerilogHDL的初级读本,可作为计算机、电子、电气及自控等专业相关课程的教材,也可用作相关科研人员的参考书。

FPGA开发十大基本功连载之阻塞与非阻塞赋值

阻塞与非阻塞赋值是Verilog语言中最基本的部分,也是让大部分Verilog新手最困惑的地方。关于阻塞与非阻塞的著作文章可谓汗牛充栋,这些文章对阻塞与非阻塞赋值的原理进行了非常详细的讲解,但新手读了之后依然有种似懂非懂的感觉,编码过程中一如既往的犯错。所以,本文的目的立足于提供一种实用化的解决方案,用最简单的语言和形象的类比让新手能够一目了然的明白正确的编码方式以及相应的电路行为逻辑,关于仿真细节的讲解不是本文重点,需要了解更多细节的朋友可以参考文后列举的参考文献。

东南大学Verilog教程--part4

东南大学Verilog教程--part4