杜志传,郑树立
(上海理工大学 医疗器械与食物学院 上海 200093)
0 引 言
VHDL(Very High Speed Integrated Circuit Hardware 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 资源同享
资源同享的思维是经过运用数据缓冲器或多路挑选器等办法来同享数据通道中占用资源较多的模块,如算法单元。经过同享电路单元模块可有用进步芯片内部资源的运用率,到达优化电路的意图。
1.5 运用E2PROM芯片节约片内资源
在用VHDL进行项目开发的过程中,常常需求存储一些装备参数值。理论上讲,每存储一个字节的装备参数需求运用8个CPLD宏单元,因而在CPLD内部存储这些参数并不是好的计划,除非运用的CPLD芯片已集成了E2PROM存储单元。例如,在规划超声探伤体系的数据收集卡的过程中,每个通道的采样数都需求保存在CPLD里边。因为项目初期芯片选型不妥,挑选一款EPM7192S160-15,该款芯片内部只要192个宏单元,因而考虑把参数存储在外扩的 E2PROM芯片24WC02中。经试验证明,在CPLD内部完结一个I2C操控器仅需求43个宏单元。由此可见,当初始化参数大于5个的时分,经过外扩 E2PROM芯片来存储装备参数是可行的,只需在CPLD/FPGA芯片内完结I2C操控器即可方便地读写E2PROM存储芯片。
2 结语
运用VHDL进行CPLD/FPGA电路规划时,要依据实践项意图具体情况,合理地区分项目功用,并用VHDL完结相应的功用模块。用模块来构建体系,可有用地优化模块间的结构和削减体系的冗余度,并在模块规划过程中一直遵循以上的优化规划准则,借助于强壮的归纳开发软件进行优化,才干到达最优化电路的意图。