逻辑综合逻辑综合将 HDL语言编写的行为模型转换为电路结构模型(网表)。
这种转换类似于 C语言的编译器将 C语言转换为机器语言(二进制语言);
逻辑综合综合过程从原文出发或原始电路图出发,经过逻辑分析,首先得出电路的详细描述,然后再进行逻辑优化,得到简化的逻辑表达,
通过逻辑映射产生于实际电路单元的对应关系,最后基于这种映射关系给出电路的时间分析。
逻辑综合综合过程一定要基于指定的单元库(或 PLD
器件)进行,选择不同的单元库会得出不同的电路结构;
在对 HDL语句的综合时,只有具备硬件对应关系的语句才能被综合;不同的综合工具或单元库对语言的支持能力不同。
HDL综合工具,Synplify
一种专用的综合工具,可以支持较大范围 HDL
语句的综合;
带有较全面的 PLD器件库,支持采用多家公司的各种 CPLD或 FPGA器件;
可以给出电路的 RTL实现方式,为电路的进一步优化设计提供参考。
Synplify Pro 7.6基本使用流程点击图标、打开程序;
建立约束和选项:
点击 Impl Option按钮,打开约束和选项窗口;
器件选择,
选择技术(公司型号)、器件类别、封装形式、
速度级别;对布局选项进行设置(对于不同的技术,选项不同);
Synplify Pro 7.6基本使用流程约束选择,
通常采用自动约束方式,以评估设计可能实现的最快速度;自动约束只能对 Atera和 Xilinx
的部分器件实行。要想对 IO端口进行自动约束,
应该在约束选项中,选择 Use clock period
for unconstrained IO;否则系统只对触发器之间的通道进行约束。
Synplify Pro 7.6基本使用流程打开或新建一个项目
( Open Project— New Project);
添加文件 ( Add File);
点击文件名,打开文本窗口,进行文件的输入编辑;
保存编辑完成的文件后,回到项目窗口,
运行综合程序 ( Run);
对综合结果的分析通过对综合文件进行分析( View Log),可以得到器件综合的各种信息:
时间特性( TIMING REPORT),
最长延迟时间 /最高频率;各端口的时间信息;
面积特性( AREA REPORT),
器件使用量( IO单元,LUT单元,DSP块),门输入数量,节点数量;
设计优化程度的衡量通过对综合结果的分析比较,可以在一定程度上判断设计的优劣程度。在此阶段,设计的目标应该是使电路的频率最高,面积最小。
需要注意的是,由于各公司的各种等级的器件性能不同,对设计优劣程度的比较应该在同一型号的器件上进行。
电路的结构视图综合后的电路结构可以通过电路视图分析综合的效果,电路视图可以给出电路中所有基本器件的种类和数量,也给出端口和节点的数量;每个器件、端口、节点都给予了相应的命名;在电路视图中双击任何器件,可以显示程序中与之相关的语句;
RTL视图由基本电路单元连接成的电路,与综合器件无关,由于不同语句不同方法会导致不同的
RTL电路,因此 RTL电路可以用于客观地评价电路的设计效果;根据该电路使用的逻辑单元,
可以估计电路中各路径的延迟时间,为前仿真提供支持。
技术视图与综合器件相关的电路图;
选择不同的器件可以综合出不同的技术视图;
分为单元电路图和门级电路图两种形式;
单元电路图显示电路使用的 PLD单元块的使用量和相应的连接关系,可以用于评价该电路采用 PLD设计时在特定器件中的使用情况;
门级电路图将电路在器件中的实现情况分解为基本逻辑单元的连接方式,可以用于分析电路的逻辑关系,
便于电路优化时进行修改。
PLD设计的时间特性分析在技术视图中,可以查看各器件的时间特性
( HDL Analyst— Show Timing Information),
选择这一操作后,每个器件上用红色数字标明该器件的信号到达时间和时间容限;可以通过显示关键路径( Show Critical Path)选出最长延迟路径;对关键路径的分析有利于对电路结构进行优化。
设计工具,MAX+PLUS Ⅱ
PLD主要厂商 Altera公司设计的 EDA工具;
可采用原理图输入和文本输入等多种设计输入方式;
可支持 VHDL,Verilog HDL,AHDL等多种硬件设计语言;
可进行编辑、编译、仿真、综合、芯片编程等设计全过程操作;
MAX+PLUS Ⅱ 的主要使用方法设计输入:
点击图标、打开程序;
建立新文件,打开文本编辑器
file/save:建立一个,vhd文件;
输入编辑 VHDL程序;
输入完毕之后保存文件;
MAX+PLUS Ⅱ 的主要使用方法建立项目、指定器件,
选择 file/project/set project to
current file,为当前文件建立项目;
选择 asigne/device,FLEX10K/AUTO,
为编译目标指定 PLD器件;
MAX+PLUS Ⅱ 的主要使用方法检查、编译,
对程序进行保存、检查;根据检查提示错误对程序进行修改,直到完成检查;
使用编译器对程序进行编译;
编译成功后,可选择 file/create default
symbol 将所设计电路保存为符号文件(模块);
MAX+PLUS Ⅱ 的主要使用方法设计结果分析,
在文本编辑器中,打开同名的,rpt文件(报告文件),检查对所选择 PLD器件编程的详细结果;利用 Floorplan Editor中检查器件的布局连线情况;利用 Timing Analyzer检查器件各端口间的传输延迟;
MAX+PLUS Ⅱ 的主要使用方法仿真信号设置,
打开波形编辑器 (waveform editor);
用右键点击 Name区域,点击 List,选定端口;
在 File/End time中选择仿真时间长度,在
Option/Grid size中选择时钟刻度;
单击输入端口的 value,设定输入信号波形:
完成所有输入信号的设定后,保存文件;
MAX+PLUS Ⅱ 的主要使用方法器件仿真,
打开仿真器( simulator),进行仿真;仿真结束后 OpenSCF即可看到各输出信号的波形;
可以检查输入 /输出关系是否符合设计要求;
由于编译时已经将设计对应到具体器件中,因此仿真结果会带有相应的时间延迟,类似于前仿真。
MAX+PLUS Ⅱ 的主要使用方法器件下载,
打开仿真器( simulator),进行仿真;仿真结束后 OpenSCF即可看到各输出信号的波形;
可以检查输入 /输出关系是否符合设计要求;
由于编译时已经将设计对应到具体器件中,因此仿真结果会带有相应的时间延迟,类似于前仿真。
利用图形输入法的设计通常在 PLD厂商提供的综合 EDA工具中,都可以采用原理图的形式进行设计输入:
打开程序,选择建立一个图形文件,打开图形编辑窗口;在图形编辑窗口中双击,可以从各种库中选取需要的各种功能器件和端口;
对器件进行连线,可以通过电路逻辑图实现电路设计。
MAX+PLUS Ⅱ 中包含的器件库基本门级单元库,包含主要的基本逻辑单元和端口,如 NOT,AND,OR,XOR,LATCH,FF等;
常用功能单元库,主要是 74系列的各种中规模功能模块,如译码、编码,MUX、加法、比较、
寄存器、计数器等;
参数化模块库,常用的组合及时序模块,端口数量和功能可以自由设定。
采用波形输入方法进行电路设计打开程序;打开波形编辑窗口;
双击 Name区域,对输入 /输出端口进行设置命名;
端口设置完毕后,点击各端口的取值区为各端口设置信号;
采用波形输入方法进行电路设计对组合电路,通常按真值表方式设置输入信号;
对于时序电路,通常按状态转换图的顺序设置信号;
信号设置完毕后,将设计文件保存为(,wdf)
文件;
保存之后,就可以通过编译形成模块符号及相应的电路文件;
MAX+PLUS Ⅱ 的特点可以使用多种设计输入方法进行设计;
可以在同一工具中完成从设计输入、综合、
仿真直到下载到器件的整个设计流程;
具有丰富的数据库可以利用;
只能采用可综合的设计语言,对 VHDL的支持面较小。