Electronics 版 (精华区)

发信人: ciel (幻化成风), 信区: Electronics
标  题: Verilog基本知识
发信站: 哈工大紫丁香 (2003年12月16日20:48:56 星期二), 站内信件

Verilog系列书面讲座  北京航空航天大学EDA实验室  夏宇闻教授

硬件描述语言HDL 

硬件描述语言(HDL)是一种用形式化方法来描述数字电路和系统的语言。数字电路系统的设
计者利用这种语言可以从上层到下层(从抽象到具体)逐层描述自己的设计思想,用一系列
分层次的模块来表示极其复杂的数字系统。然后利用电子设计自动化(EDA)工具逐层进行仿
真验证,再把其中需要变为具体实际电路的模块组合经由自动综合工具转换到门级电路网
表。接下去再用专用集成电路(ASIC)或现场可编程门阵列(FPGA)自动布局布线工具把网表
转换为具体电路布线结构的实现。在制成物理器件之前,还可以用Verilog的门级模型(原
语元件或UDP)来代替具体基本元件。因其逻辑功能和延时特性与真实的物理元件完全一致
,所以在仿真工具的支持下能验证复杂数字系统物理结构的正确性,使投片的成功率达到
100%。目前,这种称之为高层次设计(High-Level-Design)的方法已被广泛采用。据统计,
目前在美国硅谷约有90%以上的ASIC和FPGA已采用硬件描述语言方法进行设计。 

硬件描述语言的发展至今已有二十多年的历史,并成功地应用于设计的各个阶段:建模、
仿真、验证 和综合等。到80年代时,已出现了上百种硬件描述语言,它们对设计自动化曾
起到了极大的促进和推动作用。但是,这些语言一般各自面向特定的设计领域与层次,而
且众多的语言使用户无所适从。因此急需一种面向设计的多领域、多层次、并得到普遍认
同的标准硬件描述语言。进入80年代后期,硬件描述语言向着标准化的方向发展。最终,V
HDL和Verilog HDL语言适应了这种趋势的要求,先后成为IEEE标准。把硬件描述语言用于
自动综合还只有近十年的历史。最近五六年来,用综合工具把可综合风格的HDL模块自动转
换为具体电路发展非常迅速,大大地提高了复杂数字系统的设计生产率。在美国和日本等
先进电子工业国,Verilog语言已成为设计数字系统的基础。本讲座将通过设计实例由浅入
深地帮助读者们学习和掌握:1)如何来编写各种层次可综合风格的Verilog HDL模块;2)如
何用可综合的Verilog模块构成一个可靠的复杂IP软核和固核模块;3)如何借助于Verilog
语言,并利用已有的虚拟模块对所设计的系统模块(由可综合的自主和商业IP模块组成)进
行全面可靠的测试。 

Verilog HDL回顾 

Verilog HDL是硬件描述语言的一种,用于数字电子系统设计。它允许设计者用它来进行各
种级别的逻辑设计,可以用它进行数字逻辑系统的仿真验证、时序分析、逻辑综合。它是
目前应用最广泛的一种硬件描述语言。据有关文献报道,目前在美国使用Verilog HDL进行
设计的工程师大约有10多万人,全美国有200多所大学教授用 Verilog 硬件描述语言的设
计方法。在我国台湾地区几乎所有著名大学的电子和计算机工程系都讲授Verilog有关的课
程。 

Verilog HDL的产生及发展 

Verilog HDL是在1983年,由GDA(GateWay Design Automation)公司的Phil Moorby首创的
。Phil Moorby后来成为Verilog-XL的主要设计者和Cadence公司(Cadence Design System)
的第一个合伙人。在1984-1985年,Moorby设计出了第一个名为Verilog-XL的仿真器,1986
年,他对Verilog HDL的发展又作出了另一个巨大贡献:即提出了用于快速门级仿真的XL算
法。 

