第一部分Verilog数字设计基础数字通信和自动化控制等领域的高速发展和世界范围内的高技术竞争对数字系统提出了越来越高的要求,特别是要设计具有实时信号处理能力的专用集成电路,要求把包括多个CPU内核在内的整个电子系统综合到一个芯片(SOC)上。设计并验证这样复杂的电路及系统已不再是简单的个人劳动,而需要综合许多专家的经验和知识才能够完成。近10年来电路制造工艺技术进步非常迅速,目前国际上60nm的制造工艺,已达到工业化生产的规模,而电路设计能力远远落后于制造技术的进步。在数宇逻辑设计领域,追切需要一种共同的工业标准来统一对数字逻辑电路及系统的描述,这样就能把系统设计工作分解为逻辑设计(前端)电路实现(后端)和验证三个互相独立而又相关的部分。由于逻辑设计的相对独立性就可以把专家们设计的各种常用数字逻辑电路和组件(如FFT算法、DCT算法部件,DDRAM读写控制器等)建成宏单元(megcell)或软(固/硬)核,也称作Soft(firm/hard)Core,即IP(知识产权内核的英文缩写)库供设计者引用,设计者可以直接利用它们的行为模型设计并验证其他电路,以减少重复劳动,提高工作效率。电路的实现则可借助于综合工具和IP的重复利用,以及布局布线工具(与具体工艺技术有关)自动地完成。VerilogHDL和VHDL这两种工业标准的产生顺应了历史的潮流,因而得到了迅速的发展。美国、日本等国由于高级设计工程师人力资源成本远高于中国,所以,近年来把许多设计工作转移到中国大陆,以降低设计成本。作为新世纪的中国大学生和年轻的电子工程师应该尽早掌握这种新的设计方法,使我国在复杂数字电路及系统的设计竞争中逐步缩小与美国等先进的工业发达国家的差距
第1章Verilog的基本知识1,1硬件描述语言HDL硬件描述语言(HDL,hardwatedescriptionlanguage)是一种用形式化方法来描述数字电路和系统的语言。数字电路系统的设计者利用这种语言可以从上层到下层(从抽象到具体)逐层描述自己的设计思想,用一系列分层次的模块来表示极其复杂的数字系统。然后利用电子设计自动化(以下简称为EDA)工具逐层进行仿真验证,再把其中需要变为具体物理电路的模块组合经由自动综合工具转换到门级电路网表。接下去再用专用集成电路(ASIC)或现场可编程门阵列(FPGA)自动布局布线工具把网表转换为具体电路布线结构的实现。在制成物理器件之前,还可以用Verilog的门级模型(原语元件或UDP)来代替具体基本元件。因其逻辑功能和延时特性与真实的物理元件完全一致,所以在仿真工具的支持下能验证复杂数字系统物理结构的正确性,使投片的成功率达到100%。目前,这种称为高层次设计(high-level-design)的方法已被广泛采用。据统计,目前在美国硅谷约有90%以上的ASIC和FPGA已采用Verilog硬件描述语言方法进行设计。硬件描述语言的发展至今已有近30年的历史,并成功地应用于设计的各个阶段:建模、仿真、验证和综合等。到20世纪80年代,已出现了上百种硬件描述语言,并对设计自动化曾起到了极大的促进和推动作用。但是,这些语言一般各自面向特定的设计领域与层次,而且众多的语言使用户无所适从。因此急需一种面向设计的多领域、多层次、并得到普遍认同的标准硬件摧述语言。进入20世纪80年代后期,硬件描述语言向着标准化的方向发展。最终,VHDL和VerilogHDL语言适应了这种趋势的要求,先后成为IEEE标准。把硬件描述语言用于自动综合还只有10多年的历史。最近10多年来,用综合工具把可综合风格的HDL模块自动转换为具体电路发展非常迅速,大大地提高了复杂数字系统的设计生产率。在美国和日本等先进电子工业国,Verilog语言已成为设计数字系统的基础。本书第一部分将通过具体例子,由浅人深地帮助同学们学习:(1)Verilog的基本语法;(2)简单的可综合Verilog模块与逻辑电路的对应关系:(3)简单的Verilog测试模块和它的意义。书中第二部分将通过较复杂的设计实例,帮助同学们掌握:(I)如何编写复杂的多层次的可综合风格的VerilogHDL模块:(2)如何用可综合的Verilog模块构成一个可靠的复杂IP软核和固核模块;(3)如何借助于Verilog语言,并利用已有的虚拟行为模块对所设计的系统模块(由可综合的自主和商业IP模块组成)进行全面可靠的测试和验证(包括软/硬件协同测试的基本概念)
第 1 素 Verilog的基本知计111.2VerilogHDL的历史1.2.1什么是VerilogHDLVerilogHDL是硬件描述语言的一种,用于数字电子系统设计。该语言允许设计者进行各种级别的逻辑设计,进行数字逻辑系统的仿真验证、时序分析、逻辑综合。它是自前应用最广泛的一种硬件描述语言。据有关文献报道,目前在美国使用VerilagHDL进行设计的工程师大约有10多万人,全美国有200多所大学教授用Verilog硬件描述语言的设计方法。在我国台湾地区几乎所有著名大学的电子和计算机工程系都讲授Verilog有关的课程。1.2.2VerilogHDL的产生及发展VerilogHDL是在1983年由GDA(GateWayDesignAutomation)公司的PhilMoorby首创的。PhilMoorby后来成为Verilog-XL的主要设计者和Cadence公司(CadenceDesignSystem)的第一个合伙人。在1984至1985年,Moorby设计出了第一个名为Verilog-XL的仿真器;1986年,他对VerilogHDL的发展又作出了另一个巨大贡献,即提出了用于快速门级仿真的XL算法。随着Verilog-XL算法的成功,VerilogHDL语言得到迅速发展,1989年,Cadence公司收购了GDA公司,VerilogHDL语言成为Cadence公司的私有财产。199o年,Cadence公司决定公开VerilogHDL语言,于是成立了OVI(OpenVerilogInternational)组织来负责促进VerilogHDL语言的发展。基于VerilogHDL的优越性,IEEE于1995年制定了VerilogHDL的IEEE标准,即VerilogHDL1364-1995,2001年发布了VerilogHDL1364-2001标准;2005年SystemVerilog[EEE1800-2005标准的公布,更使得Verilog语言在综合、仿真验证和模块的重用等性能方面都有大幅度的提高。图1.1展示了Verilog的发展历史和未来。SystemVerilog IEEEI800-2005有关VerilogHDL的全部权利都移交给OVI(Open2005标准公开发表Vcrilog Intemational)1990Verilog HDLVerilog [EEE1364-20011990标准公开发表公开发表2001模拟和数字都适用的1989Cadence公司Verilog标准公开发表购买Verilog版权1999Verilog-XL20世纪VeriloglEEE1364-199580年代诞生标准公开发表1995图1.1VerilogHDL的发展历史和末来
12Verilog 数字或统计计教体(第 2 成)1.3Verilog HDL和 VHDL的比较VerilogHDL和VHDL都是用于逻辑设计的硬件描述语言,并且都已成为IEEE标准。VHDL是在1987年成为IEEE标准,VerilogHDL则在1995年才正式成为IEEE标准。之所以VHDL比VerilogHDL早成为IEEE标准,这是因为VHDL是由美国军方组织开发的,而VerilogHDL则是从一个普通的民间公司的私有财产转化而来,基于VerilogHDL的优越性,才成为IEEE标准,因而有更强的生命力。VHDL其英文全名为VHSICHardwareDescriptionLanguage,而VHSIC则是VeryHighSpeedIntegeratedCircuit的缩写词,意为甚高速集成电路,故VHDL其准确的中文译名为甚高速集成电路的硬件描述语言。VerilogHDL和VHDL作为描述硬件电路设计的语言,其共同的特点在于:能形式化地抽象表示电路的行为和结构;支持逻辑设计中层次与范围的描述;可借用高级语言的精巧结构来简化电路行为的描述;具有电路仿真与验证机制以保证设计的正确性,支持电路描述由高层到低层的综合转换:硬件描述与实现工艺无关(有关工艺参数可通过语言提供的属性包括进去):便于文档管理,易于理解和设计重用。但是VerilogHDL和VHDL又各有其自已的特点。由于VerilogHDL早在1983年就已推出,至今已有20多年的应用历史,因而VerilogHDL拥有更广泛的设计群体,成熟的资源也远比VHDL丰富。与VHDL相比VerilogHDL的最大优点是:它是一种非常容易掌握的硬件描述语言,只要有C语言的编程基础,通过20学时的学习,再加上一段实际操作,一般同学可在2~3个月内掌握这种设计方法的基本技术。而掌握VHDL设计技术就比较困难。这是因为VHDL不很直观,需要有Ada编程基础,般认为至少需要半年以上的专业培训,才能掌握VHDL的基本设计技术。2005年,SystemVerilogIEEE1800-2005标准公布以后,集成电路设计界普遍认为VerilogHDL将在10年内全面取代VHDL成为ASIC设计行业包揽设计、测试和验证功能的的唯一语言。图1.2所示的是VerilogHDL和VHDL建模能力的比较图,供读者参考。舒辣浆系统级算法级寄存器传输级逻辑门级VTTAL开关电路级图1,2VeriiogHDL与VHDL建模能力的比较2001年公布的VerilogIEEE1364一2001标准和2005年公布的SystemVerilogIEEE1800
13第 1 章 Verilog 的基本如识-2005标准,不但使Verilo多的可综合性能和系统仿真性能方面有大幅度的提高,而且在IP的重用方面(包括设计和验证模块的重用)也有重大的突破。因此,VerilogHDL不但作为学习HDL设计方法的入门和基础是比较合适的,而且对于ASIC设计专业人员而言,也是必须掌握的基本技术。学习掌握VerilogHDL建模、仿真、综合、重用和验证技术不仅可以使同学们对数字电路设计技术有更进一步的了解,而且可以为以后学习高级的行为综合,物理综合、IF设计和复杂系统设计和验证打下坚实的基础。1.4Verilog的应用情况和适用的设计近10多年以来,EDA界一直对在数字逻辑设计中究竞采用哪一种硬件描述语言争论不休。近二三年来,美国、日本和我国台湾地区电子设计界的情况已经清楚地表明,在高层次数字系统设计领域,Verilog已经取得压倒性的优势;在中国大陆,近二三年来,Verilog应用的比率已有显著的增加。据笔者了解,国内大多数集成电路设计公司都采用VerilogHDL。Veril-og是专门为复杂数字系统的设计仿真而开发的,本身就非常适合复杂数字逻辑电路和系统的仿真和综合。由于Verilog在其门级描述的底层,也就是在晶体管开关的描述方面比VHDL有更强的功能,所以,即使是VHDL的设计环境,在底层实质上也是由VerilogHDL描述的器件库所支持的。1998年通过的VerilogHDL新标准,把VerilogHDL-A并人VerilogHDL新标准,使其不仅支持数字逻辑电路的描述还支持模拟电路的描述,因此在混合信号的电路系统的设计中,它也有很广泛的应用。在深亚微米ASIC和高密度FPGA已成为电子设计主流的今天,Verilog的发展前景是非常远大的。2001年3月,VerilogIEEE1364-2001标准的公布,以及2005年10月SystemVerilogIEEE1800-2005标准的公布,使得Verilog语言在综合、仿真验证和IP模块重用等性能方面都有大幅度的提高,更加拓宽了Verilog的发展前景。作者本人的意见是:学习硬件描述语言的设计方法,则应首选VerilogHDL。Verilog适合系统级(system)、算法级(alogrithem)、寄存器传输级(RTL)、逻辑级(log)ic)、门级(gate)电路开关级(switch)设计,而SystemVerilog是Verilog语言的扩展和延伸,更适用于可重用的可综合IP和可重用的验证用IP设计,以及特大型(千万门级以上)基于IP的系统级设计和验证。1.5采用VerilogHDL设计复杂数字电路的优点1.5.1传统设计方法一一电路原理图输入法几十年前,当时所做的复杂数字逻辑电路及系统的设计规模比较小也比较简单,其中所用到的FPGA或ASIC设计工作往往只能采用厂家提供的专用电路图输人工具来进行。为了满足设计性能指标,工程师往往需要花好几天或更长的时间进行艰苦的手工布线。工程师还得非常热悉所选器件的内部结构和外部引线特点,才能达到设计要求。这种低水平的设计方法大大延长了设计周期。N