设计实现和时序仿真PPT课件_第1页
设计实现和时序仿真PPT课件_第2页
设计实现和时序仿真PPT课件_第3页
设计实现和时序仿真PPT课件_第4页
设计实现和时序仿真PPT课件_第5页
已阅读5页,还剩99页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

湖南大学电气与信息工程学院叶佳卓2014 4 设计实现和时序仿真 设计实现和时序仿真 本章概要 本章首先对建立用户约束文件的方法和设计分区进行了介绍 随后 本章对ISE设计流程的实现过程进行了详细的介绍 其中包括翻译 映射和布局布线的过程 在每个实现步骤中 介绍了属性参数的设置以及查看时序报告的方法 在此基础上 对布局布线后的设计进行了时序仿真 对设计进行时序仿真分别使用了Modelsim仿真器和ISE仿真器完成 设计实现和时序仿真 实现过程概述 在ISE中的实现 Implement 过程 是将综合输出的逻辑网表翻译成所选器件的底层模块与硬件原语 将设计映射到器件结构上 进行布局布线 达到在选定器件上实现设计的目的 实现过程主要分为3个步骤 翻译 Translate 逻辑网表 映射 Map 到器件单元与布局布线 Place Route 设计实现和时序仿真 实现过程概述 翻译的主要作用是将综合输出的逻辑网表翻译为Xilinx特定器件的底层结构和硬件原语 映射的主要作用是将设计映射到具体型号的器件上 布局布线的主要作用是调用Xilinx布局布线器 根据用户约束和物理约束 对设计模块进行实际的布局 并根据设计连接 对布局后的模块进行布线 产生PLD配置文件 设计实现和时序仿真 继续前面的设计 前几章仿真设计的秒表系统 包括5个输入 CLK RESET LAP LOAD MODE和SRTSTP 如果已经通过原理图或HDL输入创建了工程 并设计输入了源文件和EDIF网表文件 创建UCF文件的步骤 1 在SourceTab选项卡中 选择顶层文件stopwatch 2 选择Project NewSource 选择ImplementationConstraintsFile 3 输入stopwatch ucf作为文件名 单击Next 4 在列表中选择stopwatch文件作为UCF的约束对象文件 UCF一般情况下是对顶层文件的约束 单击Next 最后单击Finish 设计实现和时序仿真 设计实现过程 如果从这章开始设计 需要下载Xilinx提供的前面综合后的设计文件 在ISE中创建一个功能 并且把设计文件添加到工程中 1 解压缩文件wtut edif zip到空的工作目录下 2 在Zip文件中包含表9 1所给出的文件 设计实现和时序仿真 设计实现过程 3 打开ISE在ISim仿真器界面的工作台窗口下的ISim 提示符后面输入ise在PC机上 选择开始 所有程序 XilinxISEDesignSuite11 ISE ProjectNavigator 设计实现和时序仿真 设计实现过程 4 创建一个新的工程 然后添加EDIF网表 1 选择File NewProject2 输入EDIF Flow作为工程名3 选择EDIF作为top levelSourceType 顶层源文件类型 4 点击 Next 按钮5 选择stopwatch edf作为输入设计文件6 选择stopwatch ucf作为约束文件7 点击 Next 按钮 设计实现和时序仿真 设计实现过程 8 选择下面 DeviceFamily Spartan3a Device xc3s700a SpeedGrade 4 package fg4849 其它属性设置为默认值10 点击 Next 按钮11 点击 Finish 按钮12 复制timer preset ngc到EDIF Flow目录中在Source标签下 选择顶层模块 stopwatch edf或者stopwatch edn 这使设计可以被实现 implement 设计实现和时序仿真 设置实现属性参数 实现属性决定了软件映射 布局布线及优化过程 这一部分介绍如何在设计实现中设置其属性的过程 下面给出了设置属性的步骤和方法 1 在SourceTab选项卡中 选择顶层文件stopwatch 2 在Processes选项卡中 右键单击ImplementDesign 3 选择右键菜单栏中的Properties选项 ProcessesProperties对话框提供了Translate 翻译 Map 映射 PlaceandRoute 布局布线 TimingReport 时序报告 等属性 注意设计实现中不同方面的属性类型 设计实现和时序仿真 设置实现属性参数 4 如图9 1 在对话框的右下角 设置属性的显示级别为Advanced 这个全局性的设置 可看到所有可用的属性 5 点击Place RouteProperies分类 6 修改Place RouteEffortLevel Overall 为High 该属性提高布局布线时的努力级别 设计实现和时序仿真 设置实现属性参数 设计实现和时序仿真 创建时序约束 用户约束文件 UCF 提供了一个无需回到设计输入工具就能约束逻辑设计的构造方法 可使用约束编辑器和平面图编辑器的图形化界面进行时序和管脚约束 启动约束编辑器 下面给出创建时序约束的步骤 1 在SourceTab选项卡中 选择Stopwatch 2 在Processes选项卡中 展开UserConstraints层级目录 3 双击CreateTimingConstraints 如图9 4 这时自动执行翻译步骤 然后约束编辑器自动打开 设计实现和时序仿真 创建时序约束 设计实现和时序仿真 设计翻译 在实现过程中 ISE管理文件的创建 ISE工具的属性对话框对其进行设置 这将完全控制设计的实现 implement 过程 一般情况下 先设置选项 然后双击ImplementDesign执行整个流程 下面将给出设计实现过程中的每一步骤的详细过程 在翻译过程中 NGDBuild程序完成以下功能 1 将输入设计网表和写入的结果转换成单个综合NGD网表 这个网表描述了设计逻辑 包括布局及时序约束 2 完成时序规范及逻辑设计规则的检查校验 3 从用户约束文件 UCF 中 将约束加入综合网表中 设计实现和时序仿真 时序约束 当运行创建时序约束 CreateTimingConstraints 时 这时自动执行翻译步骤 然后打开约束编辑器 约束编辑器的作用主要包括以下几个方面的内容 1 编辑在原有UCF文件中的约束 2 在设计加入新的约束 约束编辑器中的输入文件包括 1 NGD NativeGenericDatabase 文件NGD文件为映射的输入文件 然后输出NCD NativeCircuitDescription 文件 2 UCF UserConstraintFile 文件默认情况下 当NGD文件打开后 那么使用现存的UCF文件 当然也可重新指定UCF文件 设计实现和时序仿真 时序约束 设计实现和时序仿真 时序约束 如图9 3所示 约束编辑器产生一个有效的UCF文件 翻译步骤 NGDBuild 通过使用UCF文件和其设计源网表文件 产生一个新NGD文件 映射过程读取NGD文件 在该设计中 stopwatch ngd和stopwatch ucf文件自动输入到约束编辑器中 在下面一部分中 与PERIOD 全局OFFSETIN 全局OFFSETOUT和TIMEGRPOFFSETIN有关的约束条件将写入UCF并在随后的实现过程中使用 如图9 6所示 时序约束的全局分支自动显示设计中的所有时钟网络 设计实现和时序仿真 时序约束 下面给出在约束编辑器中编辑约束的步骤 1 双击与时钟网络CLK相关的周期单元 打开时钟周期对话框 2 为定义时钟信号 选择SpecifyTime 可明确地定义时钟的周期 3 在Time框中输入7 0 设计实现和时序仿真 时序约束 4 在单元选择下拉菜单中选择ns 5 在输入抖动部分 Time框中输入60 6 在单元选择下拉菜单中选择ps 7 单击OK 通过全局时钟约束设定来更新周期单元 默认为50 运行周期 8 在ConstraintTypetree 约束类型树视图 中的TimingConstraints 时序约束 选择Input分支条件 9 双击GlobalOFFSETIN约束表中的 clk 信号 来打开创建建立时间 OFFSETIN 向导 图9 5INPUTJITTER约束值 设计实现和时序仿真 时序约束 10 如图9 6所示 保持第一页的默认值 然后点击 Next 设计实现和时序仿真 时序约束 11 如图9 7所示 在 Externalsetuptime 外部建立时间 offsetin 域中 输入6ns 图9 7OFFSETIN约束 设计实现和时序仿真 时序约束 12 在 DataValidduration 数据有效周期 域中 输入6ns 这为CLK信号创建一个GlobalOFFSETIN约束 13 点击 Finish 按钮 14 在ConstraintTypetree 约束类型树视图 中的TimingConstraints 时序约束 选择Output分支条件 15 双击GlobalOFFSETOUT约束表中的 clk 信号 来打开创建建立时间 OFFSETOUT 向导 设计实现和时序仿真 时序约束 16 如图9 8所示 在 Externalclocktopad 外部时钟到引脚 offsetout 域中 输入38ns 这为CLK信号创建一个GlobalOFFSETOUT约束 17 点击 OK 按钮 设计实现和时序仿真 时序约束 18 如图9 9所示 在没有约束的输出端口表中 使用Shift Click多重选择sf d到sf d信号 设计实现和时序仿真 时序约束 19 右击 选择CreateTimeGroup 创建时间组 20 在CreateTimeGroup 创建时间组 对话框中 输入display grp 并点击 OK 按钮 21 当提示ifyouwouldliketocreateanoffsetconstraint 是否想创建offset约束 点击 OK 按钮 设计实现和时序仿真 时序约束 22 如图9 10所示 在 Externalclocktopad offsetout 域中输入32ns 设计实现和时序仿真 时序约束 23 点击 OK 按钮 24 在约束编辑器中选择File Save25 选择File Close 关闭约束编辑器 设计实现和时序仿真 使用PlanAhead分配I O位置 利用PlanAhead能添加和编辑定义在NGD文件中的管脚位置和面积组约束 PlanAhead写约束到工程用户约束文件 UserConstraintFile UCF 文件 当工程中有多个UCF文件的情况下 将问设计人员新的约束写到哪个约束文件中 如果修改了已经存在的约束 它们将写回到最初创建的约束文件中 PlanAhead也提供了设备指定的设计规则检查 DesignRuleCheck DRC 来帮助进行引脚规划和布局 设计实现和时序仿真 使用PlanAhead分配I O位置 翻译步骤中使用UCF文件和设计网表文件来产生一个新的NGD文件 下面主要介绍输入输出模块 IOB 分配信号的过程 1 在Sources窗口中 选择stopwatch模块 2 单击 展开UserConstraints目录层级 3 如图9 11所示 双击I OPinPlanning PlanAhead Post Synthesis 将完成用户约束 设计实现和时序仿真 使用PlanAhead分配I O位置 设计实现和时序仿真 使用PlanAhead分配I O位置 I O引脚规划可以在综合前和综合后实现 推荐使用综合后运行I O引脚规划 这是因为设计包含I O所需要的信息和时钟相关的设计规则检查 然后能通过PlanAhead执行 这个过程启动PlanAhead 如果设计没有完成综合 ISE将自动运行综合过程 然后再打开PlanAhead 设计实现和时序仿真 使用PlanAhead分配I O位置 如图9 12所示 在WelcometoPlanAhead 欢迎PlanAhead 屏幕中提供了详细的文档 辅导和其它培训材料的链接 帮助设计人员更好的了解这个工具 更详细的信息可以参考先关的网站 4 点击图9 12界面上的 Close 按钮 进入到PlanAhead处理过程中 设计实现和时序仿真 使用PlanAhead分配I O位置 图9 12PlanAhead欢迎界面 设计实现和时序仿真 使用PlanAhead分配I O位置 5 如图9 13所示 在I O端口标签中 在所有端口下展开ScalarPorts 将为lcd e lcd cs lcd rw信号创建引脚分配 设计实现和时序仿真 使用PlanAhead分配I O位置 图9 13PlanAhead界面 设计实现和时序仿真 使用PlanAhead分配I O位置 6 如图9 14所示 定位lcd e输出信号 然后点击和拖拽该信号到封装查看界面 Packageview 然后将其放到AB4引脚位置 设计实现和时序仿真 使用PlanAhead分配I O位置 7 重复前面的过程 放置其它的输出信号 LCD RS Y14LCD RW W13如图9 15所示 也可以在I OPortProperities标签中的 Site域中输入引脚的位置 设计实现和时序仿真 使用PlanAhead分配I O位置 设计实现和时序仿真 使用PlanAhead分配I O位置 8 使用拖拽方式 或者输入I O引脚的方式 将下面的信号放到合适的I O引脚位置 LAP LOAD T16 RESET U15 MODE T14 STRTSTOP T15 9 一旦管脚锁定 选择File SaveProject 那么所有修改将被保存在当前目录下的stopwatch ucf文件中 10 选择File Exit 关闭PlanAhead工具 设计实现和时序仿真 设计映射及时序分析 当设计实现策略已经定义完毕 属性及约束 时 可以开始设计映射过程 下面给出实现映射过程的步骤 1 在Sources窗口中 选择stopwatch模块 2 在Processes选项卡中 右键单击Map并选择Run 或双击Map 设计实现和时序仿真 设计映射及时序分析 设计映射到CLBs和IOBs 映射完成以下功能 1 为设计中的所有基本逻辑单元分配CLB和IOB资源 2 处理布局和时序约束 完成目标器件的优化过程 并在最终的映射网表中执行设计规则的检查 每一步骤都将产生该处理过程的报告 如下表所示 设计实现和时序仿真 设计映射及时序分析 设计实现和时序仿真 设计映射及时序分析 下面给出浏览报告的步骤 1 如图9 16 打开DesignSummary Report窗口 设计实现和时序仿真 设计映射及时序分析 2 在DesignSummary 设计总结 中的DetailedReports 详细报告 部分 选择TranslationReport 翻译报告 或Mapreport 映射报告 3 查看报告4 设计总结将提供设计结果的总结 并且列出了实现过程中所有的消息 错误 警告 信息 设计实现和时序仿真 设计映射及时序分析 设计实现和时序仿真 使用时序分析评估块延迟 映射完成后 在映射后静态时序报告 Post MapStaticTimingReport 中有逻辑水平的详细评价来评估设计中的逻辑路径 评估验证了设计中模块延迟的合理性 由于设计还没有真正地布局布线 所以报告中并没有给出实际的布线延迟信息 时序报告描述了逻辑模块的延迟和估算的布局延迟 网络延迟给出了基于模块之间的最优的距离 设计实现和时序仿真 50 50规则估计时序目标 在映射阶段之后 通过估算设计来预测设计的时延目标的可行性 根据粗略估算准则 50 50规则 规定在设计布局后在任意一个路由中模块延迟占了总延迟的大概50 例如 模块延迟为10ns 那么布局布线后的延迟约束至少为20ns 如果设计较为紧凑 那么映射后静态时序报告中会给出基于模块延迟的和布局延迟的大概的延迟时序约束分析 这个分析帮助计算时序约束是否满足条件 这个报告在映射之后 布局布线之前生成 设计实现和时序仿真 时序约束选项中报告路径 使用映射后静态时序报告来计算布局布线过程中可能出现的违反时序规则的情况 下面给出浏览映射后静态时序报告以及检查PERIOD约束步骤 1 在Processes选项卡中 单击 展开Map层级目录 2 双击GeneratePost MapStaticTiming 3 如图9 16 打开映射后静态时序报告 双击AnalyzePost MapStaticTimingReport 那么分析过程自动启动并显示报告 设计实现和时序仿真 时序约束选项中报告路径 设计实现和时序仿真 时序约束选项中报告路径 4 如图9 17所示 选择timingconstraint 时序约束 目录下的TS dcm inst CLKX BUF 设计实现和时序仿真 时序约束选项中报告路径 工作区域显示了所选择的约束报告 在这份报告的上方 会发现选定的约束和经过映射工具后的获得的最小周期 默认情况下 只有对三条路径时间约束显示 选择其中一个路由可以看到一个包含的器件和路由的极限延迟 需要注意的是 该报告显示逻辑的百分比和路由百分比 例如逻辑的88 0 12 0 的路线 未布局布线的层的延迟估计根据最佳的模块布线给出 5 报告浏览完毕 选择File Close来关闭时序分析器 设计实现和时序仿真 布局布线验证 设计进过映射后 就可以进行布局布线 PAR Place Route 了 通过两种算法完成布局布线过程 1 时序驱动布局布线 通过输入网表或是约束文件中的时序约束来进行布局布线 2 非时序驱动布局布线 布局布线过程中忽略所有时序约束 一旦在前面的步骤中定义了时序约束 那么只会采用第一种算法完成PAR过程 设计实现和时序仿真 布局布线验证 下面给出PAR完成后 报告的浏览步骤 1 在Processes选项卡中 双击Place Route 布局布线执行完毕后 同样可浏览其报告文件 2 单击 展开Place Route层级目录 3 双击Place RouteReport 如表9 2所示 同样可以浏览检查PadReport和AsynchronousDelayReport报告文件 设计实现和时序仿真 布局布线验证 设计实现和时序仿真 布局布线验证 如图9 18 给出了布局布线后的详细报告 图9 18布局布线后的报告 设计实现和时序仿真 用FPGAEditor验证布局布线 使用FPGAEditor FPGA 编辑器来显示和配置FPGAs FPGA编辑器可对NCD文件 NMC宏文件和PCF物理约束 PhysicalConstraints 文件进行读写 FPGA编辑器的功能主要有 1 在执行自动布局布线之前 对关键性的元件进行布局布线 2 可手动进行布局布线 3 在目标器件上增加探针以监测信号状态 4 可运行BitGen程序并将bitstream文件下载到目标器件中 5 浏览或改变设置中连接到IntegratedLogicAnalyzer ILA 核捕获单元的网络 设计实现和时序仿真 用FPGAEditor验证布局布线 下面给出浏览实际的FPGA布局步骤 1 单击 展开Place Route层级目录 双击View EditRoutedDesign FPGAEditor 如图9 20所示 出现该界面 设计实现和时序仿真 用FPGAEditor验证布局布线 2 如图9 21所示 在FPGA编辑器中 将列表窗口选为AllNets 将看到设计中的所有网络 设计实现和时序仿真 用FPGAEditor验证布局布线 3 如图9 22所示 选择clk 262144K 时钟 网络查看时钟网络的输出 设计实现和时序仿真 评估布局后时序 设计的布局布线完成后 默认情况下会产生一个布局后时序报告 PostLayoutTimingReport 来验证设计是否满足时序要求 报告评估逻辑块延迟及布线延迟 下面给出显示此报告的过程 1 展开GeneratePost Place RouteStaticTiming层级目录 2 双击AnalyzePost Place RouteStaticTimingReport打开在TimingAnalyzer中的报告或者在DesignSummary 设计概要 中选择TimingConstraint超链接到TimingAnalyzer 设计实现和时序仿真 评估布局后时序 以下是stopwatch设计的布局布线后静态时序报告 Post Place RouteStaticTimingReport 的概要 1 由于实际的布线延迟 最小周期值有所增加 Post Maptiming报告表明逻辑延迟占了最小周期80 90 而post layout报告表明逻辑延迟只占了30 40 为布线的层的相应值也改变 2 Post layout报告的结果不需要遵循之前所描述的50 50规则 因为最坏的路径主要包含了元器件的延迟 设计实现和时序仿真 评估布局后时序 3 对于那些很难满足时序约束的情况 最坏的情况主要取决于逻辑延迟 因为布线延迟只占了所有延迟的很小一部分 而且要进一步减小这些布线延迟是不切实际的 一般来说 可以通过减少设计中的逻辑层来减小模块延迟及改善设计性能 设计实现和时序仿真 使用PlanAhead分析设计 PlanAhead能用来执行布局后的设计分析 全局布局分析和时序路径和布局规划能被执行用于分析设计结构和在设计收敛时进行帮助 下面给出使用PlanAhead分析设计的步骤 1 如图9 23 从Process窗口中 在Place Route 布局和布线 过程下 运行 AnalyzeTiming FloorplanDesign PlanAhead 设计实现和时序仿真 使用PlanAhead分析设计 2 如图9 24 当打开PlanAhead后 在TimingResult标签下 选择一条时序路径 在Device窗口中看到图形化的路径 也能查看路径的详细信息 以及在Properities标签下查看相关的延迟 设计实现和时序仿真 使用PlanAhead分析设计 图9 24在PlanAhead中查看时序路径 设计实现和时序仿真 时序仿真 时序仿真使用块和布线设计产生的布线延迟信息 从而能够对最坏情况下的电路行为给出一个更精确的评估 因此 当设计经布局布线后 需要进行时序仿真 时序仿真 布局布线后仿真 是完整设计流程中一个非常重要的步骤 时序仿真充分利用了布局布线后产生的详细定时和设计布局信息 因此 时序仿真更能反映出器件真实的工作状态 时序仿真还可以发现在只进行静态时序分析时没有发现问题 为了对设计进行完整的验证 设计应该进行静态和动态的分析 本章中 使用Modelsim仿真工具或XilinxISE仿真工具完成对设计时序仿真 设计实现和时序仿真 时序仿真 为了完成对设计的时序仿真 需要下面的文件 1 HDL设计文件 VHDL或Verilog 当完成了前一章的设计实现后 产生布局布线设计 本章中将使用NetGen工具 从布局布线设计中产生仿真网表 用于描述该设计的网表将被来完成时序仿真 2 测试平台文件 VHDL或Verilog 为了对设计进行仿真 需要一个测试平台 可以使用与行为仿真同样的测试平台 如果工程中还没有测试平台的话 可以参考前面章节中添加HDL测试平台的相关部分 3 指定仿真器工具 设计实现和时序仿真 时序仿真 选择对设计的秒表进行仿真所需的仿真器 下面给出配置的步骤 1 在Sourcestab下 右击设备行 xc3s700A 4fg484 选择Properties 在工程属性对话框 在仿真器值域处按向下箭头 从而显示仿真器列表 2 需要注意的是在ISE里的ProjectNavigater中 集成了ModelSim仿真器和ISE仿真器 选择不同的仿真器 比如NC Sim或VCS 将为Netgen设置正确的选项来创建一个仿真网表 但是ISE中的ProjectNavigator不会直接打开仿真器 在仿真器域选择正确版本和语言的ISESimulator VHDL Verilog 或Modelsim 设计实现和时序仿真 使用ModelSim进行时序仿真 XilinxISE提供了Mentor公司的ModelSim仿真工具的完整流程 ISE提供创建工作目录的功能 在该目录下编译原文件 初始化仿真和控制ModelSim仿真工具的属性 需要注意的是 利用ISE仿真器进行仿真 跳转到该章的使用XilinxISE仿真器进行时序仿真部分即可 不管选择ModelSim仿真工具还是ISE仿真工具 最后的仿真结果是一样的 设计实现和时序仿真 设置属性 下面给出基于Modelsim仿真工具的仿真过程的属性设置步骤 1 在Sources标签下 在sourcesfor域中选择Post RouteSimulation 2 选择测试平台stopwatch tb文件 3 在Processes标签下 单击ModelSimSimulator处的 号 将其分层显示 设计实现和时序仿真 设置属性 需要注意的是 如果ModelSim仿真器处理选项不出现 可能在工程属性对话框中ModelSim仿真器没被选上 或者ISE的项目浏览器无法找到modelsim exe 文件 如果安装了ModelSim但是processes无法获取 那么工程浏览器参数可能没有被正确的设置 设置ModelSimlocation 选择Edit Preferences 单击ISEGeneral处的 号展开ISE参数 单击左边的IntegratedTools 在右边ModelTechSimulator下 浏览modelsim exe文件的定位 比如 c modeltech xe win32xoem modelsim exe 设计实现和时序仿真 设置属性 4 右击SimulatePost Place RouteModel 选择Properties选择SimulationModelProperties类选项 如图9 24所示 属性设置NetGen在生成仿真网表时使用的选项 设计实现和时序仿真 设置属性 设计实现和时序仿真 设置属性 确保将属性显示等级设置到Advanced 通过globalsetting可以看到所有的可获得属性 以下使用缺省仿真模型参数 DisplayProperties类该标签提供了对ModelSim仿真窗口的控制 在缺省状态时 当ISE中的时序仿真开始时将打开三个窗口 分别是信号窗口 结构窗口 波形窗口 SimulationProperties类该参数如图9 25所示 这些属性设置一些ModelSim用来运行时序仿真的选项 每个属性的详细描述 单击Help按钮 在SimulationProperties栏 设置仿真运行时间SimulationRunTime属性到2000ns 单击OK 关闭ProcessProperties对话框 设计实现和时序仿真 设置属性 设计实现和时序仿真 设置属性 5 执行仿真启动时序仿真 双击SimulatePost PlaceandRouteModel ISE将运行NetGen来创建时序仿真模型 ISE将调用ModelSim 创建工作目录 编译源文件 加载设计 特定时间设置下运行仿真 需要注意的是 本设计大部分运行在100Hz 需要占用很长时间进行仿真 这就是为什么在很短的仿真时间内计数器看起来好像没有工作一样 为了验证是否正确工作 以下只对DCM信号进行监测 设计实现和时序仿真 信号添加 仿真过程中需要对信号进行查看 必须首先添到这些信号到Wave窗口 ISE自动添加所有顶层设计文件的端口到波形窗口 附加信号在信号signal窗口中进行显示 其中信号 signal 窗口基于在结构 structure 窗口中所选的结构 下面两种方法可以添加信号到仿真工具的波形窗口 1 从Signal Objectwindow中拖到Wavewindows 2 选择Signal Objectwindow中的信号 使其高亮显示 选择Add Wave SelectedSignals 设计实现和时序仿真 信号添加 下面给出在设计层添加其他信号的步骤 需要注意的是 如果现在使用的是ModelSim6 0版或者更高版 所有窗口在缺省状态下都是未展开的 通过单击Undock图标 可以展开所有窗口 1 在Structure Instancewindow窗口 单击uut旁边的 号进行层次展开 图9 26显示了Structure Instance窗口 Structure Instance窗口针对Verilog或VHDL的图形和布局可能会不同 2 单击Structure Instance窗口 选择Edit Find 设计实现和时序仿真 信号添加 3 在搜索框键入X DCM 选择Entity Module 4 一旦ModelSim中存在X DCM 选择X DCM 单击signal objects窗口 DCM所有的信号名称都被列出 5 选择signal objects窗口 选择Edit Find 6 在搜索框键入CLKIN 选择Exact检查框 7 单击CLKIN 并将CLKIN从signal objects窗口拖到Wave窗口 8 单击并将下列信号RST CLKFX CLK0 LOCKED 从signal objects窗口拖到波形窗口 设计实现和时序仿真 信号添加 注意 按住Ctrl键可以同时选择多个信号 代替使用拖拽方法 可以选择AddtoWave SelectedSignals来完成 设计实现和时序仿真 信号分割 Modelsim可以在Wave窗口添加分类功能 从而更容易区分信号 下面给出添加DCM信号分配器的步骤 1 单击Wave窗口任意位置 2 如果必要 展开窗口 将窗口最大化以便更好的观察波形 3 右击Wave窗口 单击Insert Divider 4 在分配器名称栏输入DCMSignals 5 单击并拖拽新创建的分配器到CLKIN信号的上方 设计实现和时序仿真 信号分割 需要注意的是 拉伸波形第一列 清晰地观察信号 通过选择Tools Options WavePreferences可以关闭信号名称项 在显示信号路径栏输入2 单击OK 6 图9 27给出了仿真波形的界面 设计实现和时序仿真 信号分割 注意 对于新添加的信号波形并没有显示出来 这是因为Modelsim没有对这些信号数据进行记录 缺省状态下 在运行仿真过程中 Modelsim只记录那些已添加到Wave窗口中的信号数据 因此 当添加新信号到Wave窗口之后 需要重新运行仿真 设计实现和时序仿真 仿真运行 下面给出 重启和重新运行仿真的步骤 1 单击RestartSimulation图标 2 打开重启对话框 单击Restart 根据ModelSim命令提示 输入run2000ns 按Enter键 3 仿真持续运行2000ns 在Wave窗口将看到DCM波形 设计实现和时序仿真 仿真运行 图9 27波形显示窗口 设计实现和时序仿真 信号分析 分析DCM信号来验证它是否按所希望的情况工作 CLK0需要设置为50Mhz CLKFX应该设成26Mhz 在LOCKED信号变高之后 应该对DCM信号进行分析 在LOCKED信号变高之前 DCM信号输出是不正确的 Modelsim可以添加光标 从而精确测量信号间的距离 下面给出测量CLK0信号的步骤 设计实现和时序仿真 信号分析 1 选择Add Cursor两次 在波形观察窗口放置两个指针 2 在LOCKED信号变高后 单击并拖拉第一个指针到CLK0信号的上升沿 3 单击并拖拉第二个指针到第一个指针的右侧 4 单击FindNextTransition图标两次 移动指针到CLK0信号的下一个上升沿 5 观看波形底部 查看两指针间的距离 测量时每秒应该读20000次 即50Mhz testbench的输入频率 也是DCMCLK0的输出 6 按照同样的步骤测量CLKFX 测量时每秒应该读38462次 即大约26Mhz 设计实现和时序仿真 结果保存 ModelSim仿真器可以在Wave窗口保存信号列表 在添加新信号后 或者仿真被重运行后保存信号列表 每次启动仿真 所存的信号列表就会被加载 下面给出结果保存的步骤 1 在Wave窗口 选择File SaveFormat 2 在SaveFormat对话框 对文件进行重命名 将wave do重命名为dcm signal tim do 3 单击Save 重新运行仿真 在wave窗口选择File Load重新加载文件 使用ISim仿真器进行时序仿真 设置属性 通过以下的步骤完成基于ISE仿真工具的仿真过程的属性设置 1 在Sources标签下 选择Post RouteSimulation 2 选择testbench文件 stopwatch tb 3 在Processes下 单击XilinxISE仿真器处的 将其分层展开 4 右击SimulatePost Place RouteModel 并选择Properties 5 选择SimulationModelProperties类 这些参数设置NetGen在生成仿真网表时使用的选项 6 确保设置显示级别到Advanced 默认使用缺省仿真模型参数 使用ISim仿真器进行时序仿真 设置属性 7 选择ISESimulatorProperties类 参数如图9 28所示 这些参数设置仿真器运行时序仿真的相关选项 使用ISim仿真器进行时序仿真 设置属性 8 在SimulationProperties下 设置SimulationRunTime到2000ns 9 单击OK 关闭ProcessProperties对话框 设计实现和时序仿真 运行仿真 启动时序仿真 双击Processes下的SimulatePost PlaceandRo

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论