随着Verilog-XL算法的成功,Verilog HDL语言得到迅速发展。1989年,Cadence公司收购
了GDA公司,Verilog HDL语言成为Cadence公司的私有财产。1990年,Cadence公司决定公
开Verilog HDL语言,于是成立了OVI(Open Verilog International)组织来负责促进Veril
og HDL语言的发展。基于Verilog HDL的优越性,IEEE于1995年制定了Verilog HDL的IEEE
标准,即Verilog HDL1364-1995,2001年发布了Verilog HDL1364-2001标准。图1-1示出Ve
rilog的发展历史和将来。 

Verilog HDL和 VHDL的比较 

Verilog HDL和HDL都是用于逻辑设计的硬件描述语言,并且都已成为IEEE标准。VHDL是在1
987年成为IEEE标准,Verilog HDL则在1995年才正式成为IEEE标准。之所以VHDL比Verilog
 HDL早成为IEEE标准,这是因为VHDL是美国军方组织开发的,而Verilog HDL 则是从一个
普通的民间公司的私有财产转化而来,基于Verilog HDL的优越性,才成为的IEEE标准,因
而有更强的生命力。 

VHDL 其英文全名为VHSIC Hardware Description Language,而VHSIC则是Very High 
Speed Integerated Circuit的缩写词,意为甚高速集成电路,故VHDL其准确的中文译名为
甚高速集成电路的硬件描述语言。 

Verilog HDL和VHDL作为描述硬件电路设计的语言,其共同的特点在于:能形式化地抽象表
示电路的行为和结构、支持逻辑设计中层次与范围的描述、可借用高级语言的精巧结构来
简化电路行为的描述、具有电路仿真与验证机制以保证设计的正确性、支持电路描述由高
层到低层的综合转换、硬件描述与实现工艺无关(有关工艺参数可通过语言提供的属性包括
进去)、便于文档管理、易于理解和设计重用。 

但是Verilog HDL和VHDL又各有其自己的特点。由于Verilog HDL早在1983年就已推出,至
今已有近二十年的应用历史,因而Verilog HDL拥有更广泛的设计群体,成熟的资源也远比
VHDL丰富。与VHDL相比Verilog HDL的最大优点是:它是一种非常容易掌握的硬件描述语言
,只要有C语言的编程基础,通过二十学时的学习,再加上一段实际操作,一般读者可在二
至三个月内掌握这种设计技术。而掌握VHDL设计技术就比较困难。这是因为VHDL不很直观
,需要有Ada编程基础,一般认为至少需要半年以上的专业培训,才能掌握VHDL的基本设计
技术。目前版本的Verilog HDL和VHDL在行为级抽象建模的覆盖范围方面也有所不同。一般
认为Verilog HDL在系统级抽象方面比VHDL略差一些,而在门级开关电路描述方面比VHDL强
得多。图1-2是Verilog HDL和VHDL建模能力的比较图示供读者参考。 

但这两种语言也是在不断的完善过程中,去年公布的IEEE Verilog2001标准,使Verilog在
系统级和可综合性能方面都有大幅度的提高。因此Verilog HDL作为学习HDL设计方法的入
门和基础是比较合适的。学习掌握Verilog HDL建模、仿真和综合技术不仅可以使读者对数
字电路设计技术有更进一步的了解,而且可以为以后学习高级的行为综合和物理综合打下
坚实的基础。

Verilog应用情况和适用的设计 

近十年以来,EDA界一直对在数字逻辑设计中究竟采用哪一种硬件描述语言争论不休,目前
的情况是两者各有千秋。在美国,高层次数字系统设计领域Verilog和VHDL的应用比率是80
%和20%;日本和我国台湾省与美国相同;而在欧洲VHDL发展得比较好。在中国大陆,由
于Verilog和VHDL的使用才开始两到三年,应用比率还没有具体统计。根据笔者了解,国内
大多数集成电路设计公司都采用Verilog。Verilog是专门为复杂数字系统的设计仿真而开
发的,本身就非常适合复杂数字逻辑电路和系统的仿真和综合。由于Verilog 在其门级描
述的底层,也就是在晶体管开关的描述方面比VHDL有强得多的功能,所以即使是VHDL的设
计环境,在底层实质上也是由Verilog HDL描述的器件库所支持的。 1998年通过的Verilog
 HDL新标准,把Verilog HDL-A并入Verilog HDL新标准,使其不仅支持数字逻辑电路的描
