快捷搜索:  汽车  科技

verilog怎么定义一个整数(浅谈DesignCompiler--)

verilog怎么定义一个整数(浅谈DesignCompiler--)我们在工作中,总结出了一些Verilog的编码原则,它们如下所示:今天我们着重强调了编码质量的重要性,以及一些实际的编码原则,来保证代码质量。还有哪些原则需要注意,欢迎大家和我进行讨论。欢迎加关注“单眼皮老王”,阅读IC、图像处理、ASIC、FPGA、AI等相关文章,更欢迎和我讨论。

昨天的文章中,我们了解到Design Compiler(DC)作为Synopsys公司开发的一款用于电路综合的EDA工具,在全球数字电路市场去得了巨大的成功,它的设计初衷是将用verilog HDL语言描述的RTL(寄存器传输级)电路,映射成基于某个特定工艺库的门级网标。那么我们数字前端设计工程师编写的RTL,对综合的结果到底有没有影响呢?什么样的RTL,会有利于工具的综合呢?今天我们来讨论一下。

verilog怎么定义一个整数(浅谈DesignCompiler--)(1)

Verilog HDL编码效率

我们知道Design Compiler的输入是用Verilog HDL编写的RTL和时序、面积等约束条件,那么在同样的约束条件之下,不同的RTL,得出的综合结果(包括时序和面积)会相差非常多。这就是因为不同的编码效率所致。

大量的事实证明,Verilog编码效率决定Design Compiler综合得到的电路性能的高低。DC工具的优化只能是雪中送炭,而不能锦上添花。所以如果是一段非常低效的RTL代码,DC也不能综合出来一个高效的电路。

我们后面将对Verilog HDL中的几种主要结构(always、case等等),进行分析,希望能够让大家对Verilog HDL和DC综合的电路之间,有一个初步的映射。

verilog怎么定义一个整数(浅谈DesignCompiler--)(2)

可综合Verilog HDL的编写原则

我们在工作中,总结出了一些Verilog的编码原则,它们如下所示:

  • 从电路到RTL代码。在编码之前,需要先大概想出,电路的基本模型,verilog只是将这个模型描述出来。且不可只是写代码,根本不知道所写的RTL,究竟是否能够通过DC,映射成电路,或者说,能够映射成什么样的电路。
  • RTL的代码层次要清楚。功能越是复杂,越要注意RTL的逻辑层次结构。这是保证数据流和所设计模块清晰的基本条件。
  • 参数的使用。在实际工作过程,因为前端需求变动,规格更改的情况时有发生,所以参数的应用,绝对是减少自己工作量的重要手段。
  • 保证RTL的可综合性。Verilog HDL中有许多语句,是不能使用DC合成的,在编写RTL时,一定要避免使用(在验证过程中可以使用)。
  • 信号命名要有实际意义。有意义的信号命名,不经可以使我们再编码过程中,思路清楚,更重要的是,在验证过程中,能够提升我们Debug效率。
  • 避免latch的产生。在if-else\case语句结构中,必须保证分支的完整性,避免latch的产生。

verilog怎么定义一个整数(浅谈DesignCompiler--)(3)

小结

今天我们着重强调了编码质量的重要性,以及一些实际的编码原则,来保证代码质量。还有哪些原则需要注意,欢迎大家和我进行讨论。


欢迎加关注“单眼皮老王”,阅读IC、图像处理、ASIC、FPGA、AI等相关文章,更欢迎和我讨论。

猜您喜欢: