资源描述
分类 1 没有设计文件 不完备的检查,主要检查管脚的合法性,例如:电平类型及管脚驱动电流 2 有设计文件 对设计的I/O管脚和相关逻辑执行更加侧地的合法性检查。第1页/共67页I/O分配检查的规则第2页/共67页管脚分配的方法-Import Assignments 步骤1:使用记事本或类似软件新建一个txt文件(或csv文件),按如下格式编写管脚分配内容,注意:To和Location两个关键字中间有一个半角逗号。 to, location /fpga clock clk, pin_153 led15, pin_206 led14, pin_202 led13, pin_200 led12, pin_196 led11, pin_194 reset_n,pin_44第3页/共67页 步骤2:在QII软件中,选择“Assignments Import Assignments”。如图所示,导入xxx.txt文件即可。第4页/共67页 步骤3:在QII软件中,选择“Assignments Pin”标签(或者点击按钮) ,打开Pin Planner,验证管脚是否分配正确。第5页/共67页管脚分配的方法-source xxx.tcl 步骤1:在QII软件中,使用“Assignments Remove Assignments”标签,移除管脚分配内容,以确保此次操作,分配的管脚没有因为覆盖而出现错误的情况。 注:在未执行任何管脚分配操作新工程中,可跳过步骤1。第6页/共67页 步骤2:使用记事本或类似软件新建一个tcl文件,按如下格式编写管脚分配内容 注意关键字set_location_assignment和-to的用法。第7页/共67页 步骤3:执行pin.tcl 方法1:在QII软件中,使用“View Utility Windows Tcl Console”标签,打开Quartus II Tcl Console。执行语句:source xxx.tcl 方法2:在QII软件中,使用“Tools Tcl Scripts ”标签,打开Tcl Scripts。选择pin.tcl,选择“Run”标签,执行Tcl文件。 步骤4:同方法1的步骤3。第8页/共67页1 无设计文件的I/O分配验证流程 1 创建一个工程 2 使用assignment editor 分配管脚,设定与I/O相关的特性,如I/O标准,当前的电流强度、摆率,将端口声明为reserved属性 3 选择processing/start/start i/o assignment Analysis 命令,执行I/O分配验证 4 查看编译报告:产生一个I/O管脚列表,列出用户和布局布线器分配的I/O管脚,同时在floorplan view中显示部分布局结果。第9页/共67页有设计文件的I/O分配验证流程 1 创建一个工程,包含设计文件 2使用assignment editor给端口信号分配管脚 3 运行分析综合命令产生一个内部的映射网表 4 运行processing/start/start I/O assignment Analysis 命令,执行I/O分配验证 5 查看报告,报告内容分布在编译报告的fitter阶段第10页/共67页 内容: 分析I/O分配总体信息(analyze I/O assignment summery) 平面布局视图(floorplan view) 管脚输出文件(pin-out file) 资源使用部分(resource section) 布局布线信息(fitter message) 快速定位错误:选中出错信息,单击右键,选择locate,若选择message location 则弹出错误出错文件。若选择assignment editor 则弹出分配编译器窗口第11页/共67页PowerPlay功率分析工具 PowerPlay功率分析工具使你能够在早期设计概念 产生到设计实施阶段过程中对功耗进行估算。设计 PCB时,就可以选择合适的供电电源、散热片和通 风系统。 第12页/共67页Powerplay early power estimator 可以使用altera公司提供的excel表单工具来计算早期功耗,该表单工具可以从altera公司的网站上下载。器件中各种资源的使用情况需要用户去估计;另外如果设计已完成,则由quartus软件产生的功率估算文件就能作为基于excel功率计算器的参数输入。 步骤如下:1 对设计全编译 2 执行projectgenerate early power estimator产生功耗估算文件,名称为projectname_early_pwr.txt 3 将文件导入excel功率计算器中第13页/共67页 Excel based功率计算器提供在典型条件下(如室内温度、额定电压等)电流和功率值。它分为几个部分,每个部分代表器件的一个结构特性,如时钟网络、RAM块或DSP块。为了得到准确的功耗值,必须输入一些参数,如寄存器数目、转换速率、时钟和频率、I/O和存储器、温度、气流和散热等。 第14页/共67页Powerplay power analyzer 1 对设计进行全编译 2 仿真设置选项assignmentsettingssimulator Settingssimulator power第15页/共67页 3 设置功耗分析选项 assignmentsettingspower analyzer settings 设置功耗分析参数 4 建立波形矢量文件 5 时序仿真结束后, 运行processingpower Play power analyzer Tool命令 6 查看报告结果第16页/共67页RTL Viewer RTL阅读器观察到的电路结构是综合和布局布线之前的结果。由于还没有进行设计转换,所以,它不是 设计的最终实现,不过他是源代码设计的最原始的展现。 在执行analysis and elabration之后就可以观察RTL结构第17页/共67页 打开方法 :Tools-Netlist-RTL Viewer 列表项含义 :Instances,即实例,是指设计中能扩展为低层次的模块或实例。 Primitives,即原语,是指不能被扩展为低层次的底层节点。用Quartus II自带综合器综合时,它包含的是寄存器和逻辑门;而用第三方综合工具综合时,它包含的是逻辑单元。 Pin,即引脚,是当前层次的I/O端口。 Nets,即网线,是连接节点(包括实例、源语和引脚)的网线 。第18页/共67页 过滤原理图: 选中任意一节点,右键-Filter,选项如下: Sources,即源,指过滤出所选节点或端口的源端逻辑; Destinations,即目标,目标端口; Sources&Destinations,即源和目标,源和目标的集合。 Selected Nodes&Nets,所选结点和网线,过滤出已经选择的节点和网线。 Between Selected Nodes所选节点之间,两个节点之间的逻辑。 注意:在过滤后可以单击工程区左侧工具栏 按钮,回到过滤前的原理图,或者单击左侧列表项,查看其他层次的原理图。第19页/共67页 打开不同层次的模板: 双击所选模块可以进入下一层次(或空白处右键-Hierarchy Down),单击工程区左侧工具栏 按钮回到上一层次(或空白处右键-Hierarchy Up)。 定位到其他工具: 右键-Locate,在子菜单中的分别有定位与各种工具的选项,选中后当前所选项就会定位到所选工具中。 查找节点或网线: 空白处右键-Find(快捷键:ctrl+F),查找对话框中的具体选项不做详述第20页/共67页SignalTap和 SignalProbe Quartus II SignalTapAnalyzer和 SignalProbe 的功能在于当系统以系统速度进行操作时,能够在 系统地分析内部器件节点和 I/O 引脚。 SignalTap II 逻辑分析仪使用嵌入式逻辑分析器将信 号数据通过 JTAG 端口送往 SignalTap II 逻辑分析 仪或者外部逻辑分析仪或示波器。 SignalProbe 功能使用未用器件布线资源上的增量布线,将选定信号送往外部逻辑分析仪或示波器第21页/共67页SignalProbe SignalProbe 功能允许在不影响设计中现有布局布线配合的 情况下将用户特定的信号连接到输出引脚,从而无需另做一次 全编译,就可以调试信号。从一个已经完全布线过的设计开 始,可以选择和布线要调试的信号,通过以前保留或当前未使 用的 I/O 引脚进行调试。 SignalProbe 功能允许指定设计中要调试的信号,然后执行 一次 SignalProbe编译,使那些信号与未使用或保留的输出引 脚相连,再发送信号至外部逻辑分析仪。在分配引脚、查找可 用 SignalProbe 源时,可以使用 Node Finder。 SignalProbe 编译通常大约花费正常编译所需时间的 20 到 30%。第22页/共67页使用步骤1. 进行设计的全编译。2. 选择要调试的信号以及信号要通过的 I/O 引脚,然后打开 tools/signal pobe pins对话框3. 执行 SignalProbe 编译。SignalProbe 编译是在不影响设计的布局布线的情况下编译设计,并且对 SignalProbe 信号的布局布线比正常的编译速度快。4. 给器件配置新编程数据,测试信号。第23页/共67页Assign pins 对话框第24页/共67页SignalTap II 逻辑分析仪 SignalTap II 逻辑分析仪是第二代系统级调试工具,可以捕获 和显示实时信号行为,允许观察系统设计中硬件和软件之间的 交互作用。Quartus II 软件允许选择要捕获的信号、开始捕获 信号的时间以及要捕获多少数据样。还可以选择是将数据从器 件的存储器块通过 JTAG 端口传送至 SignalTap II 逻辑分析 器,或是至 I/O 引脚以供外部逻辑分析仪或示波器使用。 可以使用 MasterBlaster、ByteBlasterMV、 ByteBlaster II 或USB-Blaster 通信电缆下载配置数据到 器件上。这些电缆还用于将捕获的信号数据从器件的 RAM 资源上载至 Quartus II 软件。然后, Quartus II 软件将 SignalTap II 逻辑分析仪采集的数据以波形显示。 SignalTap 允许对设计中所有层次的模块节点进行测试,可以使用多时钟 驱动。第25页/共67页嵌入SignalTap逻辑分析仪 两种方法: 1 SignalTap 文件(.stp),然后定义STP文件的详细内容; 2 MegaWizard Plug-In Manager建立并配置STP文件,然后用MegaWizard实例化一个HDL输出模块第26页/共67页使用STP 文件 第1 步:建立 .STP 文件 Assign sample clock Specify sample depth Assign signals to STP file Specify triggering conditions and flow Setup JTAG 第2 步:保存 .STP 文件并编译设计 第3 步:器件编程 第4 步:运行逻辑分析并采集数据第27页/共67页第1步:建立一个新的.STP 文件 第28页/共67页STP 文件主窗口单元第29页/共67页Instance 管理器选择当前ELA 或Power-Up trigger 进行设置和查看显示每个instance 当前状态 显示ELA 资源占用情况 运行并控制当前instances第30页/共67页信号配置Manages data capture &signal configuration Sample clock Sample depth Buffer type Trigger flow Trigger position Trigger-in & trigger-out Some settings similar to settings on external logic analyzers or oscilloscopes第31页/共67页 设置采样时钟:它决定了现实信号波形的分辨率。它的频率一般要大于被测信号的最高频率,否则无法正确反映被测信号波形的变化,在时钟的上升沿被测信号存储到缓存。一般选择系统时钟。 设置被测信号:运行node finder中的signal tap 过滤器查找所有预综合和布局布线后的signal tap节点。添加要观察的信号。不可测试的信号包括:逻辑单元的进位信号、pll的时钟输出,jtag引脚的lvds信号。 配置采样深度:确定RAM的大小:每个输入信号存储的样点数量。signalTap II所能显示的被测信号波形的时间长度为死,计算公式为Tx=NTs(为缓存中存储的采样点数,乃为采样时钟的周期) buffer acquisition mode:包括循环采样存储、连续存储两种模式。循环采样存储也就是分段存储,将整个缓存分成多个片段(segment),每当触发条件满足时就捕获一段数据。该功能可以去掉无关的数据,使采样缓存的使用更加灵活。 触发级别:SignalTap 11支持多触发级的触发方式,最多可支持10级触发。 触发条件:可以设定复杂的触发条件用来捕获相应的数据,以协助调试设计。当触发条件满足时,在SignalTap时钟的上升沿采样被测信号。第32页/共67页指定采样时钟 Use global, fastest clock available for best results Data written to memory on every sample clock rising edge Clock signal cannot be monitored as data External clock pin created automatically if clock unassigned auto_stp_external_clock ELA expects external signal to be connected to clock pin (use Pin Planner)第33页/共67页设置Sample Depth & RAM Type Sample depth Set number of samples stored for each data signal 0 to 128K sample depth Select RAM type for supported FPGAs Useful when preserving specific memory type is necessary Defaults to Autoon unsupported device familie第34页/共67页指定Buffer Type 环形缓存(Circular) 默认类型 分段式(Segmented)关闭 分段式缓存(Segmented) Specify number of segments and segment sample depth第35页/共67页环形缓存(Circular Buffer) Data is circled (more like FIFO) through acquisition buffer until trigger event occurs After trigger event occurs, post-trigger data is collected until buffer fills up第36页/共67页环形缓存实例第37页/共67页分段式缓存(Segmented Buffer) 采样数据缓存均分为大小相同的缓存数据段 Example: 4K buffer is segmented into 4-1K segments 每个小缓存数据段类似一个独立的环形缓存 触发位置设置应用于每个单独缓存数据段 When trigger event occurs, post-trigger data is collected until single segmentfills up Process repeats with final trigger condition only until all segments are filled Use for repeating trigger events第38页/共67页分段式缓存实例第39页/共67页设置触发位置(Trigger Position)在数据缓存中定位触发位置 3种触发位置选择 Pre (12% before trigger, 88% after) Center (50% before, 50% after) Post (88% before, 12% after第40页/共67页设定触发(Triggering) 触发条件(Trigger conditions) 每个SignalTap instance 可设定多达10 级触发条件 在节点列表中作为单独的列显示 可以手动禁止不需要的触发级触发输入(Trigger in) 任何信号都可以作为触发信号,例如另外一个SignalTap实例的 Trigger out 与触发“0”级类似,在输入触发后,其它触发级必须发生,以完成触发输出触发(Trigger out) 触发事件发生时,设置信号或者I/O 引脚为高电平或者低电平 可用于触发另一个SignalTap实例,或者同步外部设备 Creates auto_stp_trigger_out_npin default for assignment in Pin Planner Latency delay usually indicates number of clock cycles after ac tual trigger event第41页/共67页触发流程控制(Trigger Flow Control) 两种方法可选 Sequential触发(默认) 通过增加触发级别实现的简单时序触发功能 Trigger in (condition “0”) followed by conditions 1, 2, 3, etc. 在Sequential 触发方式下,只能触发依次发生的事件,如果需要触发循环事件或者部分循环事件就需要设置多级重复的触发级别 在检测简单时序关系的情况下,Sequential 触发方式更简单灵活一些State-based 触发 可以实现复杂而且精确的时序触发功能 可以通过添加可动态配置的计数器实现“触发后延时采样”的功能 在State-based触发方式下,由于有了可命名的State,就可以通过goto 语句实现触发事件的循环,可以省去重复的触发级别,减少逻辑资源的占用 在检测复杂时序关系时,还是State-based触发方式更高效第42页/共67页基本触发(Basic Triggering)第43页/共67页高级触发条件编辑器(Advanced Trigger) 采用图形工具编辑高级触发(Boolean条件)第44页/共67页 第2步:保存.STP 文件并编译设计在Settings中使能SignalTap II Logic Analyzer Assignments菜单 Settings 指定SignalTap II 文件第45页/共67页第3步:编程器件使用Quartus II Programmer 或SignalTap II 文件 在SignalTap II 文件界面中配置指定器件 使用Quartus II Programmer 配置器件第46页/共67页第4步:运行逻辑分析并采集数据 上电触发运行 正常工作触发运行第47页/共67页查看采集到的数据在Signal tap文件窗口中,切换到data窗口第48页/共67页显示采集数据格式以标准总线格式显示采集数据,或以bar 或line chart形式显示 Export to other tools for viewing or analysis (File menu) Creates .VWF, .TBL, .CSV, .VCD, .JPG or .BMP file第49页/共67页运行步骤 1. 运行analysis &elaboration 2 建立新的 SignalTap II 文件。执行菜单命令tool SignalTap II logic Analyzer 3.向 SignalTap II 文件添加实例,并向每个实例添加节点。可以使用Node Finder 中的 SignalTap II 滤波器查找所有预综合和布局布线后的SignalTap II 节点。 4. 给每个实例分配一个时钟。 5. 设置其它选项,例如采样深度和触发级别,并将信号分配给数据/触发输入和调试端口。 6. 如果必要,可指定 Advanced Trigger 条件 7. 编译设计 8. 对器件进行编程。 9. 在 Quartus II 软件中或使用外部逻辑分析仪或示波器采集和分析信号数据。第50页/共67页时序收敛平面布局规划器 一 界面 项目布局布线完成后,执行assignment/timing closure floorplan命令,打开底层布局布线图 第51页/共67页二 观察资源分配 可以使用时序收敛平面布局规划器查看 Fitter 生成的逻辑布局,查看用户分配和LogicLock 区域分配以及设计的布线信息。可以使用此信息在设计中标识关键路径,并执行时序分配、位置分配和 LogicLock 区域分配,实现时序逼近。 查看用户的分配视图,选择view/assignment/show user assignments命令或按相应的工具按钮 查看布局布线分配结果, 选择view/assignment/show fitter placements第52页/共67页三logiclock 区域连接 选择view/routing/show logiclock regions connectivity命令或按相应的工具按钮 观察具体的数目,选择view/routing/show connections count命令 观察 logiclock区域的扇入和扇出,只需按下对应的按钮。第53页/共67页四 观察关健路径 执行菜单命令view/routing/crital path settings 关键路径: 显示设计中的关键路径,包括路径边缘和 布线延时。默认关键路径视图显示寄存器至寄存器路 径。还可以查看源节点和目标节点之间最坏情况路径 的所有组合节点。可以使用延时或停滞指标来指定是 否要查看关键路径,并可以指时序钟域、源节点名称 和目标节点名称以及要显示的关键路径数。 选择一个区域,右键show details命令,选择一个单元,之后执行菜单命令routing/show routing details第54页/共67页五 物理延迟估计 选择一个lab,选择view/routing/show physical timeing estimation. 显示了到达器件上任何其它物理资源的近似延时。如果选择了一个节点或实体,则用潜在目标资源的阴影表示延时 (资源的阴 影越深,延时越长),可以将鼠标放置在可能目标节点之上来显示到达目标节点的延时。第55页/共67页六 布线拥塞 选择 view/routing/show routings congestion命令,观察布线资源的使用情况。 显示用图形表示的设计中的布线拥塞。阴影越深,布线资源利用率越大。可以选择布线资源,然后指定该资源的拥塞阈值 (在器件 中以红色区域显示)。第56页/共67页工程更改管理 Quartus II Software 允许在全编译后对设计 做小的更改,可参考工程更改纪录 (ECO)。可 直接对设计数据库进行这些 ECO 更改,而非 更改源代码或Quartus II 设置和配置文件 (Quartus II Settings and Configuration File) (.qsf)。对设计数据库做 ECO 更改可避免为了 实施一个更改而运行全编译第57页/共67页工程更改管理的设计流程第58页/共67页Quartus II 软件中工程更改管理的设计步骤1.全编译之后,使用芯片编辑器查看设计布局布线详细信息,并确定要更改的资源。如果需要的话,可以使用 Netlist Explorer 过滤和高亮显示资源。 2. 2. 使用资源属性编辑器 (Resource Property Editor) 来编辑资源的内部属性、编辑或删除连接。 3. 3. 使用 Check Resource Properties Check Resource Properties 命令 (Edit 菜单) 检查资源更改的合法性。 4. 4. 在更改管理器中查看更改的摘要和状态,并控制要实现和/或保存对资 源属性的哪些更改。还可以添加备注,帮助您引用每个更改。 5. 5. 使用检查和保存所有网表更改 (Check and Save (Check and Save All NetlistChanges)All NetlistChanges) 命令 (Edit 菜单) 检查网表中所有其它资源更改的合法性。 6. 6. 运行 Assembler,生成新的编程文件,或再次运行 EDA Netlist Write,生成新网表。如果要验证时序更改,可以运行 Timing Analyzer。第59页/共67页使用芯片编辑器识别延时与关键路径 可以使用芯片编辑器查看布局布线的详细信息。芯片 编辑器可以显示Quartus II 布局图编辑器中不显示的 设计布局布线的其它详细信息。它显示完整的布线信 息,显示每个器件资源之间的所有可能和使用的布线 路径。芯片编辑器显示器件的所有资源,例如,互连 和布线线路、逻辑阵列块(LAB)、RAM 块、DSP块、 I/O、行、列以及块与互连线以及其它布线线路 之间的接口。第60页/共67页使用Resource Property Editor 修改资源属性 资源属性编辑器用于对逻辑单元、I/O 单元或 PLL 资源的 属性和参数执行编译后编辑,以及编辑或删除个别节点的连 接。可以使用工具栏按钮在资源中前后移动。还可以同时选 择和更改多个资源。可以跟踪资源的扇入和扇出,并可以在 资源属性编辑器中查看资源。 资源属性编辑器包括显示正在修改的资源示意图的阅读 器,列出了所有输入和输出端口及其连接信号的端口连接列 表,显示资源可用的属性和参数的属性列表。如果看不见端 口连接或属性列表,可使用 View Port Connections 命令和 View Properties 命令 (View菜单) 将其显示出来第61页/共67页LE结构图第62页/共67页使用Change Manager 查看和管理更改 更改管理器窗口列出所做的所有 ECO 更改。 它允许在列表中选择每个 ECO更改,并指定 是否要应用或删除更改。它还允许添加注, 以便参考。可通过选取 Utility Windows Change Manager (View 菜单) 打开 Change Manager。第63页/共67页 更改管理器的日志视图显示每个 ECO 更改的以下信息: 更改编号 节点名称 更改类型 旧值 目标值 当前值 磁盘值 备注,注明您已经添加的有关 ECO 更改。第64页/共67页 状态,可以为以下指示符之一: 待定: 您已经在资源属性编辑器中做了更改,但是该更改未保存 提交: 您已经在资源属性编辑器中做了更改,并保存了该更改,使用Check and Save All Netlist Changes 命令 (Edit 菜单) 可选中该更改。该更改在 Assembler、Timing Analyzer、EDA NetlistWriter 和 Simulator 中使用。Current Value与Target Value和Disk Value相等。 已应用: 您已经在资源属性编辑器中做了更改,并保存了该更改,但是不可使用 Check and Save All Netlist Changes 命令 (Edit 菜单) 选中该更改。该更改在 Assembler、Timing Analyzer、EDANetlist Writer 和 Simulator 中不可用。Current Value等于TargetValue,但是不等于Disk Value,并且Disk Value没有必要等于Old Value。 未应用: The Current Value等于 Old Value,并且Disk Value没有必要等于Old Value。 无效: 目标节点可能不存在于网表中。Current Value 不等于 OldValue 或 Target Value,并且 Disk Value 没有必要等于OldValue。 提交所需更改之后,应选择 Check and Save All Netlist Changes (Edit 菜单)以检查网表中所有其它资源更改的合法性。第65页/共67页验证 ECO 更改的效果 做过 ECO 更改后,应当运行 Compiler 的 Assembler 模块以建立新的 POF。 也可再次运行 EDA Netlist Writer 来生成新的网表, 或再次运行 TimingAnalyzer 或 Simulator 来验证适当 的时序改进中的更改结果。可以使用Compiler Tool 窗口,或在命令行或脚本中使用 quartus_asm 或 quartus_eda 以及 quartus_tan 可执行文件,单独 运行每个模块。但是,执行全编译将更改 ECO 更改 的值。第66页/共67页感谢您的观看。第67页/共67页
展开阅读全文