述还支持模拟电路的描述,因此在混合信号的电路系统的设计中,它会有更广泛的应用。
在深亚微米ASIC和高密度FPGA已成为电子设计主流的今天,Verilog的发展前景是非常远大
的。2001年三月,Verilog IEEE1364-2001标准的公布,使得Verilog语言在综合和仿真性
能方面都有很大的提高,更加证明了Verilog的发展前景。笔者意见是:若要推广采用硬件
描述语言的设计方法,则应首先从推广Verilog HDL开始,然后再推广VHDL。 

Verilog较为适合系统级(System)、算法级(Alogrithem)、寄存器传输级(RTL)、逻辑级(Lo
gic)、门级(Gate)、电路开关级(Switch)设计,而对于特大型(千万门级以上)的系统级(Sy
stem)设计,则VHDL更为适合,由于这两种HDL语言还在不断地发展过程中,它们都会逐步地
完善自己。

Verilog HDL设计复杂数字电路的优势 

传统电路原理图输入法 

几十年前,当时所做的复杂数字逻辑电路及系统的设计规模比较小也比较简单,其中所用
到的FPGA或ASIC设计工作往往只能采用厂家提供的专用电路图输入工具来进行。为了满足
设计性能指标,工程师往往需要花好几天或更长的时间进行艰苦的手工布线。工程师还得
非常熟悉所选器件的内部结构和外部引线特点,才能达到设计要求。这种低水平的设计方
法大大延长了设计周期。 

近年来,FPGA和ASIC的设计在规模和复杂度方面不断取得进展,而对逻辑电路及系统的设
计的时间要求却越来越短。这些因素促使设计人员采用高水准的设计工具,如:硬件描述
语言(Verilog HDL或VHDL)来进行设计。 

Verilog HDL与传统电路原理图输入法的比较 

如前所述,采用电路原理图输入法进行设计,具有设计的周期长,需要专门的设计工具,
需手工布线等缺陷。而采用Verilog 输入法时,由于Verilog HDL的标准化,可以很容易地
把完成的设计移植到不同的厂家的不同的芯片中去,并在不同规模应用时可以较容易地作
修改。这不仅是因为用Verilog HDL所完成的设计,它的信号位数是很容易改变的,可以很
容易地对它进行修改,来适应不同规模的应用,在仿真验证时,仿真测试矢量还可以用同
一种描述语言来完成,而且还因为采用Verilog HDL综合器生成的数字逻辑是一种标准的电
子设计互换格式(EDIF)文件,独立于所采用的实现工艺。 有关工艺参数的描述可以通过 
Verilog HDL提供的属性包括进去,然后利用不同厂家的布局布线工具,在不同工艺的芯片
上实现。 

采用Verilog 输入法最大的优点是其与工艺无关性。这使得工程师在功能设计、逻辑验证
阶段,可以不必过多考虑门级及工艺实现的具体细节,只需要利用系统设计时对芯片的要
求,施加不同的约束条件,即可设计出实际电路。实际上这是利用了计算机的巨大能力在E
DA工具的帮助下,把逻辑验证与具体工艺库匹配、布线及时延计算分成不同的阶段来实现
从而减轻了人们的繁琐劳动。 

Verilog 标准化与软核重用 

Verilog 是在1983年由GATEWAY公司首先开发成功的,经过诸多改进,于1995年11月正式被
批准为Verilog IEEE1364-1995标准,2001年3月在原标准的基础上经过改进和补充又推出V
erilog IEEE1364-2001新标准。

