3 源代码功能仿真
通常EDA(Electronic Design Automation)工具都为设计人员提供了测试平台,以验证数字电子系统设计在功能和时序二方面的正确性。不同的EDA工具提供的平台会有差别,但是它们都可以实现对被测试对象加载测试信号,并且能够通过波形输出或文件记录输出等方式来方便地进行观察及比较仿真结果。而测试用的激励代码通常是由设计人员自己编写。为了便于清楚地观察、比较仿真结果,本设计对一个340ns时间段进行了模拟,且测试代码考虑了各种可能出现的激励情况,具体的测试代码如下:
4 逻辑综合
逻辑综合的目标是将寄存器时间逻辑(RTL)的HDL(HardwareDescriptionLanguage)代码映射到具体的工艺上加以实现,因而从这一步开始,设计过程与实现工艺相关联。实现自动综合的前提是要有逻辑综合库的支持。综合库内部包含了相应的工艺参数,最典型的有:门级延时、单元面积、扇入扇出系数等。设计一个电子系统,总有相应的设计目标,如时钟频率、芯片面积、端口驱动能力等。自动综合工具将这些设计指标作为综合过程的约束条件,在给定的包含工艺参数的综合库中选取最佳单元,实现综合过程。 与模拟工具一样,目前有许多优秀的综合工具借助现有的综合库能将Verilog语言源代码进行综合,转化成门级电路图,并且可以根据设计者施加的约束条件对电路进行优化,生成相应的门级网表。Synopsys公司的DC(DesignCompiler)就是一个比较好的逻辑综合工具。DC逻辑综合与优化后得到的电路图如图6所示。
5 门级仿真
综合之后所得到的电路是否仍能满足设计要求,同样需要通过仿真来确定,逻辑综合之后的仿真称为门级仿真。门级网表是使用门电路以及电路之间的连接来描述电路的方式。门级仿真与RTL仿真不同的是,门级仿真包含了门单元的延时信息,因而门级仿真需要相应工艺的仿真库支持。把综合后得到的网表中门级延时参数提取出来后,对被测试对象进行反标,然后再进行仿真,得到的结果如图7所示。
从门级仿真所得到的波形图输出结果来看,本设计在功能与时序上是符合设计要求的。
6 后端设计
门级仿真通过后,接着就是进行版图规划;版图规划好以后就进行布局与布线;在版图的布局布线都已确定后,可以从版图中进一步提取出连线电阻、电容等参数。
生成版图之后,把从版图中提取出的参数反标到门级网表中,进行包含门延时、连线延时的门级仿真,称作后仿真。这一步主要是进行时序模拟,如果时序不能满足设计要求,通常需要修改版图的布局与布线、逻辑综合的约束条件,有时也可能回到RTL描述、行为级描述甚至设计规范或算法实现上加以调整。版图得到验证后就可以交付生产厂家做到硅片上。
7 结束语
由以上的设计过程可以看出,Verilog语言的最大特点是简洁、灵活、高效,其编程风格和C语言极其相似,所以很容易学习和掌握。同时,Verilog语言还具有底层描述方面的优势,而且其设计方法与具体工艺无关,这就使得用Verilog语言编写的功能模块具有很高的可重用性。随着集成电路的深亚微米制造技术、设计技术的迅速发展,集成电路已进入片上系统(System on a Chip,SoC)设计时代。SoC设计的最大挑战之一是IP(Intellectual Property)模块的有效使用和重用。IP模块的重用,除能缩短SoC芯片设计的时间外,还能降低设计和制造成本,提高可靠性。在SoC设计中,可重用的IP模块越多,设计过程的效率就会越高。由此可见,Verilog语言在SoC设计中可以发挥更大的作用。因此,能用Verilog语言进行电路设计是每个电子设计工程师必须掌握的基本技术。