DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 268|回复: 0
打印 上一主题 下一主题

VHDL语言在FPGA/CPLD开发中的应用

[复制链接]
跳转到指定楼层
楼主
发表于 2012-1-27 14:31:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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语言对其功能进行描述,问题则显得非常简单。
 
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2025-8-18 21:39 , 耗时 0.078327 秒, 18 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表