三国其实不伟大:基础篇:第五章 Quartus II常用辅助设计工具

来源:百度文库 编辑:偶看新闻 时间:2024/04/27 21:22:31

第五章:Quartus II常用辅助设计工具


包括I/O分配验证工具、功率估计和分析工具、RTL阅读器、signalProbe(信号探针)及SignalTap II逻辑分析仪、Chip Editor(底层编辑器)、timing closure floorplan(时序收敛平面布局规划器)和ECO(工程更改管理)。


I/O分配验证工具:验证管脚分配的合法性,保证尽快确定引脚分配。


【start】-- > 【start I/O assignment analysis】,用户可以在FPGA工程设计前、设计过程中、及设计完成后检查管脚分配的合法性,这些检查报刊管脚是否使用了正确的参考电压、有效的管脚位置和正确的混合I/O标准,设置的电平类型是否正确、不支持LVDS电平类型的BANK中的管脚是否被设置成了LVDS电平、一个BANK中所有管脚的驱动电流是否超过其最大电流限制,以及是否忽略了PCI接口的“钳位二级管”等。


altera建议用户在设计的时候,如果改变或增加了管脚相关的分配时,都需要运行I/O分配验证。


        无设计文件的I/O分配验证设计流程


        在FPGA设计的初始阶段,单板设计工程师会要求有一个FPGA的管脚锁定文件,这样单板工程师可以与FPGA设计工程师同步工作。由于此时FPGA设计工程师并没有完整的设计文件,那么就可以运行无文件的I/O分配验证流程对管脚分配进行基本的分析。基本步骤:


       1.创建Quartus II工程。


       2.使用assignment Editor(分配编辑器)或者TCL命令对工程分配管脚。设定与I/O管脚相关的特性,如I/O标准、当前电流强度、管脚锁定、Toggle-rate(翻转率)等。


         为了允许单端电平管脚靠近差分信号管脚放置,对于频率非常低的输出管脚可以将其Toggle-rate设置为0。


        注:由于没有设计文件,用户需要将端口生命为保留(Reserved)属性,其中可以分别设置为“as bidirectional”、“as input tri-stated”,“as output driving a unspecified signal”,“as output driving ground”,“as output driving VCC”,“as signalprobe output”。用户根据设计中I/O属性做相应的指定。


3. 【processing】——>【start】——>【start I/O assignment analysis】,开始运行I/O分配验证。产生的详细的分析报告分成5部分,包含在编译报告的fitter阶段,这5个部分是:


      . 分析I/O分配总体信息(analyses I/O assignments summary);


      . 平面布局视图(floorplan view);


     . 管脚输出文件(pin-out file);


     . 资源使用部分(resource section);


     . 布局布线信息(fitter messages)。


此列表中内出了详细的分配验证信息,如不正确的I/O分配和问题描述;用户没有定义的编译假设;若是选择了器件移植,则在信息报告中会列出可移植的管脚和不可移植的管脚;每个I/Obank设定的I/O标准和电压等。


4.如有错误进行纠正。


无设计文件或只有部分设计文件的I/O分配验证过程对管脚分配的合法性检查作用比较有限,有时不能完全保证I/O分配没有违背设计原则。


         在使用I/O分配验证命令时需要读入一个内部的映射网表和一个Quartus II设置文件(.qsf),所有


管脚分配方式:


. 利用分配管脚(assign pins)对话框;


. 利用分配编辑器(assign editor);


. 利用Tcl命令平面布局规划器


在分配管脚时,一般把具有兼容性的I/O标准的信号分配在同一个bank里。例如两种I/O标准的总线,2.5v LVCMOS和SSTL-2可以被分配在同一个I/Obank里,因为它们的VCCIO一致,都是2.5v。如果设计中有待分配总线信号数超过一个I/Obank中可分配管脚数时,简单的方法是使用边界锁定分配(Top、right、bottom、left等4条边界)。使用边界锁定分配可以使得总线都集中在芯片的一边,因此可以改善宽总线的电路板布线能力。


 


功率估计和分析工具:可以对设计的功耗进行估算,以方便电源设计和热设计。


        当设计PCB时,需要准确估算一个器件的功率,以得到适当的功率预算,选择合适的供电电源、散热片和通风系统。


Quartus II中有两种功率分析方法:一种是excel-based 的功率计算器,另一种是基于仿真的功率估算器(simulation- based)。


