资料介绍
0 引 言
VHDL(Very High Speed Integrated CIRCUITHARDWARE DESCRIPTION Language)是IEEE工业标准硬件描述语言,是随着器件(PLD)的发展而发展起来的。它是一种面向设计、多层次的硬件描述语言,是集行为描述、RTL描述、门级描述功能为一体的语言,并已成为描述、验证和设计数字系统中最重要的标准语言之一。由于VHDL在语法和风格上类似于高级编程语言,可读性好,描述能力强,设计方法灵活,可移植性强,因此它已成为广大EDA工程师的首选。目前,使用VHDL语言进行CPLD/FPGA设计开发,Altera和LATTICE已经在开发软件方面提供了基于本公司芯片的强大。但由于VHDL设计是行为级设计,所带来的问题是设计者的设计思想与电路结构相脱节,而且其在设计思路和编程风格等方面也存在差异,这些差异会对系统综合后的电路整体性能产生重要的影响。
在VHDL语言电路优化设计当中,优化问题主要包括面积优化和速度优化。面积优化是指CPLD/FPGA的资源利用率优化,即用尽可能少的片内资源实现更多电路功能;速度优化是指设计系统满足一定的速度要求,即用更多的片内资源换取更快的处理速度,常用于视频信号采集系统和通信系统之中。面积优化和速度优化通常是一对矛盾,一般情况下,速度指标是首要的,在满足速度要求的前提下,尽可能实现面积优化。因此,本文结合在设计超声探伤数据采集卡过程中的CPLD编程经验,提出串行设计、防止不必要锁存器的产生、使用状态机简化电路描述、资源共享,利用E2PROM芯片节省片内资源等方法对VHDL电路进行优化。
1 VHDL电路优化设计的方法
优化设计是可编成逻辑设计的精华所在,如何节省所占用的面积、如何提高设计的性能是可编成逻辑设计的核心,这两点往往也成为一个设计甚至项目成败的关键因素。下面结合超声探伤数据采集卡设计过程中,并基于Altera公司的EPM7192 CPLD芯片的编程经历来论述VHDL电路的优化方法。
1.1 采用串行设计代替并行设计
串行设计是指把原来单个时钟周期内完成的并行操作的逻辑功能分割出来,提取相同的功能单元,在时间上分时复用这些功能单元,在满足系统速度要求的前提下,用多个时钟周期来完成单个时钟周期即可完成的功能。
根据项目的要求,超声探伤数据采集卡要有5个模拟通道,每隔125μs就会采集到330个点。如果等5个超声通道采样结束后再进行数据处理和传输,几乎是不可能满足该超声探伤系统的实时性要求,而且数据量也远远超过ARM板上总线接口的传输速率2 MB/s。对于这么高的实时性要求,最好的解决办法是在CPLD内部进行数据压缩,即边采集边压缩,以满足系统使用的ARM板的总线速率要求。经过系统*估,每个超声通道只需保留一个最大值即可满足系统的性能要求。在这里,通过在三个8位数A,B,C中找出最大值的例子来说明串行设计方法的优势,代码如下所示。
程序一是用并行方法设计,而程序二是采用串行方法设计。从表1的实验数据可见,采用串行方法以后,电路的优化效果比较明显。优化前,程序一需要消耗38个宏单元(Micro Cell),一个时钟周期即可完成找最大值操作;优化后,实现相同的逻辑功能程序二仅需要12个宏单元,但需要3个时钟周期才能完成一次运算,优化率达68.4%。值得注意的是,此方法是以速度换取资源的方法,只适用于对速度要求不高的系统。
1.2 防止不必要锁存器的产生
在VHDL设计中,使用语句不当也是导致电路复杂化的原因之一,这使得综合后的电路当中存在很多不必要的锁存器,降低电路的工作速度。因此,在设计一个逻辑电路时,设计人员应该避免由于VHDL使用习惯的问题,无意识地在电路中添加不必要的锁存器。由于IF或者CASE语句较容易引入锁存器,所以当语句的判断条件不能覆盖所有可能的输入值的时候,逻辑反馈就容易形成一个锁存器。当然,随着高级编译软件的出现,如QuartusⅡ7.2,这样的问题通过编译软件已经得到很好的解决。对一个设计人员而言,有意识地防止不必要锁存器的产生可以加快编译速度。
在超声探伤数据采集卡VHDL程序设计当中,涉及10 MHz系统时钟clk的同步D触发器的设计,即每当clk时钟信号的上升沿到来时,将输入信号in的值赋给输出信号out,代码如下所示。
通过对比,程序四比程序三只多了一条空语句,但这样做可有效防止综合器生成不必要锁存器,并提高电路的工作速度。
1.3 使用状态机简化电路描述
由于状态机的结构模式简单,有相对固定的设计模板,特别是VHDL支持定义符号化枚举类型状态,这就为VHDL综合器充分发挥其强大的优化功能提供了有利条件。因此采用状态机比较容易地设计出高性能的时序逻辑模块,在超声探伤数据采集卡的CPLD程序设计中,使用有限元状态机(FSM)设计CY7CA225 1K×16 b FIFO芯片的读写控制模块,并且达到很好的效果,逻辑转换图如图1所示。实践证明,实现相同的逻辑功能,使用状态机设计能使设计的电路得到更好的优化。
1.4 资源共享
资源共享的思想是通过使用数据缓冲器或多路选择器等方法来共享数据通道中占用资源较多的模块,如算法单元。通过共享电路单元模块可有效提高芯片内部资源的利用率,达到优化电路的目的。
下载该资料的人也在下载
下载该资料的人还在阅读
更多 >
- vhdl语言编写的9秒倒计时器资料下载
- 10种复杂电路的分析方法资料下载
- 4/5G协同优化方法的研究资料下载
- 几种查找电路板中地线的方法资料下载
- 使用VHDL实现数字电路设计的详细资料说明 15次下载
- 自动售货机的VHDL程序与仿真资料免费下载 18次下载
- 电子时钟VHDL的程序与仿真资料免费下载 36次下载
- TLC7524接口电路的VHDL程序与仿真免费下载 4次下载
- TLC5510的VHDL程序与仿真资料免费下载 13次下载
- DAC0832接口电路的VHDL程序与仿真免费下载 7次下载
- 使用FPGA实现LED控制的VHDL程序与仿真资料免费下载 12次下载
- 使用FPGA实现LCD控制的VHDL程序与仿真资料免费下载 10次下载
- CPSK调制的VHDL程序和仿真资料免费下载 8次下载
- 脉宽测量电路的VHDL源代码免费下载 3次下载
- VHDL硬件描述语言入门教程资料免费下载 43次下载
- Verilog与VHDL的比较 Verilog HDL编程技巧 259次阅读
- Verilog到VHDL转换的经验与技巧总结 2617次阅读
- 例说Verilog HDL和VHDL区别 3950次阅读
- MySQL性能优化方法 641次阅读
- 一些对OpenMP进行优化的方法 1771次阅读
- 如何在VHDL中解决综合工具使用转化问题 2666次阅读
- 探析常见的几种最优化方法 2731次阅读
- 基于VHDL的串行发送电路设计 2169次阅读
- vhdl和verilog的区别_vhdl和verilog哪个好? 12.3w次阅读
- vhdl20秒倒计时源代码介绍 7726次阅读
- 基于VHDL的电子计时器的设计方法详解 2.5w次阅读
- vhdl按键控制数码管显示 1.8w次阅读
- 开关控制数码管的VHDL程序的设计与实现 5515次阅读
- 详细图文剖析STM32单片机串口一键下载电路与操作方法 4.7w次阅读
- 8位移位寄存器vhdl代码 1.6w次阅读
下载排行
本周
- 1电子电路原理第七版PDF电子教材免费下载
- 0.00 MB | 1491次下载 | 免费
- 2单片机典型实例介绍
- 18.19 MB | 95次下载 | 1 积分
- 3S7-200PLC编程实例详细资料
- 1.17 MB | 27次下载 | 1 积分
- 4笔记本电脑主板的元件识别和讲解说明
- 4.28 MB | 18次下载 | 4 积分
- 5开关电源原理及各功能电路详解
- 0.38 MB | 11次下载 | 免费
- 6100W短波放大电路图
- 0.05 MB | 4次下载 | 3 积分
- 7基于单片机和 SG3525的程控开关电源设计
- 0.23 MB | 4次下载 | 免费
- 8基于AT89C2051/4051单片机编程器的实验
- 0.11 MB | 4次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234313次下载 | 免费
- 2PADS 9.0 2009最新版 -下载
- 0.00 MB | 66304次下载 | 免费
- 3protel99下载protel99软件下载(中文版)
- 0.00 MB | 51209次下载 | 免费
- 4LabView 8.0 专业版下载 (3CD完整版)
- 0.00 MB | 51043次下载 | 免费
- 5555集成电路应用800例(新编版)
- 0.00 MB | 33562次下载 | 免费
- 6接口电路图大全
- 未知 | 30320次下载 | 免费
- 7Multisim 10下载Multisim 10 中文版
- 0.00 MB | 28588次下载 | 免费
- 8开关电源设计实例指南
- 未知 | 21539次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935053次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537793次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420026次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234313次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191183次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183277次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138039次下载 | 免费
评论
查看更多