




已阅读5页,还剩101页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于HDL的设计输入 软件环境 图1给出了ISE的主界面窗口 ISE的主界面可以分为4个子窗口 图1ISE的主界面 1 基于HDL的设计输入 软件环境 左上角的窗口是源文件窗口 设计工程所包括的文件以分层的形式列出 在该子窗口的下面是处理窗口 该窗口描述的是对于选定的设计文件可以使用的处理流程 在ISE主界面最下面是脚本窗口 在该窗口中显示了消息 错误和警告的状态 同时还有Tcl脚本 Tcl是一种编程语言 的交互和文件中查找的功能 在ISE的右上角是多文档的窗口 在该窗口可以查看html 文本标记语言 HypertextMarkupLanguage 是用于描述网页文档的一种标记语言 的报告 ASCII码文件 原理图和仿真波形 通过选择View RestoreDefaultLayout可以恢复界面的原始设置 2 基于HDL的设计输入 软件环境 1 源文件 source 子窗口这个窗口有三个标签 源 Source Snapshots 快照 Library 库 源标签内显示工程名 指定的芯片和设计有关的文档 在设计视图的每一个文件都有一个相关的图标 这个图标显示的是文件的类型 HDL文件 原理图 IP核和文本文件 表示该设计文件包含了更低层次的设计模块 标签内显示的是目前所打开文件快照 一个快照是在该工程里所有文件的一个拷贝 通过该标签可以察看报告 用户文档和源文件 该标签下所有信息都是只读的 库标签内显示与当前打开工程相关的库 3 基于HDL的设计输入 软件环境 2 处理 process 子窗口在该窗口只有一个处理标签 该标签有下列功能 增加已有文件 创建新文件 察看设计总结 访问符号产生工具 例化模板 察看命令行历史和仿真库编辑 用户约束文件 访问和编辑位置和时序约束 综合 检查语法 综合 察看RTL和综合报告 设计实现 访问实现工具 设计流程报告和其它一些工具 产生可编程文件 访问配置工具和产生比特流文件 4 基于HDL的设计输入 软件环境 3 脚本 transcript 子窗口脚本子窗口有5个缺省的标签 Console error warnings Tclshell findinfile Console标签显示错误 警告和信息 X表示错误 表示警告 Warning标签只显示警告消息 Error标签只显示错误消息 Tclshell标签是与设计人员的交互控制台 除了显示错误 警告和信息外 还允许设计人员输入ISE特定命令 Findinfile标签显示的是选择Edit FindinFile操作后的查询结果 5 基于HDL的设计输入 软件环境 4 工作区 Workspace 子窗口工作区子窗口提供了设计总结 文本编辑器 ISE仿真器 波形编辑器 原理图编辑器功能 设计总结提供了关于该设计工程的更高级信息 包括信息概况 芯片资源利用报告 与布局布线相关性能数据 约束信息和总结信息等 源文件和其它文本文件可以通过设计人员指定的编辑工具打开 编辑工具的选择由Edit Preference属性决定 缺省的是ISE的文本编辑器 通过该编辑器可以编辑源文件和用户文档 也可以访问语言模板 6 基于HDL的设计输入 软件环境 通过ISE仿真器和波形编辑器创建和仿真测试平台 波形编辑器提供了图形化的激励源和期望响应输出 然后产生使用VHDL Verilog语言描述的测试平台 原理图编辑器集成在ISE中 原理图编辑器是采用图形的方式创建和查看逻辑设计 7 基于HDL的设计输入 综合工具介绍 EDA设计人员可以使用不同的综合工具综合设计 下面将介绍ISE支持的综合工具 并包括与综合工具相关的属性设置 1 精确的综合工具这种综合工具不属于ISE软件包的一部分 如需使用必须单独购买 两个通常使用的属性是优化目标和优化级别 通过选择这两种属性来控制综合结果 面积或速度 以及综合器运行时间 这种综合工具对HDL和原理图设计流程均可使用 8 基于HDL的设计输入 综合工具介绍 2 Synplify Synplifypro工具这种综合工具不属于ISE的一部分 如需使用必须单独的购买 这种综合工具只能用于基于HDL语言的设计流程 而不能用于基于原理图的设计流程 3 XST综合工具这种综合工具是ISE软件包的一部分 是Xilinx公司自己的综合工具 这种综合工具对基于HDL语言和原理图的设计流程均可使用 9 设计综合和行为仿真 行为综合 在集成电路设计领域 综合是指设计人员使用高级设计语言对系统逻辑功能的描述 在一个包含众多结构 功能 性能均已知的逻辑元件的逻辑单元库的支持下 将其转换成使用这些基本的逻辑单元组成的逻辑网络结构实现 这个过程一方面是在保证系统逻辑功能的情况下进行高级设计语言到逻辑网表的转换 另一方面是根据约束条件对逻辑网表进行时序和面积的优化 10 设计综合和行为仿真 行为综合 行为级综合可以自动将系统直接从行为级描述综合为寄存器传输级描述 行为级综合的输入为系统的行为级描述 输出为寄存器传输级描述的数据通路 行为级综合工具可以让设计者从更加接近系统概念模型的角度来设计系统 同时 行为级综合工具能让设计者对于最终设计电路的面积 性能 功耗以及可测性进行很方便地优化 行为级综合所需要完成的任务从广义上来说可以分为分配 调度以及绑定 11 设计综合和行为仿真 行为综合 分配包括决定系统实现所需要的各个功能组件的个数以及种类 这些组件以及资源来自采用寄存器传输级描述的元件库 包括诸如运算逻辑单元 加法器 乘法器和多路复用器等 分配同时也决定了系统中总线的数量 宽度 以及类型 12 设计综合和行为仿真 行为综合 调度为行为级描述中的每个操作指派时间间隙 这也成为控制执行步骤 数据流从一级寄存器流向下一级寄存器并按调度所指定的执行步骤在功能单元上执行 每一个执行步骤的时间长度通常为一个时钟周期 并且在这一个执行步骤中的操作被绑定到特定寄存器传输级描述的组件上 上述这些操作都完成后 系统所完成的功能被分配到各个功能单元模块 变量被存储在各个存储单元 并且不同功能单元之间的互连关系也建立起来了 在实际的PLD设计流程中 逻辑综合将使用硬件逻辑描述语言如Verilog VHDL等描述的寄存器传输级 RTL 描述 转换成使用逻辑单元库中基本逻辑单元描述的门级网表电路 13 设计综合和行为仿真 基于XST的综合 当所有的设计完成 并且进行完语法检查后 就可以使用Xilinx的XST工具或Synplify工具进行综合了 综合工具使用HDL代码 然后生成支持的网表格式EDIF或NGC 然后Xilinx的实现工具将使用这些网表文件完成随后的处理过程 综合工具在对设计的综合过程中 主要执行以下三个步骤 1 语法检查过程 检查设计文件语法是否有错误 2 编译过程 翻译和优化HDL代码 将其转换为综合工具可以识别的元件序列 3 映射过程 将这些可识别的元件序列转换为可识别的目标技术的基本元件 14 设计综合和行为仿真 基于XST的综合 在ISE的主界面的处理子窗口的synthesis的工具可以完成下面的任务 查看综合报告 viewSynthesisReport 查看RTL原理图 ViewRTLschematic 查看技术原理图 ViewTechnologySchematic 检查语法 CheckSyntax 和产生综合后仿真模型 GeneratePost SynthesisSimulationModel 15 设计综合和行为仿真 约束及设计综合的实现 XST支持用户约束文件格式 UCF UserConstraintFile 该文件主要是用于综合和时序的约束 这种文件格式叫Xilinx的约束文件 XCF XilinxConstraintFile 下面介绍该设计中所用到的用户文件的生成和插入设计的步骤 1 在ISE主界面 选择Project Addsource 选择stopwatch xcf文件 并打开 2 stopwatch xcf文件作为用户文档添加到用户的设计文件中 3 打开该文件 下面是对于该设计的约束描述 NET CLK TNM NET CLK GROUP 16 设计综合和行为仿真 约束及设计综合的实现 TIMESPEC TS CLK PERIOD CLK GROUP 20ns 时序约束BEGINMODELstopwatch 以下是管脚约束NET clk LOC E12 NET sf d LOC Y15 NET sf d LOC AB16 NET sf d LOC Y16 17 设计综合和行为仿真 约束及设计综合的实现 NET sf d LOC AA12 NET sf d LOC AB12 NET sf d LOC AB17 NET sf d LOC AB18 NET sf d LOC Y13 END 18 设计综合和行为仿真 约束及设计综合的实现 4 关闭该文件 5 在工程管理窗口 选择stopwatch vhd文件 在处理子窗口 选择Synthesis 并单击鼠标的右键选择Properity属性 6 在SynthesisOptions标签下 单击SynthesisConstraintsFile属性域 输入stopwatch xcf 7 选中写时序检查 WriteTimingContraints 选项 单击OK 8 选中stopwatch vhd文件 并在处理子窗口用鼠标双击Synthesize选项 通过上面的步骤 完成对约束文件的配置过程 19 设计综合和行为仿真 RTL符号的查看 在综合完成后 XST将产生RTL的原理图 RTLSchematic 可以通过RTL原理图查看工具 看到综合后的逻辑连接关系 RTL原理图 RTLSchmatic 是优化前的HDL代码的逻辑 技术原理图 TechnologySchematic 是HDL综合完成后的设计和目标技术的映射 20 设计综合和行为仿真 RTL符号的查看 通过下面的步骤 查看RTL对HDL设计的描述过程 在处理子窗口 点击 Synthesize XST选项 将其下面的功能分层展开 双击ViewRTLSchematic或ViewTechnologySchematic选择 如下图 RTL的查看工具将显示出HDL的顶层设计的符号描述 双击该图标 可以更进一步的看到底层模块的连接关系 21 设计综合和行为仿真 RTL符号的查看 22 设计综合和行为仿真 行为仿真的实现生成测试向量 HDL还可以描述变化的测试信号 描述测试信号的变化和测试过程的模块叫做测试平台 Testbench 它可以对任何一个Verilog VHDL模块进行动态的全面测试 通过对被测试模块的输出信号的测试 可以验证逻辑系统的设计和结构 并对发现的问题及时修改 测试平台是为逻辑设计仿真而编写的代码 它能直接与逻辑设计接口 如图2所示 通过向逻辑设计施加激励 检测被测模块的输出信号 23 设计综合和行为仿真 行为仿真的实现生成测试向量 测试平台通常使用VHDL Verilog e或者OpenVera编写 同时还能调用外部的文件和C函数 测试平台可以使用同逻辑设计不同的描述语言 仿真器通常提供支持不同描述语言的混合仿真功能 24 设计综合和行为仿真 行为仿真的实现生成测试向量 硬件描述语言如Verilog和VHDL等 都提供了两种基本的建模方式 行为级和寄存器传输级 寄存器传输级是对硬件逻辑进行可综合性的描述 使用的是HDL语言中可综合逻辑设计激励响应测试平台结果显示平台的描述部分 寄存器传输级代码可以由逻辑综合工具直接转换成门级电路 行为级描述是对硬件逻辑更为灵活和抽象的描述 描述的重点在于硬件逻辑的功能 通常不考虑时序问题 行为级代码通常不能被逻辑综合工具转换成门级电路 测试平台以行为级描述为主 不使用寄存器传输级的描述形式 25 设计综合和行为仿真 行为仿真的实现生成测试向量 测试平台主要由两个组件构成 激励生成和响应检测 它们同被测单元 DUT DeviceUnderTest 的关系如图3所示 26 设计综合和行为仿真 行为仿真的实现生成测试向量 DUT是待测的逻辑电路 通常 DUT是使用硬件逻辑描述语言HDL编写的寄存器传输级电路 激励生成模块的主要功能是根据DUT输入接口的信号时序 对DUT产生信号激励 将测试信号向量输入到DUT中 响应检测模块根据DUT输入接口的信号时序 响应DUT的输出请求 并检查输出结果的正确性 27 设计综合和行为仿真 行为仿真的实现生成测试向量 建立测试平台时 首先应针对DUT的功能定义测试向量 然后根据每一个测试向量的要求分别设计激励生成和响应检测模块 要求激励生成模块能够能在DUT的接口上产生该测试向量所需的信号激励 响应检测模块能够对DUT在这种信号激励下的结果输出进行响应和检测 最后将激励生成模块 DUT和响应检测模块相连 组成验证环境 在仿真器上进行仿真 根据响应检测模块的检测报告来判断测试向量是否通过测试 28 设计综合和行为仿真 设置仿真工具 Xilinx的ISE工具提供了集成设计流程 该设计流程支持基于MentorGraphics公司Modelsim仿真工具和ISE仿真工具 这两种仿真工具均可从工程向导中运行 只有安装Modelsim软件才能使用Modelsim仿真工具 ModelSimPE和ModelSimSE是MentorGraphics公司ModelSim软件的完全版本 为配合ISE9 2库以上版本的仿真 需要使用ModelSim6 0或更高版本 ModelSimXE是基于ModelSimPE的ModelSimXinlinx版本 当安装ISE软件时 ISE仿真工具就自动安装完成 所以不需要进行额外安装 29 设计综合和行为仿真 建立波形测试向量 这一部分介绍通过波形编辑器产生测试向量的过程 可以通过波形编辑器 以图形的方式输入激励信号 生成VHDL或Verilog测试平台 下面的过程给出了为子模块创建测试平台波形的步骤 当然波形编辑器也能为顶层设计生成一个激励源 下面给出通过波形编辑器创建一个测试平台波形文件的步骤 30 设计综合和行为仿真 建立波形测试向量 1 在SourceTab选项卡中 选择time cnt 2 选择Project NewSource 3 在NewSource向导中 选择源类型为TestBenchWaveform 4 输入time cnt tb 单击Next 需要注意的是 在选项对话框中 文件time cnt为默认的源文件 这是因为在SourceTab选项卡中 选择了time cnt 单击Next 单击Finish 5 在ISE中打开波形编辑器 显示初始化时序对话框 可以设定仿真时间参数 时钟为高和低区域决定了时钟周期 输入建立时间决定了输入有效起始时间 输出有效延迟定义了时钟有效后输出有效的起始时间 31 设计综合和行为仿真 建立波形测试向量 6 初始化时序对话框 如下输入 ClockTimeHigh 10ClockTimeLow 10InputSetupTime 5OutputValidDelay 57 在全局时钟部分选择GSR FPGA 8 将初始化的测试平台 TestBench 长度改为3000 单击Finish 通过上面的步骤 完成建立测试向量的过程 32 设计综合和行为仿真 波形测试向量的应用 在波形编辑器中 可以应用过渡带 High Low 其宽度由Inputsetupdelay和theOutputvaliddelay决定 对该测试产生如下激励输入 1 单击CE在110ns时为高2 单击CLR在150ns时为高3 单击CLR在230ns时为低4 单击保存 新的测试平台波形源 time cnt tb tbw 自动加入到工程中5 在SourceTab选项卡中 选择time cnt tb tbw图8 10在波形编辑器中生成激励信号6 双击GenerateSelf CheckingTestBench 33 设计综合和行为仿真 波形测试向量的应用 一个包含输出数据和自检码的测试平台产生并添加到工程中 创建的测试平台文件可用于与仿真后的数据比较 图8 10在波形编辑器中生成激励信号 34 设计综合和行为仿真 添加HDL测试文件 下面给出添加测试平台文件步骤和过程 1 如果建立一个新的测试平台文件 可选择Project NewSource 选择文件类型为VHDLTestBench或VerilogTextFixture 生成一个仿真文件 可以在这个文件中定义所需要的测试平台及其测试向量 2 如果添加已经设计完成的测试平台文件 可选择Project AddSource 在该设计中选择测试平台文件stopwatch tb vhd 并在文件类型对话框中选择VHDLTestBenchFile VerilogTextFixtureFile ISE会自动识别顶层设计文件并将其与测试文件进行关联 35 设计综合和行为仿真 添加HDL测试文件 如果在工程中已经添加了一个测试平台文件 那么就可以用ModelSim完成行为仿真 ISE与ModelSim已经完全一体化 ISE能使用ModelSim创建工作路径 编译源文件 下载设计文件 并进行仿真 使用ISE软件或ModelSim软件 仿真结果是相同的 36 设计综合和行为仿真 添加HDL测试文件 下面给出ISE的工程向导调用ModelSim仿真的步骤 1 在SourceTab选项卡中 右键单击器件名 如xc3s700A 4fg484 选择Properties 属性 选项 2 在ProjectProperties 工程属性 对话框的仿真器域 Simulatorfield 中选择所使用的ModelSim类型 并和所使用的VHDL语言进行关联 37 设计综合和行为仿真 基于ISE行为仿真实现 如果在工程中已经生成了一个测试平台文件 那么就可以在ISE中进行行为仿真 ISE能创建工作路径 编译源文件 下载设计文件 并根据仿真属性进行仿真 下面给出了使用ISE仿真器进行仿真的步骤 1 在SourceTab选项卡中 右键单击器件名 如xc3s700A 4fg484 2 选择Properties 属性 选项 3 在ProjectProperties 工程属性 对话框的Simulatorfield中选择ISESimulator 通过上面的步骤完成对ISE仿真工作的属性设置 38 设计综合和行为仿真 定位仿真程序 在仿真过程中能够使用ISE仿真器对设计进行仿真 并定位ISE仿真程序 下面给出定位仿真程序的步骤 1 在SourceTab选项卡中 选择BehavioralSimulation 2 选择Testbench测试文件 stopwatch tb 3 在Processestab选项卡中 单击 旁边的ISESimulator展开程序目录层次 39 设计综合和行为仿真 定位仿真程序 下面是可使用的仿真过程 1 CheckSyntax 这个过程检查测试平台文件中的语法错误 2 SimulateBehavioralModel 这一过程开始设计仿真 3 产生一个自检的HDLTestbench 这个过程产生一个相当于测试平台波形 TBW 文件的自检HDLTestbench文件 并加入到工程中 也可以通过这一过程来更新现有的自检测试平台文件 40 设计综合和行为仿真 设置仿真属性 在ISE中可以设置包括网表属性的多个ISE仿真器的仿真属性 下面给出设置行为仿真属性的步骤 1 在SourceTab选项卡中 选择测试平台文件 stopwatch tb 2 在Processestab选项卡中 单击 旁边的ISESimulator展开程序目录层次 3 右键单击SimulateBehavioralModel 4 选择属性 Properties 5 如图8所示 在ProcessProperties对话框中 设置Propertydisplaylevel为Advanced 这个全局性的设置 可看到所有可用的属性 6 将仿真运行时间改为2000ns 7 单击Apply和OK 41 设计综合和行为仿真 设置仿真属性 图8行为仿真属性设置 42 设计综合和行为仿真 运行仿真 一旦将ProcessProperties设置完成 那么已经准备好运行ISESimulator 启动行为仿真 双击SimulateBehavioralModel ISESimulator创建工作目录 编译源文件 加的设计 并进行指定时间的仿真模拟 大多数设计运行速度为100赫兹 并设定一定意义的时间来仿真 第一次复位后 输出过渡的SF D和LCD E控制信号在大约33毫秒 这就是为什么计数器不在短时间的仿真中使用 只有DCM信号监测来验证它们是否正常工作 43 设计综合和行为仿真 添加信号 为了观察仿真过程中的内部信号 必须将内部信号添加到波形窗口中 ISE会自动将顶层端口信号加入到波形窗口 其它信号在基于被选结构的信号窗口中显示 下面将给出将DCM信号加入到波形窗口的步骤 1 在SimHierarchy窗口中 单击 展开stopwatch tb目录层次 2 单击 展开uutstopwatch tb目录层次 图8 9为Verilog的SimHierarchy窗口 当然原理图或是VHDL的SimHierarchy窗口可能有所不同 3 在SimHierarchy窗口中选择dcm1 44 设计综合和行为仿真 添加信号 4 单击并将SimHierarchy窗口中的CLKIN IN信号拖动到波形窗口中 5 在Signal Object窗口中 选择下列信号 RST IN CLKFX OUT CLK0 OUT LOCKED OUT 6 单击右键 选择AddtoWaveform 需要注意的是 新增信号的波形还未给出 这是因为ISE仿真器还未记录这些信号的数据 在默认情况下 只有经过重新仿真后 ISE仿真器才会记录新增到波形窗口中的信号 所以在波形窗口新增信号后 需要重新进行仿真 45 设计综合和行为仿真 添加信号 图9Sim分层窗口 46 设计综合和行为仿真 重新仿真 为了在ISESimulator中重新仿真 需要执行下面的步骤 1 单击RestartSimulation图标 2 在ISESimulator命令行中 输入run2000ns 按下Enter键 3 仿真运行2000ns 仿真结束后 在波形窗口中可见DCM新波形 47 设计综合和行为仿真 分析信号 通过分析DCM信号可以验证计数器工作是否正常 CLK0 OUT信号需为50MHz CLKFX OUT需为26MHz 只在LOCKED OUT信号为高时 DCM输出信号有效 因此 只在LOCKED OUT信号为高时 才能分析DCM信号 ISE仿真器中可通过标记来测量信号之间的距离 下面给出测量CLK0 OUT信号的步骤 1 单击MeasureMarker图标 2 在LOCKED OUT信号为高后 单击标记CLK0 OUT信号的第一个上升沿 3 单击标记第二个上升沿 48 设计综合和行为仿真 分析信号 4 可观察波形底部两个光标之间的距离 测量值为20000ps 50MHz 即为Testbench的输入频率 也是DCMCLK0的输出 5 同样使用上述方式测量CLKFX OUT 测量值为38462ps 约为26MHz 49 设计实现和时序仿真 实现过程概述 在ISE中的实现 Implement 过程 是将综合输出的逻辑网表翻译成所选器件的底层模块与硬件原语 将设计映射到器件结构上 进行布局布线 达到在选定器件上实现设计的目的 实现过程主要分为3个步骤 翻译 Translate 逻辑网表 映射 Map 到器件单元与布局布线 Place Route 50 设计实现和时序仿真 实现过程概述 翻译的主要作用是将综合输出的逻辑网表翻译为Xilinx特定器件的底层结构和硬件原语 映射的主要作用是将设计映射到具体型号的器件上 布局布线的主要作用是调用Xilinx布局布线器 根据用户约束和物理约束 对设计模块进行实际的布局 并根据设计连接 对布局后的模块进行布线 产生PLD配置文件 51 设计实现和时序仿真 建立约束文件 如果已经通过原理图或HDL输入创建了工程 并设计输入了源文件和EDIF网表文件 创建UCF文件的步骤 1 在SourceTab选项卡中 选择顶层文件stopwatch 2 选择Project NewSource 选择ImplementationConstraintsFile 3 输入stopwatch ucf作为文件名 单击Next 4 在列表中选择stopwatch文件作为UCF的约束对象文件 UCF一般情况下是对顶层文件的约束 单击Next 最后单击Finish 52 设计实现和时序仿真 设置实现属性参数 实现属性决定了软件映射 布局布线及优化过程 这一部分介绍如何在设计实现中设置其属性的过程 下面给出了设置属性的步骤和方法 1 在SourceTab选项卡中 选择顶层文件stopwatch 2 在Processes选项卡中 右键单击ImplementDesign 3 选择右键菜单栏中的Properties选项 ProcessesProperties对话框提供了翻译 映射 布局布线 仿真和时序报告等属性 注意设计实现中不同方面的属性类型 4 如图1 在对话框的右下角 设置属性的显示级别为Advanced 这个全局性的设置 可看到所有可用的属性 53 设计实现和时序仿真 设置实现属性参数 图1静态时序报告属性设置 54 设计实现和时序仿真 设置实现属性参数 5 单击Post MapStaticTimingReportProperties类型 6 将报告类型改为VerboseReport 这个报告将会在映射完成之后产生 7 单击Post Place RouteStaticTimingReportProperties 布局布线后静态时序报告 类型 8 将报告类型改为VerboseReport 这个报告将会在布局布线完成之后产生 9 单击Place RouteProperties类型 10 如图2 将Place RouteEffortLevel Overall 设置为High 这个选项将提高在实现过程中全局布局布线的水平 55 设计实现和时序仿真 设置实现属性参数 11 单击OK退出ProcessProperties对话框 图2布局布线属性设置 56 设计实现和时序仿真 创建分区 在逻辑设置中一个实例创建一个分区是为了表明在实现过程中这个实例可与重复利用 分区可以嵌套分级并在任何一个设计的HDL模块中定义 在Verilog中分区设置基于模块实例 而在VHDL中 分区设置是基于实体构造 一个由多个实例构成的模块将有多个分区 一个分区对应一个实例 HDL设计的顶层有一个默认分区 分区自动识别输入源的变化 包括HDL的改变 约束改变和命令行的改变 分区的创建在综合工具中完成 57 设计实现和时序仿真 创建时序约束 用户约束文件 UCF 提供了一个无需回到设计输入工具就能约束逻辑设计的构造方法 可使用约束编辑器和平面图编辑器的图形化界面进行时序和管脚约束 启动约束编辑器 下面给出创建时序约束的步骤 1 在SourceTab选项卡中 选择Stopwatch 2 在Processes选项卡中 展开UserConstraints层级目录 3 双击CreateTimingConstraints 如图4 这时自动执行翻译步骤 然后约束编辑器自动打开 58 第9章设计实现和时序仿真 创建时序约束 图4创建时序约束 59 设计实现和时序仿真 设计翻译 在实现过程中 ISE管理文件的创建 ISE工具的属性对话框对其进行设置 这将完全控制设计的实现 implement 过程 一般情况下 先设置选项 然后双击ImplementDesign执行整个流程 下面将给出设计实现过程中的每一步骤的详细过程 在翻译过程中 NGDBuild程序完成以下功能 1 将输入设计网表和写入的结果转换成单个综合NGD网表 这个网表描述了设计逻辑 包括布局及时序约束 2 完成时序规范及逻辑设计规则的检查校验 3 从用户约束文件 UCF 中 将约束加入综合网表中 60 设计实现和时序仿真 时序约束 当运行创建时序约束 CreateTimingConstraints 时 这时自动执行翻译步骤 然后打开约束编辑器 约束编辑器的作用主要包括以下几个方面的内容 1 编辑在原有UCF文件中的约束 2 在设计加入新的约束 约束编辑器中的输入文件包括 1 NGD NativeGenericDatabase 文件NGD文件为映射的输入文件 然后输出NCD NativeCircuitDescription 文件 2 UCF UserConstraintFile 文件默认情况下 当NGD文件打开后 那么使用现存的UCF文件 当然也可重新指定UCF文件 61 设计实现和时序仿真 时序约束 图5约束编辑器 全局分支 62 设计实现和时序仿真 时序约束 如图5所示 约束编辑器产生一个有效的UCF文件 翻译步骤 NGDBuild 通过使用UCF文件和其设计源网表文件 产生一个新NGD文件 映射过程读取NGD文件 在该设计中 stopwatch ngd和stopwatch ucf文件自动输入到约束编辑器中 在下面一部分中 与PERIOD 全局OFFSETIN 全局OFFSETOUT和TIMEGRPOFFSETIN有关的约束条件将写入UCF并在随后的实现过程中使用 如图9 6所示 时序约束的全局分支自动显示设计中的所有时钟网络 63 设计实现和时序仿真 时序约束 下面给出在约束编辑器中编辑约束的步骤 1 双击与时钟网络CLK相关的周期单元 打开时钟周期对话框 2 为定义时钟信号 选择SpecifyTime 可明确地定义时钟的周期 3 在Time框中输入7 0 图6约束编辑器 全局分支 64 设计实现和时序仿真 时序约束 4 在单元选择下拉菜单中选择ns 5 在输入抖动部分 Time框中输入60 6 在单元选择下拉菜单中选择ps 7 单击OK 通过全局时钟约束设定来更新周期单元 默认为50 运行周期 8 单击选择时钟信号的PadtoSetup单元 并输入6ns 设置了输入信号的GlobalOFFSETIN约束 9 单击选择时钟信号的ClocktoPad单元 如图9 7 输入38ns 设置了输入信号的GlobalOFFSETOUT约束 65 设计实现和时序仿真 时序约束 10 在Souces界面中 选择时序约束的端口 Port 左侧即为当前的端口列表 11 在PortName栏中 选择SF D 12 按住Shift键并选择SF D 即为选择了一组端口 13 在GroupName框中 输入display grp 并单击CreateGroup按钮创建分组 图7时序约束 66 设计实现和时序仿真 时序约束 14 在SelectGroup下拉菜单中 选择你所创建的分组 图8管脚约束 67 设计实现和时序仿真 时序约束 15 单击ClocktoPad ClocktoPad对话框被打开 16 在TimingRequirement中输入32 17 在RelativetoClockPadNet中选择CLK 18 单击OK 19 选择File Save 那么所有的改动都将保存在当前目录下的stopwatch ucf文件中 20 选择File Close 关闭约束编辑器 68 设计实现和时序仿真 管脚和面积约束 利用Floorplan编辑器能添加和编辑定义在NGD文件中的管脚和面积约束 Floorplan编辑器可以产生一个有效的UCF文件 翻译步骤中使用UCF文件和设计网表文件来产生一个新的NGD文件 Floorplan编辑器主要是将各个模块进行类似于电路板的全局布局 如Ram模块 数字时钟管理单元 DCMs 吉比特收发器 GTs 和BUFGs等 下面主要介绍输入输出模块 IOB 分配信号的过程 Floorplan编辑器通过编辑UCF文件来添加新的布局布线约束 下面给出添加新的布局布线约束的过程 69 设计实现和时序仿真 管脚和面积约束 1 在Sources窗口中 选择stopwatch模块 2 单击 展开ImplementDesign目录层级 3 单击 展开Translate目录层级 4 如图11所示 双击AssignPackagePinsPost Translate 那么Floorplan编辑器自动启动 如果是EDIF工程 双击用户约束目录下的AssignPackagePins 70 设计实现和时序仿真 管脚和面积约束 5 如图12所示 选择工作区中的Package标签 视图显示器件封装 图11编辑管脚位置 71 设计实现和时序仿真 管脚和面积约束 6 选择Processes面板中选择DesignObject标签 窗口显示所有设计对象 7 在DesignObject标签中 在选择过滤器中将ALL改为IOs 并输入 LCD 图12Floorplan编辑器 72 设计实现和时序仿真 管脚和面积约束 8 如图13所示 在LOC栏中 约束以下管脚 LCD E AB4 LCD RS Y14 LCD RW W13 图13管脚约束 73 设计实现和时序仿真 管脚和面积约束 9 在DesignObject标签中 选择一下信号进行管脚关联 LAP LOAD T16 RESET U15 MODE T14 STRTSTOP T15 10 一旦管脚锁定 选择File Save 那么所有修改将被保存在当前目录下的stopwatch ucf文件中 11 选择File Close 关闭Floorplan编辑器 74 设计实现和时序仿真 设计映射 当设计实现策略已经定义完毕 属性及约束 时 可以开始设计映射过程 下面给出实现映射过程的步骤 1 在Sources窗口中 选择stopwatch模块 2 在Processes选项卡中 右键单击Map并选择Run 或双击Map 3 展开ImplementDesign目录层级 可以实现完成情况 75 设计实现和时序仿真 设计映射 设计映射到CLBs和IOBs 映射完成以下功能 1 为设计中的所有基本逻辑单元分配CLB和IOB资源 2 处理布局和时序约束 完成目标器件的优化过程 并在最终的映射网表中执行设计规则的检查 每一步骤都将产生该处理过程的报告 如下表所示 76 设计实现和时序仿真 设计映射 77 设计实现和时序仿真 设计映射 下面给出浏览报告的步骤 1 如图14展开翻译 Translate 或映射 Map 目录 图14映射和翻译进度 78 设计实现和时序仿真 设计映射 2 双击翻译报告 Translatereport 或映射报告 Maprepor 3 浏览报告并阅读Warnings Errors和Information等相关信息 设计概要 DesignSummary 中也包含这些报告 79 设计实现和时序仿真 使用时序分析评估块延迟 映射完成后 在映射后静态时序报告 Post MapStaticTimingReport 中有逻辑水平的详细评价来评估设计中的逻辑路径 评估验证了设计中模块延迟的合理性 由于设计还没有真正地布局布线 所以报告中并没有给出实际的布线延迟信息 时序报告描述了逻辑模块的延迟和估算的布局延迟 网络延迟给出了基于模块之间的最优的距离 80 设计实现和时序仿真 50 50规则估计时序目标 在映射阶段之后 通过估算设计来预测设计的时延目标的可行性 根据粗略估算准则 50 50规则 规定在设计布局后在任意一个路由中模块延迟占了总延迟的大概50 例如 模块延迟为10ns 那么布局布线后的延迟约束至少为20ns 如果设计较为紧凑 那么映射后静态时序报告中会给出基于模块延迟的和布局延迟的大概的延迟时序约束分析 这个分析帮助计算时序约束是否满足条件 这个报告在映射之后 布局布线之前生成 81 设计实现和时序仿真 时序约束选项中报告路径 使用映射后静态时序报告来计算布局布线过程中可能出现的违反时序规则的情况 下面给出浏览映射后静态时序报告以及检查PERIOD约束步骤 1 在Processes选项卡中 单击 展开Map层级目录 2 双击GeneratePost MapStaticTiming 3 如图16 打开映射后静态时序报告 双击AnalyzePost MapStaticTimingReport 那么分析过程自动启动并显示报告 82 设计实现和时序仿真 时序约束选项中报告路径 4 如图17所示 选择timingconstraint 时序约束 目录下的TS dcm inst CLKX BUF 图16处理映射后静态时序报告 83 设计实现和时序仿真 时序约束选项中报告路径 图17选择映射后时序约束 工作区域显示了所选择的约束报告 在这份报告的上方 会发现选定的约束和经过映射工具后的获得的最小周期 默认情况下 只有对三条路径时间约束显示 选择其中一个路由可以看到一个包含的器件和路由的极限延迟 84 设计实现和时序仿真 时序约束选项中报告路径 需要注意的是 该报告显示逻辑的百分比和路由百分比 例如逻辑的88 0 12 0 的路线 未布局布线的层的延迟估计根据最佳的模块布线给出 5 报告浏览完毕 选择File Close来关闭时序分析器 85 设计实现和时序仿真 布局布线验证 设计经过映射后 就可以进行布局布线 PAR Place Route 了 通过两种算法完成布局布线过程 1 时序驱动布局布线 通过输入网表或是约束文件中的时序约束来进行布局布线 2 非时序驱动布局布线 布局布线过程中忽略所有时序约束 一旦在前面的步骤中定义了时序约束 那么只会采用第一种算法完成PAR过程 86 设计实现和时序仿真 布局布线验证 下面给出PAR完成后 报告的浏览步骤 1 在Processes选项卡中 双击Place Route 布局布线执行完毕后 同样可浏览其报告文件 2 单击 展开Place Route层级目录 3 双击Place RouteReport 如表所示 同样可以浏览检查PadReport和AsynchronousDelayReport报告文件 87 设计实现和时序仿真 布局布线验证 88 设计实现和时序仿真 评估布局后时序 以下是stopwatch设计的布局布线后静态时序报告 Post Place RouteStaticTimingReport 的概要 1 由于实际的布线延迟 最小周期值有所增加 Post Maptiming报告表明逻辑延迟占了最小周期80 90 而post layout报告表明逻辑延迟只占了30 40 为布线的层的相应值也改变 2 Post layout报告的结果不需要遵循之前所描述的50 50规则 因为最坏的路径主要包含了元器件的延迟 89 设计实现和时序仿真 评估布局后时序 3 对于那些很难满足时序约束的情况 最坏的情况主要取决于逻辑延迟 因为布线延迟只占了所有延迟的很小一部分 而且要进一步减小这些布线延迟是不切实际的 一般来说 可以通过减少设计中的逻辑层来减小模块延迟及改善设计性能 4 在Sources选项卡中选择Timing标签 在Processes选项卡中选择TimingObjects标签 5 在时序分析器 TimingAnalyzer 中TS DCM INST CLKFX BUF约束为高亮显示 选择MaximumDataPath超链接 启动FloorplanImplemented窗口 相应的数据路径则高亮显示 90 设计实现和时序仿真 评估布局后时序 6 如图22所示 选择View Overlays ToggleSimplified和ActualViews 这将使数据路径从简单视图显示为实际路径 图22Floorplan的实现 使用简化的路由的数据路径 91 设计实现和时序仿真 评估布局后时序 7 可选择图中不同网络的一部分路径来观察时间延迟及其他信息 8 选择File Close 退出FloorplanImplemented视图 9 再次选择File Close 关闭Post Place RouteStaticTimingreport 通过上面的过程 全面了解布局布线后静态时序 92 设计实现和时序仿真 改变分区HDL 该部分将通过HDL的变更来更新设计 变更保存在LCD CNTRL INST模块中 所以只有部分分区才需要重综合及重实现 综合 映射和布局布线报告将显示哪些分区更新哪些分区保留 93 设计实现和时序仿真 时序仿真 时序仿真使用块和布线设计产生的布线延迟信息 从而能够对最坏情况下的电路行为给出一个更精确的评估 因此 当设计经布局布线后 需要进行时序仿真 时序仿真 布局布线后仿真 是完整设计流程中一个非常重要的步骤 时序仿真充分利用了布局布线后产生的详细定时和设计布局信息 因此 时序仿真更能反映出器件真实的工作状态 时序仿真还可以发现在只进行静态时序分析时没有发现问题 为了对设计进行完整的验证 设计应该进行静态和动态的分析 使用Modelsim仿真工具或XilinxISE仿真工具完成对设计时序仿真 94 设计实现和时序仿真 时序仿真 为了完成对设计的时序仿真 需要下面的文件 1 HDL设计文件 VHDL或Verilog 当完成了前一章的设计实现后 产生布局布线设计 本章中将使用NetGen工具 从布局布线设计中产生仿真网表 用于描述该设计的网表将被来完成时序仿真 2 测试平台文件 VHDL或Verilog 为了对设计进行仿真 需要一个测试平台 可以使用与行为仿真同样的测试平台 如果工程中还没有测试平台的话 可以参考前面章节中添加HDL测试平台的相关部分 3 指定仿真器工具 95 设计实现和时序仿真 时序仿真 选择对设计的秒表进行仿真所需的仿真器 下面给出配置的步骤 1 在Sourcestab下 右击设备行 xc3s700A 4fg484 选择Pr
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 合作式学习在高职专业英语课堂中的应用与革新
- 节气课程课件
- 应激相关障碍(一)
- 2025内蒙古呼伦贝尔农垦莫拐农牧场有限公司招聘16人笔试备考及1套参考答案详解
- 教师招聘之《小学教师招聘》考前冲刺测试卷含答案详解(突破训练)
- 教师招聘之《小学教师招聘》通关训练试卷详解附参考答案详解【研优卷】
- 教师招聘之《幼儿教师招聘》综合提升测试卷附参考答案详解(基础题)
- 教师招聘之《小学教师招聘》考前冲刺测试卷讲解及1套完整答案详解
- 教师招聘之《幼儿教师招聘》考试综合练习含答案详解【基础题】
- 基于2025年物联网的智能仓储风险管理体系研究报告
- 《智慧物流与供应链基础》课件 第一章 智慧物流与智慧供应链
- 2025年城市更新与历史文化街区保护相结合的社区治理模式研究报告
- 计算机二级MySQL真题下载试题及答案
- 佛山市顺德区容桂街道专业电镀产业发展规划(2023-2035年)环境影响报告书(简本)
- 核酸检测知识培训课件
- 无人机的专业知识课件
- 分子生物学检验技术第一章分子生物学检验技术绪论课件
- 住宅外墙饰面层损伤特性分析与防治
- 卫生院厉行节约、降低运营成本实施方案
- 模块2 电阻式传感器
- T-GDEIIA 56-2024 垂直起降低空航空器起降场基础设施配置技术要求
评论
0/150
提交评论