excel-based 的功率计算:不用等到FPGA设计完成才能估算功率,缺点是功率估算的准确性取决于用户输入的参数。打开工程文件后,【project】——>【Generate Power EstimatI/On File】,生成*_pwr_cal.txt的功率计算文件,并提醒用户把这个文件调入到在altera网站下载的excel-based功率计算器中计算功率。导入功率估算文件,需在【enter the global toggle %】中输入翻转率参数(每时钟周期平均跳变的几率),【ok】即可查看结果。


simulation-based功率估算是在设计完成并对其仿真之后进行的。对工程设计提供一个准确的功耗估算方法,当把几个小的设计集成到一个大的FPGA设计中时,simulation-based功率估算是一个估算大型设计中部分设计功耗的有效方法。


        使用该方法进行功率估算需给Quartus II软件仿真器提供一个矢量波形文件(vector waveform File, .vwf)或功率输入文件(power input file,pwf)并且需要在Quartus II中执行时序仿真。首先选择【assignments】——>【setting】——>【simulator】——>【power estimation】设置simulation-based功率估算的起始和结束时间。在本工程中,选择【estimate power consumption】选项,仿真器在仿真期间将会计算和报告设计消耗的内部功率、I/O功率和总功率。


注:功率估算结果仅仅用于功率估计,并不能作为一个确定功耗结果。实际的电流(Icc)应该是在器件工作期间验证的,功耗与温度、频率有很大的关系,同一设计工作在不同温度和频率下,其功耗也不同。


RTL阅读器:用户在设计中查看设计代码的RTL结构的一种工具。提供了在调试、优化过程中观察自己设计的初始综合结果的途径。RTL阅读器观察的电路结构是在执行综合和布局布线之前的结果,只需要运行完【analysis and elaboration】命令即可观察设计的RTL结构,由于没有设计转换,因此它并不是最终实现的电路结构,但它是对源代码设计的最原始的展现。


         一些优化操作将使得阅读器的可读性有所变化。例如,没有扇出(如输出信号没有连接)的逻辑和没有扇入的逻辑都将从RTL结构中删除,内部使用的三态缓冲器原语也将从RTL结构中删除,默认连接入VCC和GND等在阅读器中没有显示。


SignalTap II逻辑分析仪:是第二代系统级调试工具,可以捕获和显示FPGA内部的实时信号行为。


signalProbe(信号探针):可以在不影响设计中现有布局布线的情况下将内部电路中特定的信号迅速布线到输出引脚,从而无需对整个设计另作一次全编译。


Chip Editor(底层编辑器):查看编译后布局布线的详细信息,且可以使用resources property editor(资源特性编辑器)对逻辑单元、I/O单元或PLL的原始属性和参数执行编译后的重新编辑。


         一般应用:


. 门级寄存器重定时。在保留整个电路功能的前提下移动设计中的寄存器以平衡一条数据路径上的组合逻辑延时。


. 内部信号到输出管脚的布线。


. 调整PLL的相移。


. 快速修改设计缺陷。


 


timing closure floorplan(时序收敛平面布局规划器):分析设计并执行面积约束,或者使用logiclock区域分配进一步优化设计。


         工程布局布线后,【assignment】——>【timing cloure Floorplan】,可以看到不同颜色显示的整体视图。观测资源分配、查看用户设置的分配约束和布局布线器的布局结果,如管脚分配、logiclock 分配以及其他的位置约束。


       此功能现由Chip Planner替代。


ECO(工程更改管理):指在全编译之后对设计的少量修改,这些修改直接在设计数据库上做,而不是在源代码级或设置文件上做,将显著减少工程师开发调试的时间。


 ECO是Chip Editor建立的文件以记录管理设计中所有的修改过程。主要应用在设计的HDL阶段和网表阶段。


扇入、扇出:在数字电路中,扇出指的是输出驱动下级输入信号的能力。具体定义为:逻辑门的扇出(fanout)是指该门电路在不超出其最坏情况负载规格的条件下,能驱动的输入端个数扇出系数事值能驱动同类门电路的数目,用以衡量带负载的能力。


扇出(fan-out)是定义单个逻辑门能够驱动的数字信号输入最大量的术语。大多数TTL逻辑门能够为10个其他数字门或驱动器提供信号。因而,一个典型的TTL逻辑门有10个扇出信号。



  在一些数字系统中,必须有一个单一的TTL逻辑门来驱动10个以上的其他门或驱动器。这种情况下,被称为缓冲器的驱动器可以用在TTL逻辑门与它必须驱动的多重驱动器之间。这种类型的缓冲器有25至30个扇出信号。逻辑反向器(也被称为非门)在大多数数字电路中能够辅助这一功能。



  在软件工程中的定义:该模块直接调用的下级模块的个数。在面向对象编程中,扇出应用于继承。