当前位置:首页 > 嵌入式 > 嵌入式教程
[导读]VHDL语言在FPGA/CPLD开发中的应用?

【摘 要】 通过设计实例详细介绍了用VHDL(VHSIC Hardware DescriptionLanguage)语言开发FPGACPLD的方法,以及与电路图输入和其它HDL语言相比,使用VHDL语言的优越性。
     关键词:VHDL,FPGA/CPLD,EDA

1 引 言
  EDA(电子设计自动化)关键技术之一是采用硬件描述语言(HDL)描述电路系统,包括电路结构、行为方式、逻辑功能以及接口。就FPGA和CPLD(分别是现场可编程门阵列和复杂可编程逻辑器件的简称)开发来说,比较流行的HDL主要有VHDL、ABEL-HDL、AHDL等,其中,VHDL对系统的行为描述能力最强,已被IEEE确定为标准HDL,并得到目前所有流行EDA软件的支持,进而成为系统设计领域最佳的硬件描述语言。用VHDL设计电路系统,可以把任何复杂的电路系统视为一个模块,对应一个设计实体。在VHDL层次化设计中,它所设计的模块既可以是顶层实体,又可以是较低层实体,但对不同层次模块应选择不同的描述方法(如行为描述或结构描述)。本文在设计实例中详细介绍了用VHDL语言开发FPGA/CPLD的方法,以及与电路图输入和其它HDL语言相比,使用VHDL语言的优越性。
2 设计实例
  一个复杂电路系统的设计都是采用自顶向下将系统按功能逐层分割的层次化设计方法。在顶层设计中,要对内部各功能块的连接关系和对外的接口关系进行描述,而功能块实际的逻辑功能和具体的实现形式则由下一层模块来描述。在系统的底层设
计中,如采用VHDL进行描述,由于其对系统很强的行为描述能力,可以不必使系统层层细化,从而避开具体的器件结构,从逻辑行为上直接对模块进行描述和设计,之后,EDA软件中的VHDL综合器将自动将程序综合成为具体FPGA/CPLD等目标芯片的网表文件,无疑可使设计大为简化。下面以数字钟的设计为例予以说明。
    数字钟的功能主要有:
  ·能够对秒、分、小时进行计时(按每日24小时计时制)。
    ·秒、分、小时位能够调整。

  根据数字钟的功能要求,可将数字钟分为四个功能块:秒脉冲发生器、计数器、校时器和显示电路。而这些功能块又可进一步分割为更小的模块,如计数器模块可再分为秒、分、小时计数器。其它功能块的细化过程不再详述,数字钟的系统框图如图1所示。图中,P1键为自动计时、校时、校分和校秒四种工作状态选择键,P2键为系统处于校时状态时对时、分、秒进行校准的校时键,32.768kHz为作为脉冲源的晶振频率,经14级2分频器分频在其最高位、次高位以及第五位输出端分别可获得1Hz、2Hz和1024Hz的脉冲信号,这三个脉冲信号分别用作计时脉冲、校时脉冲和显示电路的扫描时钟。下面用VHDL语言设计底层的小时计数器。小时计数器为一个24进制BCD码计数器,其模块示意图如图2所示。reset、clk分别为异步清零端和时钟端,qb和qa分别为十位和个位的四位BCD码输出端。该模块计数方式的实现比较复杂,当十位数为0或1时,个位进行10进制计数,当十位数为2时,个位进行4进制计数。如用电路图描述,则必须选择和调用若干门、触发器或宏单元,并需对所调用的器件进行合适的控制。而若采用VHDL语言对其功能进行描述,问题则显得非常简单。

 


  下面是用VHDL语言设计的24进制BCD码计数器count24模块∶
  ENTITY count24 IS

[!--empirenews.page--]
END counr24—arc;
    上述程序中由语句ENTITY与ENDcount24包含的部分称为程序的实体,它的电路意义就相当于器件的外部接口,在电路图上相当于一个元件符号。该实体是一个完整、独立的语言模块,它描述了coun t24的接口信息,定义了count24的端口引脚clk、reset、qa、qb的输入、输出性质及其数据类型;由语句ARCHITECTURE开始,到END count24arc结束为结构体层次,结构体层次用于描述count24内部的逻辑功能,在电路上相当于器件的内部电路结构。描述逻辑功能的具体做法是,在结构体的进程区内,通过定义两个整型中间变量cntb、cnta分别表示十位和个位,之后用IF语句说明当时钟到来时,这两个变量的计数和进位情况,当进程结束后,再将这两个中间变量分别赋给输出变量qb和qa。整个程序不长,逻辑描述十分简洁、明了。
  上述程序输入完成后,首先要经EDA软件进行编译,本设计采用的是美国Altera公司的MAX+PLUS2II软件,经该软件中的Compiler编译器编译后,若有任何信息、错误和警告,都将在VHDL编译器窗口上提示,设计者可根据提示对设计进行修改。当编译通过时,建网表、逻辑综合、适配、划分、时域分析、装配等均已自动完成,并生成多个后续工作要用的文件。编译的成功表明已为所设计的项目建立了一个编程文件,但还不能保证该设计在各种可能的情况下都有正确的响应,因而编译通过后,还必须用MAX+PLUSII的Simulator仿真器和Timing Analyzer工具分别进行功能仿真和时序仿真,以验证设计是否完全符合要求,若发现有问题,则必须返回原设计进行修改。上述模块经功能仿真和时序仿真都没有发现任何问题。图3所示即为上述模块的仿真波形。该模块设计完成后存档,待建立顶层文件时调用。
  接下来再用VHDL语言对底层中其它所有模块一一进行设计,这包括:秒、分计数器(均为60进制计数器)、14级2分频器、24选4数据选择器、BCD七段译码器、节拍发生器等。所有程序均经MAX+PLUS2II软件的编译和仿真。当模块设计完成后均要存档,待建立顶层文件时调用。
  除底层模块外,其它各层次模块(包括顶层)也都适于用VHDL语言描述。只是应选择不同的描述方法而已。当底层中所有模块均设计完成后,采用VHDL语言中的结构描述法,用元件调用语句调用底层各模块并进行连接,即可建立数字钟的顶层文件。数字钟的顶层文件也必须经过EDA软件的编译和仿真,在此过程中,如有需要,还可随时打开查看并修改任一层次的设计。当最后确认设计完全符合设计要求时,再将编译后的顶层文件下载到目标芯片PFGA/CPLD中。
  综上所述,整个系统各层次模块均采用VHDL语言描述,其优点主要有下述三个方面∶(1)能进行系统级的行为描述,从逻辑行为上对模块进行描述和设计,大大降低了设计难度。(2)描述的设计思想、电路结构和逻辑关系清晰明了,便于存档、查看、维护和修改。(3)支持大规模设计的分解和已有设计的再利用。
  仅上述这三个优点,就是电路图输入和其它HDL语言所不能实现的。

3 结束语
  集成电路规模越是庞大,VHDL语言的优越性就越显突出。目前,数百万门规模的FPGACPLD已进入实用,VHDL强大的系统描述能力、规范的程序设计结构和灵活的语句表达风格使其必将担负起大系统设计的几乎全部设计任务。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