Verilog HDL的标准化大大加快了Verilog HDL的推广和发展。由于Verilog HDL设计方法的
与工艺无关性,因而大大提高了Verilog模型的可重用性。功能经过验证的、可综合的、实
现后电路结构总门数在5000门以上的Verilog HDL模型称之为“软核”(Soft Core)。而把
由软核构成的器件称为虚拟器件,在新电路的研制过程中,软核和虚拟器件可以很容易地借
助EDA综合工具与其它外部逻辑结合为一体。这样,软核和虚拟器件的重用性就可大大缩短
设计周期,加快了复杂电路的设计。目前国际上有一个叫作虚拟接口联盟的组织(Virtual 
Socket Interface Alliance)来协调这方面的工作。 

软核、固核和硬核的概念以及重用 

上一节中介绍了软核的概念,下面再介绍一下固核(Firm Core)和硬核(Hard Core)的概念
。在某一种现场可编程门阵列(FPGA)器件上实现的,经验证是正确的总门数在5000门以上
电路结构编码文件,称之为“固核”。在某一种专用集成电路(ASIC)器件上实现的经验证
是正确的总门数在5000门以上的电路结构版图掩膜,称之为“硬核”。 
显而易见,在具体实现手段和工艺技术尚未确定的逻辑设计阶段,软核具有最大的灵活性
,它可以很容易地借助EDA综合工具与其它外部逻辑结合为一体。当然,由于实现技术的不
确定性,有可能要作一些改动以适应相应的工艺。相比之下固核和硬核与其它外部逻辑结
合为一体的灵活性要差得多,特别是电路实现工艺技术改变时更是如此。而近年来电路实
现工艺技术的发展是相当迅速的,为了逻辑电路设计成果的积累,和更快更好地设计更大
规模的电路,发展软核的设计和推广软核的重用技术是非常有必要的。新一代的数字逻辑
电路设计师必须掌握这方面的知识和技术。 

Verilog HDL设计流程简介 

自顶向下(Top-Down)设计的基本概念 

现代集成电路制造工艺技术的改进,使得在一个芯片上集成数十万乃至数千万个器件成为
可能。但很难设想仅由一个设计师独立设计如此大规模的电路而不出现错误。利用层次化
、结构化的设计方法,一个完整的硬件设计任务首先由总设计师(Architect)划分为若干个
可操作的模块,编制出相应的模型(行为的或结构的),通过仿真加以验证后,再把这些模
块分配给下一层的设计师。这就允许多个设计者同时设计一个硬件系统中的不同模块,其
中每个设计者负责自己所承担的部分;而由上一层设计师对其下层设计者完成的设计用行
为级上层模块对其所做的设计进行验证。为了提高设计质量,如果其中有一部分模块可由
商业渠道得到,可以购买它们的知识产权的使用权(IP核的重用),以节省时间和开发经费
。图1-3为自顶向下(TOP-DOWN)的示意图,以设计树的形式绘出。 

自顶向下的设计(即TOP-DOWN设计)是从系统级开始,把系统划分为基本单元,然后再把每
个基本单元划分为下一层次的基本单元,一直这样做下去,直到可以直接用EDA元件库中的
基本元件来实现为止。

对于设计开发整机电子产品的单位和个人来说,新产品的开发总是从系统设计入手,先进
行方案的总体论证、功能描述、任务和指标的分配。随着系统变得复杂和庞大,特别需要
在样机问世之前,对产品的全貌有一定的预见性。目前,EDA技术的发展使得设计师有可能
实现真正的自顶向下的设计。 

层次管理的基本概念 

复杂数字逻辑电路和系统的层次化、结构化设计隐含着对系统硬件设计方案的逐次分解。
在设计过程中的任意层次,至少得有一种形式来描述硬件。硬件的描述特别是行为描述通
常称为行为建模。在集成电路设计的每一层次,硬件可以分为一些模块,该层次的硬件结
构由这些模块的互连描述,该层次的硬件的行为由这些模块的行为描述。这些模块称为该
层次的基本单元。而该层次的基本单元又由下一层次的基本单元互连而成。如此下去,完
整的硬件设计就可以由图1-3所示的设计树描述。在这个设计树上,节点对应着该层次上基
本单元的行为描述,树枝对应着基本单元的结构分解。在不同的层次都可以进行仿真以对
设计思想进行验证。EDA工具提供了有效的手段来管理错综复杂的层次,即可以很方便地查
看某一层次某模块的源代码或电路图以改正仿真时发现的错误。 

