欢迎来到天天文库
浏览记录
ID:23298038
大小:295.00 KB
页数:35页
时间:2018-11-06
《大规模集成电路硬件描述语言vhdl》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、第五章大规模集成电路硬件描述语言(VHDL)80年代以来,采用计算机辅助设计CAD技术设计硬件电路在全世界范围得到了普及和应用。一开始,仅用CAD来实现印刷板的布线,以后才慢慢实现了插件板级规模的设计和仿真,其中最具代表性的设计工具是OrCad和Tango,它们的出现使电子电路设计和印刷板布线工艺实现了自动化。但这种设计方法就其本身而言仍是自下而上的设计方法,即利用已有的逻辑器件来构成硬件电路,它没有脱离传统的硬件设计思路。随着集成电路规模与复杂度的进一步提高,特别是大规模、超大规模集成电路的系统集成,使得
2、电路设计不断向高层次的模块式的设计方向发展,原有的电原理图输入方式显得不够严谨规范,过多的图纸和底层细节不利于从总体上把握和交流设计思想;再者,自下而上的设计方法使仿真和调试通常只能在系统硬件设计后期才能进行,因而系统设计时存在的问题只有在后期才能较容易发现,这样,一旦系统设计存在较大缺陷,就有可能要重新设计系统,使得设计周期大大增加。基于以上电原理图输入方式的缺陷,为了提高开发效率,增加已有成果的可继承性并缩短开发时间,大规模专用集成电路ASIC研制和生产厂家相继开发了用于各自目的的硬件描述语言。其中最具
3、代表性的就是美国国防部开发的VHDL语言和Verilog公司开发的VerilogHDL以及日本电子工业振兴协会开发的UDL/I语言。1987年12月10日,IEEE标准化组织发布IEEE标准的VHDL,定为IEEEStdl076—1987标准(该标准是从1983年8月美国空军支持并开发的VHDL7.2版发展而来)。这使得VHDL成为唯一被IEEE标准化的HDL语言,这标志着VHDL被电子系统设计行业普遍接收并推广为标准的HDL语言。许多公司因而纷纷使自己的开发工具与VHDL兼容。由此可见,使用VHDL语言来
4、设计数字系统在一定程度上是电子设计技术的大势所趋。利用VHDL设计硬件电路的优点是:1)设计技术齐全、方法灵活、支持广泛VHDL语言可以支持自上而下和基于库的设计方法,还支持同步电路、异步电路、FPGA以及其他随机电路的设计。目前大多数EDA工具几乎在不同程度上都支持VHDL语言。这给VHDL语言进一步推广和应用创造了良好的环境。2)系统硬件描述能力强VHDL具有多层次描述系统硬件功能的能力,可以从系统的数学模型直到门级电路。833)VHDL语言可以与工艺无关编程VHDL设计硬件系统时,可以编写与工艺有关的
5、信息。但是,与大多数HDL语言不同的是,当门级或门级以上层次的描述通过仿真验证后,可以用相应的工具将设计映射成不同的工艺(如MOS,CMOS等)。这样,工艺更新时,就无须修改程序,只须修改相应的映射工具即可。所以,在VHDL中,电路设计的编程可以与工艺相互独立。4)VHDL语言标准、规范,易于共享和复用VHDL语言的语法较严格,给阅读和使用都带来了极大的好处。再者,VHDL作为一种工业标准,设计成果便于复用和交流,反过来也能进一步推动VHDL语言的推广和普及。§5-1VHDL程序的基本结构一个完整的VHDL
6、语言程序通常包含实体(Entity),结构体(Architecture),配置(Configuration),包(package)和库(Library)5个部分。前四种是可分别编译的源设计单元。库存放已编译的实体、结构体、配置和包。实体用于描述系统内部的结构和行为;包存放各设计模块都能共享的数据类型、常数和子程序等;配置用于从库中选取所需单元来支持系统的不同设计,即对库的使用;库可由用户生成或ASIC芯片制造商提供,以便共享。本章将对上述5部分作一详细介绍。§5-1-1VHDL程序的基本单元与构成VHDL程
7、序的基本单元是设计实体和结构体,它对应于硬件电路中的某个基本模块。该模块可以是一个门,也可以是一个微处理器,甚至整个系统。但无论是简单的还是复杂的数字电路,VHDL程序的基本构成都是一样的,都由实体和结构体构成。实体描述模块的对外端口,结构体描述模块的内部情况即模块的行为和结构。例1是一个如图5-1所示半加器的VHDL描述。--TheentitydeclarationentityHalf_adderisport(XHalf_SumX:inBit;YadderCarryY:inBit;Sum:outBit;C
8、arry:outBit);图5-1半加器endHalf_adder;83--Thearchitecturebody:architectureBehavioral_descriptionofHalf_adderisbeginprocessbeginSum<=XxorYafter5Ns;Carry<=XandYafter5Ns;waitonX,Y;endprocess;endBehavioral_descriptio
此文档下载收益归作者所有