华泰保险与腾讯达成战略合作
06-17
VHDL(超高速集成电路硬件描述语言)是随着可编程逻辑器件(PLD)的发展而发展起来的IEEE工业标准硬件描述语言。
它是一种面向设计的、多层次的硬件描述语言,集成了行为描述、RTL描述和门级描述功能。
它已成为描述、验证和设计数字系统最重要的标准语言之一。
由于VHDL在语法和风格上与高级编程语言相似,可读性好、描述能力强、设计方法灵活、可移植性强,因此成为广大EDA工程师的首选。
目前CPLD/FPGA设计开发采用VHDL语言,Al??tera和Lattice在开发软件方面基于该公司芯片提供了强大的开发工具。
然而,由于VHDL设计是行为级设计,因此存在的问题是设计者的设计思想与电路结构脱节,设计思想和编程风格也存在差异。
这些差异会影响系统综合后的整体电路。
对性能有重要影响。
在VHDL语言电路优化设计中,优化问题主要包括面积优化和速度优化。
面积优化是指CPLD/FPGA的资源利用优化,即使用尽可能少的片内资源来实现更多的电路功能;速度优化是指设计系统以满足一定的速度要求,即使用更多的片上资源来换取更多的电路功能。
处理速度快,常用于视频信号采集系统和通信系统。
面积优化和速度优化通常是一对矛盾。
一般来说,速度指示器是主要的。
在满足速度要求的前提下,应尽可能实现区域优化。
因此,本文结合超声波探伤数据采集卡设计过程中的CPLD编程经验,提出串行设计,防止不必要锁存器的产生,使用状态机简化电路描述,资源共享,使用E2PROM芯片节省-芯片资源等。
优化VHDL电路的方法。
1 VHDL电路优化设计方法 优化设计是可编程逻辑设计的本质。
如何节省占用面积、提高设计性能是可编程逻辑设计的核心。

这两点往往也成为了一个设计甚至一个项目成败的关键因素。
下面结合超声波探伤数据采集卡的设计流程,结合Altera公司EPM CPLD芯片的编程经验,讨论VHDL电路的优化方法。
1.1 使用串行设计代替并行设计 串行设计是指将单个时钟周期内完成的并行运算的逻辑功能进行划分,提取出相同的功能单元,并在时间上复用这些功能单元,前提是为了满足系统速度要求,使用多个时钟周期来完成单个时钟周期内可以完成的功能。
根据项目要求,超声波探伤数据采集卡必须有5个模拟通道,每μs采集点。
如果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)设计CY7CA1K×16b FIFO芯片的读写控制模块,并取得了很好的效果,逻辑变换图如图1所示。
实践证明,在实现相同的逻辑功能的情况下,采用状态机设计,可以更好地优化所设计的电路。
1.4 资源共享 资源共享的思想是通过数据缓冲区或多路复用器等方法来共享数据通道中占用资源较多的模块,例如算法单元。
共享电路单元模块可以有效提高芯片内部资源的利用率,达到优化电路的目的。
1.5 使用E2PROM芯片节省片上资源 在使用VHDL进行项目开发过程中,经常需要存储一些配置参数值。
理论上,需要8个CPLD宏单元来存储一个字节的配置参数,因此将这些参数存储在CPLD内部并不是一个好的解决方案,除非所使用的CPLD芯片集成了E2PROM存储单元。
例如,在设计超声波探伤系统数据采集卡的过程中,需要将每个通道的采样数存储在CPLD中。
由于项目初期芯片选型不当,最终选择了EPMS15。
该芯片内部只有一个宏单元,因此参数被认为存储在外部扩展的E2PROM芯片24WC02中。
实验证明,在CPLD内部实现一个I2C控制器只需要43个宏单元。
可见,当初始化参数大于5时,通过外部扩展E2PROM芯片来存储配置参数是可行的。
只需在CPLD/FPGA芯片中实现I2C控制器即可轻松读写E2PROM存储芯片。
2 结论 使用VHDL进行CPLD/FPGA电路设计时,必须根据实际项目的具体情况合理划分项目功能,并使用VHDL实现相应的功能模块。
采用模块构建系统,可以有效优化模块之间的结构,减少系统的冗余。
上述优化设计原则应始终贯彻在模块设计过程中,并借助功能强大的综合开发软件来实现优化。
电路的目的。
版权声明:本文内容由互联网用户自发贡献,本站不拥有所有权,不承担相关法律责任。如果发现本站有涉嫌抄袭的内容,欢迎发送邮件 举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。
标签:
相关文章
06-17
06-06
06-18
06-21
06-18
06-18
06-18
06-17
06-17
最新文章
使用电子管有哪些注意事项?如何检查电子管之间是否短路?
博通支付1200万美元和解SEC财务欺诈指控
八名运营商高管确认加入虚拟运营商
内蒙古农牧区雷电灾害成因分析及防雷对策
北京联通将5G应用于世园会远程医疗急救
TD-SCDMA最后一轮冲刺测试启动,产业前景更加光明
专访阿里云总裁王健:云计算服务平台梦想成真
USB2.0控制器CY7C68013的接口设计与实现