具体模块设计编译和仿真过程 

在不同的层次做具体模块的设计所用的方法也有所不同,在高层次上往往编写一些行为级
的模块通过仿真加以验证,其主要目的是系统性能的总体考虑和各模块的指标分配,并非
具体电路的实现。因而综合及其以后的步骤往往不需进行。而当设计的层次比较接近底层
时,行为描述往往需要用电路逻辑来实现。这时的模块不仅需要通过仿真加以验证,还需
进行综合、优化、布线和后仿真。总之具体电路是从底向上逐步实现的。EDA工具往往不仅
支持HDL描述也支持电路图输入,有效地利用这两种方法是提高设计效率的办法之一。图1-4
的流程图简要地说明了模块的编译和测试过程: 

可以看出,模块设计流程主要由两大主要功能部分组成: 
1) 设计开发:即从编写设计文件→综合到布局布线→投片生产这样一系列步骤。 
2) 设计验证:也就是进行各种仿真的一系列步骤,如果在仿真过程中发现问题就返回设计
输入进行修改。 

优化、映象、和布局布线 

由于各种ASIC和FPFA器件的工艺各不相同,因而当用不同厂家的不同器件来实现已验证的
逻辑网表(EDIF文件)时,就需要不同的基本单元库与布线延迟模型与之对应才能进行准确
的优化、映象、和布局布线。基本单元库与布线延迟模型由熟悉本厂工艺的工程师提供,
再由EDA厂商的工程师编入相应的处理程序,而逻辑电路设计师只需用一文件说明所用的工
艺器件和约束条件,EDA工具就会自动地根据这一文件选择相应的库和模型进行准确的处理
从而大大提高设计效率。 

结语 

采用Verilog HDL设计方法比采用电路图输入的方法更有优越性,这就是为什么美国等先进
工业国家在进入九十年代以后纷纷采用HDL设计方法的原因。在两种符合IEEE标准的硬件描
述语言中,Verilog HDL与VHDL相比更加基础、更易学习,掌握HDL设计方法应从学习Veril
og HDL设计方法开始。Verilog HDL可用于复杂数字逻辑电路和系统的总体仿真、子系统仿
真和具体电路综合等各个设计阶段。 

由于TOP-DOWN的设计方法是首先从系统设计入手,从顶层进行功能划分和结构设计。系统
的总体仿真是顶层进行功能划分的重要环节,这时的设计是与工艺无关的。由于设计的主
要仿真和调试过程是在高层次完成的所以能够早期发现结构设计上的错误,避免设计工作
的浪费,同时也减少了逻辑仿真的工作量。自顶向下的设计方法方便了从系统级划分和管
理整个项目,使得几十万门甚至几千万门规模的复杂数字电路的设计成为可能,并可减少
设计人员,避免不必要的重复设计,提高了设计的一次成功率。 

从底向上的设计在某种意义上讲可以看作上述TOP-DOWN设计的逆过程。虽然设计也是从系
统级开始,即从设计树的树根开始对设计进行逐次划分,但划分时首先考虑的是单元是否
存在,即设计划分过程必须从存在的基本单元出发,设计树最末枝上的单元要么是已经制
造出的单元,要么是其它项目已开发好的单元或者是可外购得到的单元。 
自顶向下的设计过程中在每一层次划分时都要对某些目标作优化,TOP-DOWN的设计过程是
理想的设计过程,它的缺点是得到的最小单元不标准,制造成本可能很高。从底向上的设
计过程全采用标准基本单元,通常比较经济,但有时可能不能满足一些特定的指标要求。
复杂数字逻辑电路和系统的设计过程通常是这两种设计方法的结合,设计时需要考虑多个
目标的综合平衡。

--
※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 202.118.228.216]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:210.008毫秒