① PLD器件厂商提供的EDA工具。较著名的如:Altera公司的 Max+plus II和Quartus II、Xilinx公司的Foundation Series、Latice-Vantis公司的ispEXERT System。
② 第三方专业软件公司提供的EDA工具。常用的综合工具软件有:Synopsys公司的FPGA Compiler II、Exemplar Logic公司的LeonardoSpectrum、Synplicity公司的Synplify。第三方工具软件是对CPLD/FPGA生产厂家开发软件的补充和优化,如通常认为Max+plus II和Quartus II对VHDL/Verilog HDL逻辑综合能力不强,如果采用专用的HDL工具进行逻辑综合,会有效地提高综合质量。
1 PLD器件的开发
CPLD/FPGA设计越来越复杂,使用硬件描述语言设计可编程逻辑电路已经成为大势所趋,目前最主要的硬件描述语言是:VHDL(Very High Speed Integrated Circuit HDL)和Verilog HDL。两种语言都已被确定为IEEE标准。
用VHDL/Verilog HDL语言开发可编程逻辑电路的完整流程为:
① 文本编辑。用任何文本编辑器都可以,但通常在专用的HDL编辑环境中进行。因为专业的集成开发环境通常提供各种结构模板,并且可以自定义各种要素(例如关键字、字符串、注释等)的色彩显示,提高可读性,提高输入效率。
② 功能仿真。将文件调入HDL仿真软件进行功能仿真,检查逻辑功能是否正确。 ③ 逻辑优化与综合。将源文件调入逻辑综合软件进行逻辑分析处理,即将高层次描述(行为或数据流级描述)转化为低层次的网表输出(寄存器与门级描述),逻辑综合软件会生成EDIF(Electronic Design Interchange Format)格式的EDA工业标准文件。这步在PLD开发过程中最为关键,影响综合质量的因素有两个,即代码质量和综合软件性能。
VHDL语言支持全部的仿真功能,但并不是全部可综合的。VHDL程序的许多硬件描述和仿真结构没有对应的数字电路来实现,还有些描述在理论上可以映射为对应的数字电路,但是却不能保证其精确性,比如延时模型。随着综合算法技术水平的提高,针对某些寄存器传输级RTL(Register Transfer Level)电路描述可以进行有效的优化,但是对于更普遍的电路描述这还不够,因此综合结果是否满足给定的时间约束条件和面积约束条件,还取决于VHDL编码方式。下面给出几点经验,相信对提高综合质量有所帮助与启发。
另外,由于综合工具只能支持VHDL的子集,为保证在综合前后的仿真保持相同,以下语句在综合中应该避免使用:
◇ 避免使用 wait for xx ns,这种语句不会被综合为实际的电路元件;
◇ 避免使用after xx ns,在综合工具进行综合时,会忽略after语句;
◇ 避免在信号和变量声明时赋初值,因为大部分综合工具会忽略初始化语句,如果使用初始化语句,那么综合的结果和仿真的结果将会产生差异。