仿真测试工具和综合工具.ppt

上传人:xt****7 文档编号:5174372 上传时间:2020-01-22 格式:PPT 页数:72 大小:1.55MB
返回 下载 相关 举报
仿真测试工具和综合工具.ppt_第1页
第1页 / 共72页
仿真测试工具和综合工具.ppt_第2页
第2页 / 共72页
仿真测试工具和综合工具.ppt_第3页
第3页 / 共72页
点击查看更多>>
资源描述
第七章仿真测试工具和综合工具 1 22 2020 1 MicroelectronicsSchoolXidianUniversity 7 1数字集成电路设计流程简介 1 22 2020 2 MicroelectronicsSchoolXidianUniversity 7 1 1设计规范设计规范文件是一个包含功能 定时 硅片面积 功耗 可测性 故障覆盖率以及其它的设计准则的详细说明书 设计规范描述了项目完成的功能 确定设计的总体方案 平衡各个方面的因素 对整个项目有一个初步的规划 在系统设计阶段 根据对设计面积 功耗 I O和IP使用等情况进行估算 确定所使用的芯片工艺和设计工具 7 1 2设计划分设计划分过程就是把一个复杂设计逐渐划分成较小而且较为简单的功能单元 这样一个过程通常被称为自顶向下的设计方法 或者是分层设计法 1 22 2020 3 MicroelectronicsSchoolXidianUniversity 7 1 3设计输入设计输入是指将设计划分阶段定义好的模块借助一定的设计输入手段转换为EDA工具能接受的信息格式 目前主要的设计输入手段有 高级硬件描述语言HDL VerilogHDL VHDL 和原理图 HDL语言支持不同层次的描述 不依赖于各个厂家的工艺器件 便于修改 逻辑输入工具的功能是把逻辑图 状态机 真值表 输入到计算机中 并进行语法 可综合性检查等 目前主流工具有Cadence公司的Composer Synopsys公司Leda以及UltraEdit Vim等第三方的编辑工具 1 22 2020 4 MicroelectronicsSchoolXidianUniversity 7 1 4仿真验证是指通过仿真软件验证其功能是否符合制定的设计规范 这一阶段的验证常被称为功能仿真或行为仿真 仿真的结果取决于设计描述是否准确反映了设计的物理实现 仿真器不是一个静态工具 需要Stimulus和Response Stimulus由模拟设计工作环境的testbench产生 Response为仿真的输出 由设计者确定输出的有效性 目前 仿真工具比较多 其中Cadence公司的NC VerilogHDL Synopsys公司的VCS和Mentor公司的Modelsim都是业界广泛使用的仿真工具 7 1 5综合综合实际上是根据设计功能和实现该设计的约束条件 如面积 速度 功耗和成本等 将设计描述 如HDL文件 原理图等 变换成满足要求的电路设计方案 该方案必须同时满足预期的功能和约束条件 目前常用的逻辑综合工具有Synopsys公司的Synplify和DesignCompiler PhysicalCompiler Cadence公司的RTLCompiler等 1 22 2020 5 MicroelectronicsSchoolXidianUniversity 7 1 6适配布线按照特定的工艺要求和约束条件利用适配器进行布局布线 最后生成版图 对于芯片设计来讲 这个过程通常分3步 1 布局规划 主要是标准单元 I OPad和宏单元的布局 2 时钟树生成 CTSClockTreeSynthesis 3 布局布线 适配完成后 产生多项设计结果 1 适配报告 2 适配后的仿真模型 3 器件编程文件 在FPGA设计中各个厂家都提供了相应的布局布线工具 例如Altera公司的QuartusII Xilinx公司的ISE等 在芯片设计领域 有Cadence公司提供的SOCEncounter和Synopsys公司的Astro等布局布线工具 1 22 2020 6 MicroelectronicsSchoolXidianUniversity 7 1 7时序分析时序验证的目的是为了检查设计中是否有时序上的违规 同步电路的验证采用静态时序分析实现 异步电路的验证则需要运行特殊仿真激励确认 仿真工具可以用前仿真所用的工具 静态时序分析 STA 的功能是根据设计规范的要求检查所有可能路径的时序 不需要通过仿真或测试向量就可以有效地覆盖门级网表中的每一条路径 在同步电路设计中快速地找出时序上的异常 可以识别的时序故障包括 建立 保持和恢复 移除检查 包括反向建立 保持 最小和最大跳变 时钟脉冲宽度和时钟畸变 门级时钟的瞬时脉冲检测 总线竞争与总线悬浮错误 不受约束的逻辑通道 计算经过导通晶体管 传输门和双向锁存的延迟 自动对关键路径 约束性冲突 异步时钟域和某些瓶颈逻辑进行识别与分类 PrimeTime是Synopsys公司开发的进行静态时序分析 STA 的工具 它可以进行精确的RC延迟计算 先进的建模和时序验收 1 22 2020 7 MicroelectronicsSchoolXidianUniversity 7 1 8物理验证物理验证通常包括设计规则检测 DRC 版图与原理图对照 LVS 和信号完整性分析 SI 等 目前主要的物理验证工具有Mentor公司的Calibre Cadence公司的Dracula和Diva以及Synopsys公司的Hercules 此外各大厂商也推出了针对信号完整性分析的工具 1 22 2020 8 MicroelectronicsSchoolXidianUniversity 7 1 9设计结束在所有设计约束都已满足 也达到了定时约束条件的情况下 就会发出最终设计结束的信号 这时可用于制造集成电路的掩膜集就准备好了 掩膜集的描述是由几何数据 通常为GDS II格式 构成的 这些数据决定了集成电路制造过程中的光掩膜步骤的顺序 将适配器布局布线后形成的器件编程文件通过下载工具载入到具体的FPGA或CPLD芯片中 可以方便的实现设计要求 如果是大批量产品开发 通过更换相应的厂家综合库 便可以转由ASIC实现 1 22 2020 9 MicroelectronicsSchoolXidianUniversity 7 2测试和仿真工具用HDL描述完一个硬件系统后要进行仿真验证 而想要在在计算机终端上看到硬件描述语言的输出的话 则需要通过硬件描述语言的仿真器来完成 常用的HDL仿真器有很多种 例如VCS NCsim VerilogHDL XL Modelsim ActiveHDL等 根据所使用的编程语言不同可以将仿真器分为VerilogHDL语言仿真器和VHDL语言仿真器 也可以根据工作方式不同分为事件驱动 event driven 的仿真器和时钟驱动 cycle driven 的仿真器等类型 这些工具中有的侧重于IC设计 如NCsim VCS等 有的侧重于FPGA CPLD的设计 如Modelsim和ActiveHDL等 1 22 2020 10 MicroelectronicsSchoolXidianUniversity Modelsim仿真器在FPGA CPLD设计中应用广泛 这是因为Modelsim的出品公司为各种FPGA CPLD厂家提供了OEM版本的Modelsim工具 Modelsim仿真器可以用于仿真VerilogHDL语言 也可以用于仿真VHDL语言 同时也支持两种语言混合仿真 NCsim 根据使用语言不同分为NC Verilog和NC VHDL 和VCS分别由知名的EDA工具厂商Cadence和Synopsys公司提供 在IC设计中应用广泛 1 22 2020 11 MicroelectronicsSchoolXidianUniversity 7 2 1Modelsim的使用 1 22 2020 12 MicroelectronicsSchoolXidianUniversity 1 建立库并映射建立并映射库有两种方法 在Modelsim中选择File New Library 在弹出的对话框中填入库名称 点击OK就完成了库的建立和映射 在Modelsim 提示符下运行命令 vlibwork2vmapworkwork22 新建工程项目选择下拉菜单File New Project命令 新建一个工程 在ProjectName中输入工程名 在ProjectLocation下的对话框中 输入保存该工程所有文件的文件夹的路径名 DefaultLibraryName对话框使用默认设置work即可 1 22 2020 13 MicroelectronicsSchoolXidianUniversity 3 输入源代码选择主控Main窗口的下拉菜单File New Source VerilogHDL选项 出现源代码编辑窗口 将源代码输入并保存 源代码文件shiftregist v如下 1 22 2020 14 MicroelectronicsSchoolXidianUniversity moduleshiftregist data out clk rst n load data load ctr shiftright ctr shiftleft data shiftright data shiftleft parametershiftregist width 4 output shiftregist width 1 0 data out input shiftregist width 1 0 data load inputload clk rst n ctr shiftright ctr shiftleft data shiftright data shiftleft reg shiftregist width 1 0 data out always posedgeclkornegedgerst n if rst n data out 0 elseif load data out data load elseif ctr shiftright data out data shiftright data out shiftregist width 1 1 elseif ctr shiftleft data out data out shiftregist width 2 0 data shiftleft elsedata out data out endmodule 4 将文件添加到工程中刚才输入的文件已经保存在当前Project的文件夹中 在Main窗口选择Project AddtoProject ExistingFile 选项将文件添加到工程中 5 编译源代码在Workplace窗口Project对话框中选中shiftregist v 然后在主控Main窗口中选中Compile Compileselected选项对源代码进行编译 编译成功后 transcript对话框中将报告 Compileofshiftregist vwassuccessful 如果当前工程中有多个 v文件 则可以选择Compile Compileselected选项完成对源代码文件的批量编译 也可以一次选择多个文件进行编译 1 22 2020 15 MicroelectronicsSchoolXidianUniversity 6 建立并添加测试文件用VerilogHDL编写测试激励文件 然后进行仿真的操作 先输入测试激励文件 然后进行仿真的操作 先输入测试激励文件的源代码 并存盘 然后将该文件添加到当前的工程项目中 再对该文件进行编译 其操作过程与前面介绍的相同 带控制端的移位寄存器的测试激励源代码文件testbench shiftregist v如下 1 22 2020 16 MicroelectronicsSchoolXidianUniversity moduletestbench shiftregist parametershiftregist width 4 reg shiftregist width 1 0 data load regload clk rst n ctr shiftright ctr shiftleft data shiftright data shiftleft wire shiftregist width 1 0 data out always 5clk clk initialbegindata load 0 load 0 rst n 1 ctr shiftright 0 ctr shiftleft 0 clk 0 data shiftright 0 data shiftleft 0 end initialbegin 10rst n 0 3rst n 1 endinitialbegin 15load 1 data load 4 b1010 10load 0 endinitialbegin 30ctr shiftright 1 20data shiftright 1 20ctr shiftright 0 20ctr shiftleft 1 25data shiftleft 1 20data shiftleft 0 endshiftregistU1 clk clk rst n rst n load load ctr shiftright ctr shiftright ctr shiftleft ctr shiftleft data shiftright data shiftright data shiftleft data shiftleft data load data load data out data out endmodule 1 22 2020 17 MicroelectronicsSchoolXidianUniversity 7 打开仿真器在主控窗口中选择Simulate StartSimulation 命令 得到仿真设置对话框 注意 将当前工作库work前面的加号 点开 选择testbench shiftregist作为顶层文件进行仿真 在Design选项卡相应的库名下选择testbench shiftregist模块 再单击OK按钮 下图显示的就是打开仿真器后的界面 1 22 2020 18 MicroelectronicsSchoolXidianUniversity 8 打开调试窗口在Modelsim的Main窗口的View下面有各种全面反映用户设计模块的各个方面的特性与内容的窗口 非常便于用户管理和调试 用户对一个窗口的修改将会自动影响到相关窗口的变化 同时用户也可以方便地利用鼠标在窗口之间进行选择和拖放 打开窗口的操作方法是 在主控Main窗口的View下拉菜单中 单击相应的窗口名即可 已打开的窗口名前有 符号提示 再次单击该窗口名将关闭相应窗口 前面的 符号也将消失 例如 选择View Wave命令 将打开仿真波形窗口等 1 22 2020 19 MicroelectronicsSchoolXidianUniversity 9 添加需要观察的信号在Workplace窗口的sim对话框中单击需要观察的模块名 在Objects窗口中则会列出该模块的各个端口名及内部信号 可以单击选中其中一个需要观察的信号名 如果按住Ctrl键 则可以通过单击选中多个需要观察的信号名 然后在选择下拉菜单Add Wave SlectedInstance命令打开Wave窗口 而且刚才被选中的信号已经被添加到Wave窗口中 设计者还可以根据调试和测试需要 删除Wave窗口中的信号 或向其中添加新的信号 1 22 2020 20 MicroelectronicsSchoolXidianUniversity 10 运行仿真器在主控Main窗口的下拉菜单Simulate选项下有控制仿真器运行的多个命令选项 点击Simulate Run 仿真会运行100ns 默认的仿真长度 后停止 在主窗口的VSIM 提示符下 输入 run500 仿真器会再进行另外500ns的仿真 共计仿真了600ns 在主菜单 波形窗口或源代码窗口的工具条上 单击Run all图标 仿真连续运行 直到被中断或在代码中遇到诸如VerilogHDL中的 stop语句等 暂停仿真 单击break图标 终止仿真运行 在主控Main窗口中 单击Simulate EndSimulation 选项 即可结束仿真 1 22 2020 21 MicroelectronicsSchoolXidianUniversity 11 调试debugModelsim的调试手段有很多 主要包括 在代码中设置断点 步进调试 观察波形窗口 Wave 测量时间 通过数据流窗口 Dataflow 分析物理连接 通过Memory窗口 观察设计中存储器的数值 统计测试代码覆盖率 波形比较 利用Wave窗口 Dataflow窗口和List窗口是常用的分析手段 1 22 2020 22 MicroelectronicsSchoolXidianUniversity 1 使用波形窗口观察设计波形是调试设计的一种方法 加载仿真后 就可以使用波形窗口了 可以用菜单view wave打开波形窗口 图7 2 3是波形窗口打开之后的界面 在波形窗口中可以采用向波形窗口添加项目 对波形显示的图像缩放 在波形窗口中使用游标 设置断点 存储波形窗口格式 将当前的仿真结果存储到波形记录格式文件 WLF 中等手段进行调试 1 22 2020 23 MicroelectronicsSchoolXidianUniversity Modelsim中保存波形文件大致有以下三种方法 Format文件 在波形窗口的主菜单中选择File Save保存waveformat 在新打开的窗口中填入DO文件的存储路径E shiftregist wave do 单击OK完成文件存储 如果需要加载该文件 在打开的波形窗口中选择 FileOpenFormat 在OpenFormat窗口中选择wave do文件 单击Open按钮打开该文件 Modelsim将恢复该窗口的信号和游标的前一次状态 WLF文件 Datasets Modelsim仿真结果也可以存储到一个波形格式记录文件中 用于以后浏览和与当前的仿真结果的比较 通常使用术语 Dataset 表示已创建并可重加载的WLF文件 可在主菜单中选择 File Datasets Saveas 在Saveas对话框中输入要保存的波形文件名称 点击OK就完成了波形文件的保存 使用File datasets open 在弹出的OpenDataset对话框中在Browse中输入dataset的路径 即可打开以保存的波形文件 1 22 2020 24 MicroelectronicsSchoolXidianUniversity VCD文件 VCD文件是一个IEEE1364标准 VerilogHDL语言标准 中定义的一种ASCII文件 它是一种EDA工具普遍支持的通用的波形信息记录文件 在前面的章节的内容已经详细介绍了如何使用VerilogHDL中的系统函数来dumpVCD文件 1 22 2020 25 MicroelectronicsSchoolXidianUniversity 2 使用数据流窗口Dataflow窗口能够对VHDL信号或者VerilogHDL的线网型变量进行图示化追踪 在界面中驱动信号或驱动线网变量的进程显示在左边 反之被驱动信号显示在右边 可以通过双击Wave窗口中需要追踪的信号打开Dataflow窗口 下图显示的是数据流窗口的界面 1 22 2020 26 MicroelectronicsSchoolXidianUniversity 数据流窗口有四个功能 观察设计的连续性 可以检查设计的物理连接性 可以逐个单元地观测所关注的信号 互联网络或寄存器的输入 输出情况 追踪事件 跟踪一个非预期输出的事件 使用嵌入波形观察器 可以由一个信号的跳变回溯追踪 查到事件源头 追踪未知态 数据流窗口追踪不定态的功能是工程师比较亲睐的 在Dataflow窗口中使用Trace ChaseX功能 会不断往驱动级追踪不定态传递的源头 当选择ChaseX时 图形界面不再变化时 就是不定态的源头了 之后就可以根据数据流窗口的结果 去定位源代码产生不定态的语句 并加以改正 显示层次结构 可以使用层次化实例显示设计的连通性 1 22 2020 27 MicroelectronicsSchoolXidianUniversity 3 使用列表窗口List窗口以表格化的方式显示数据 可以方便的通过搜索特殊值或者特定条件的数据 简化分析数据的过程 可以用view list打开List窗口 在List窗口的左边显示的是仿真的时间点 右边显示的是每个时间点对应的变量值 图7 2 5显示的是列表窗口 1 22 2020 28 MicroelectronicsSchoolXidianUniversity 3 使用列表窗口List窗口以表格化的方式显示数据 可以方便的通过搜索特殊值或者特定条件的数据 简化分析数据的过程 可以用view list打开List窗口 在List窗口的左边显示的是仿真的时间点 右边显示的是每个时间点对应的变量值 下图显示的是列表窗口 1 22 2020 29 MicroelectronicsSchoolXidianUniversity 与Wave窗口一样 List窗口可以保持数据的列表格式和列表内容 在List窗口中选择File Save 在弹出的SaveFormat对话框中输入保存列表的名称 点击保存就可以了 数据列表也是一个 do的可执行脚本文件 可以通过命令dofile name do打开列表文件 在File WriteList选项下选择一种格式 完成对列表内容的保存 列表内容文件是lst格式的文件 要查看文件内容是可通过记事本打开该文件 1 22 2020 30 MicroelectronicsSchoolXidianUniversity 12 Modesim常用交互命令Modelsim图形提供了多种指令 既可以是单步指令 通过在主窗口的命令窗口中输入命令 也可以构成批处理文件 如DO文件 用来控制编辑 编译和仿真流程 run指令指令格式 Run 其中 参数timesteps 时间步长 和time unit 时间单位 是可选项 time unit可以是fs 10 15s ps 10 12s ns 10 9s ms 10 6s sec s 这几种 例如 run 表示运行 run1000表示运行1000个默认的时间单元 ps run3500ns 表示运行3500ns run continue 表示继续运行 run all 表示运行全程 1 22 2020 31 MicroelectronicsSchoolXidianUniversity force指令指令格式 force 其中 参数item name不能默认 它可以是端口信号 也可以是内部信号 而且还支持通配符号 但只能匹配一个 参数value也不能默认 其类型必须与item name一致 time是可选项 支持时间单元 例如 forceclr1 forceclr1100 表示经历100个默认时间单元延迟后为clr赋值为1 forceclr1 01000 表示为clr赋值1后 经历1000默认时间单元延迟后为clr赋值0 1 22 2020 32 MicroelectronicsSchoolXidianUniversity force repeat指令格式 force repeat指令功能 每隔一定的周期 period 重复一定的force命令 该指令常用来产生时钟信号 例如 forceclk00 130 repeat100 repeat指令可以用 r替代 表示强制clk从0时间单元开始 起始电平为0 结束电平为1 忽略时间 即0电平保持时间 为30个默认时间单元 周期为100个默认时间单元 占空比为 100 30 100 70 1 22 2020 33 MicroelectronicsSchoolXidianUniversity force cancel指令指令格式 force cancel指令功能 执行period周期时间后取消force命令 例如 forceclk00 130 repeat60 cancel1000 表示强制clk从0时间单元开始 直到1000个时间单元结束 view指令指令格式 view窗口名指令功能 打开Modelsim的窗口例如 viewsource 是打开源代码窗口 viewwave 是打开波形窗口 viewdataflow 是打开数据流窗口 1 22 2020 34 MicroelectronicsSchoolXidianUniversity 13 DO文件在Modelsim中创建一个DO文件 在该DO文件中要完成向波形窗口添加信号 并给这些信号提供激励 而后进行仿真 选择File New Source Do 创建一个DO文件 在窗口中敲入以下命令行 vlibwork 新建work库vmapwork 将work库映射到当前工作目录vlogshiftregist vtestbench shiftregist v 编译shiftregist vtestbench shiftregist v文件vsimshiftregist v 仿真work库中名为testbench shiftregist模块addwave testbench shiftregist v 将testbench shiftregist所有信号加入到波形图中run2000viewdataflow将以上文件保存为shiftregist do文件 每次用命令doshiftregist do就可以自动执行想要的仿真动作 1 22 2020 35 MicroelectronicsSchoolXidianUniversity 7 2 2NC Verilog的使用 1 22 2020 36 MicroelectronicsSchoolXidianUniversity 1 工作模式的选择运行NCsim的命令是nclunch 第一次运行NCSim的时候 需要用户选择工作模式 这里可供选择的主要是MultipleStep和SingleStep 请选择Multiple模式 此模式对应的仿真流程是ncvlog ncelab ncsim三步 对于两种工作模式在参考手册内有详细说明 右图显示的是NC Verilog的启动界面 2 建立工作环境选择File SetDesignDirectory菜单进行设置 弹出的对话框会要求填写如下的选项 DesignDirectory 一般就是项目所在的目录 即启动nclaunch时所在的目录 LibraryMappingFile 点击 Createcds libFile 按钮 会弹出一个 Createacds libfile 的对话框 里面的文件名是 cds lib 选择 Save 此时在弹出的对话框中选择 IncludeDefualtLibraries 将会在当前项目目录下建立INCA lib文件夹用来保存整个设计中全部的库信息 WorkLibrary 在建立了cds lib之后将出现worklib的默认选项 无需更改 1 22 2020 37 MicroelectronicsSchoolXidianUniversity 3 编译用鼠标左键选择Nclaunch左面窗口里的源文件 counter v counter tb v 可以按ctrl键以同时选择多个文件 第一次编译的时候选Tool VerilogHDLCompiler菜单 以后就可以直接点击工具栏中的 vlog 按钮 编译文件 特别注意 请在编译成功第一个文件后 重新载入工作目录 File SetDesignDirectory 以确保警告消失 1 22 2020 38 MicroelectronicsSchoolXidianUniversity 4 载入设计文件 1 22 2020 39 MicroelectronicsSchoolXidianUniversity 用鼠标左键选择Nclaunch右面窗口里工作目录 worklib 下的顶层实体worklib counter tb module 选Tool Elaborator菜单 在弹出的对话框里选中 Accessvisibility 的READ属性 然后确定 载入设计文件后的NC界面如右图所示 5 仿真用鼠标左键选择Nclaunch右面窗口里snapshots里的顶层实体的实体对snapshots worklib shiftregist tb module 选Tool Simulator菜单 在弹出的对话框里选 确定 将弹出仿真器窗口 弹出的默认窗口有两个 点击DesignBrowser SimVision窗口的工具栏中的波形按钮开启波形仿真窗口 在DesignBrowser SimVision窗口内展开左边浏览器中的Simulator在右边的列表中选择希望观察的信号 选中后 点击鼠标右键选择sendtoWaveformWindows 根据实际波形的需要 在Waveform SimVision窗口内把时间显示单位焕成us ns或ps 然后开始仿真 有两种方法 选择Simulation Run或者直接点击工具栏中 开始 按钮开始波形仿真 如果加入了新的信号 需要重新仿真点击复位 然后再次仿真 在Console窗口直接输入命令 仿真一段时间 例如 run2000ns 1 22 2020 40 MicroelectronicsSchoolXidianUniversity 7 3综合工具逻辑综合是前端电路模块设计的重要步骤之一 逻辑综合在标准单元库和特定的设计约束的基础上 把设计的高层次描述转换成优化的门级网表的过程 DesignCompiler是Synopsys公司用于电路逻辑综合的核心工具 它可以方便地将HDL语言描述的电路转换到基于工艺库的门级网表 它是ASIC设计领域使用较多的逻辑综合工具之一 在FPGA逻辑综合领域存在多种逻辑综合工具 其中Synplify以其逻辑综合速度快 逻辑综合效果好而备受关注 成为FPGA设计逻辑综合和常用工具 1 22 2020 41 MicroelectronicsSchoolXidianUniversity 7 3 1Synplify的使用 1 22 2020 42 MicroelectronicsSchoolXidianUniversity 1 创建工程在File菜单选择 New 选择 ProjectFile 然后填入工程名 点击 OK 保存 创建工程后 其中rev 1表示版本一 Synplify允许对同一个设计根据不同的综合约束条件 创建多个不同的综合版本 2 添加文件接下来的步骤是把设计的源文件添加到工程中 设计文件可以是一个 也可以是多个 添加方法是选择Project AddSourceFile或者软件界面左边的 AddFile 按钮 在弹出的对话框中选择要添加的源文件即可 如果事先没有源文件 可以选择新建 VHDL 或者 VerilogHDL 源文件 然后在HDL编辑器中编写代码并保存 1 22 2020 43 MicroelectronicsSchoolXidianUniversity 3 保存工程点击工具栏中save的图标 对工程及源文件进行保存 4 语法和综合检测可以用 RUN 菜单中的 Syntaxcheck 和 Synthesis 对源程序进行检测 检测的结果保存在 Syntax log 文件中 如果有错误用红色标出 双击可以对错误进行定位 另外 在RUN菜单中的compileronly也可以对源文件进行检测 1 22 2020 44 MicroelectronicsSchoolXidianUniversity 5 编译综合前的设置选择 Project 菜单中的 ImplementationOptions 或者软件界面左侧的 ImplementationOptions 按钮 即可出现设置对话框 在设置对话框中设计者可以选择器件 添加一些简单约束等 选择 AlteraCycloneII 器件 在选择器件的同时 还可以对与器件映射有关的选项进行设定 包括最大扇出 IO Pipelining等 在 options 中可以对 PhysicalSynthesis FSMcompiler ResourceSharing Retiming 等优化选项进行设定 在 Constraints 中可以对时钟频率进行约束 在 TimingReport 中可以设定关键路径的数量 在 VerilogHDL 中的 TopLevelModule 中填入shiftregist 1 22 2020 45 MicroelectronicsSchoolXidianUniversity 6 编译选择菜单 RUN 中的 compileronly 就可以对设计进行单独编译 在编译后产生的文件中扩展名为 srr 的文件是工程报告文件 包括工程检错 编译 综合和时序等所有工程信息 扩展名为 tlg 的文件是工程组织结构信息文件 扩展名为 srs 的为RTL视图文件 是设计者经常要检查的一个 双击该文件或者点击工具栏的图标 移位寄存器的RTL视图如下图所示 1 22 2020 46 MicroelectronicsSchoolXidianUniversity 7 综合选择菜单 Run 中的 Synthesize 或者面板上的 Run 按钮 就进行了综合 综合后主要产生了设计的门级网表 门级网表可以拿到布局布线工具中进行设计的最后实现 综合后还产生了一些其它的文件 包括综合报告 Log文件 脚本文件等 综合后已经根据所选的器件产生了门级电路 设计者可以通过Technology视图功能观察门级电路 方法是选择菜单 HDLAnalyst RTL HierarchicalView 或者点击工具栏的图标即可 这种方法可以查看层次结构显示的工艺相关的综合结果 移位寄存器的Technology视图如下图所示 1 22 2020 47 MicroelectronicsSchoolXidianUniversity 在Technology视图下可以利用Push Pop层次功能进入硬件的更底层 也可以在此图上显示关键路径 还可以把Technology视图展平成门级 方法是选择 HDLAnalyst RTL FlattenedtoGatesView 如下图所示可查看到门级电路的工艺相关综合结果 1 22 2020 48 MicroelectronicsSchoolXidianUniversity 8 分析综合结果综合通过后 设计者可以点击 ViewLog 按钮来查看综合报告 综合报告包括了如图所示的信息 通过检查综合结果 检查系统设计是否满足要求 如系统时钟频率是否达到要求 资源消耗了多少等等 同时还可以找出系统设计中存在的问题 如较差路径的起点和较差路径的终点 最差路径等信息 其中 比较重要的是时序方面的报告 下图展示了综合报告所包含的信息 1 22 2020 49 MicroelectronicsSchoolXidianUniversity 综合产生的时序报告时估计值 设计的实际时序状况极度程度的依赖于布局布线工具 如果调整布局布线工具的时间约束 可以很容易的让设计的工作频率在10 20 的范围内变化 在TimingReport中设计者可以看到用户要求的工作频率 RequestedFrequency 和Synplify综合后系统估计最高允许的工作频率 EstimatedFrequency 同时也可以看到用户要求的工作周期 RequestedPeriod 系统估计允许的工作周期 EstimatedPeriod 以及裕量 Slack 其中裕量 要求周期 估计周期 如果裕量大于0 则满足时序要求 如果裕量小于0 则不满足时序要求 图7 3 6所示的是时序报告 1 22 2020 50 MicroelectronicsSchoolXidianUniversity 如果裕量小于0 不满足时序要求时 就要分析较差路径的起点信息 StartingPointswithWorstSlack 如图7 3 7所示 ArrivalTime是时钟从开始端到达该路径终点的延时时间 也可以说是传播时间 最差路径的裕量是最小的 在不符合时序要求时最差路径的裕量会是负值 同样在最差路径的终点信息的报告中 最差路径的Slack也是最小的 在不符合时序要求时最差路径的裕量也是负值 1 22 2020 51 MicroelectronicsSchoolXidianUniversity 最差路径信息是对最差路径做的一个总结 指出最差路径的时间裕量以及路径的起点和终点 图7 3 8显示的是最差路径信息 这条最差路径通常叫做关键路径 criticalpath 设计者可以通过分析这些路径 寻找到优化这些路径的方法 1 22 2020 52 MicroelectronicsSchoolXidianUniversity 7 3 2DesignCompiler的使用 1 22 2020 53 MicroelectronicsSchoolXidianUniversity 1 编写HDL文件输入DesignCompiler的设计文件通常都是用诸如VHDL和VerilogHDL等硬件描述语言编写 这些设计描述必须小心地编写以获得可能的最好的综合结果 在编写HDL代码时 设计者需要考虑设计数据的管理 设计划分和HDL编码风格 划分和编码风格直接影响综合和优化过程 虽然流程中包含该步骤 但实际上它并不是DesignCompiler的一个步骤 设计者不能用DesignCompiler工具来编写HDL文件 1 22 2020 54 MicroelectronicsSchoolXidianUniversity 2 指定库选择File Setup 通过link library target library symbol library和synthetic library命令为DesignCompiler指定链接库 对象库 符号库和综合库 链接库和对象库是工艺库 对象库是指将RTL级的HDL描述门级时所需要的标准单元综合库 它是由芯片制造商 Foundry 提供的 包含了物理信息的单元模型 链接库可以是同target library一样的单元库 或者是已综合到门级的底层模块设计 其作用如下 在由下向上的综合过程中 上一层的设计调用底层已综合的模块时 将从link library中寻找并链接起来 符号库定义了设计电路图所调用的符号 如果设计者想应用DesignAnalyzer图形用户界面 就需要这个库 另外 设计者必须通过synthetic library命令来指定任何一种特殊的有许可的设计工具库 不需要指定标准设计工具库 1 22 2020 55 MicroelectronicsSchoolXidianUniversity 3 读入设计DesignCompiler使用HDLCompiler将RTL级设计和门级网表作为设计输入文件读入 选择File Read 在打开的文件对话框中选中要打开的文件 例如设计者选择shiftregist v文件 在Log框中出现successfully字样表明读入文件成功 点击symbol按钮可以查看该电路的symbol图 如果设计者用read file或read命令读入RTL设计 等于实现了analyze和elaborate命令组合的功能 4 定义设计环境DesignCompiler要求设计者模拟出待综合设计的环境 这个模型由外部的操作环境 制造流程 温度和电压 负载 驱动 扇出 线负载模型等组成 它直接影响到设计综合和优化的结果 1 22 2020 56 MicroelectronicsSchoolXidianUniversity 5 设置设计约束最优化约束则定义了时序 时钟 时钟错位 输入延时和输出延时 和面积 最大面积 等设计目标 在最优化过程中 DesignCompiler试图去满足这些目标 但不会去违反任何设计规则 为能够正确地优化设计 必须设置更接近现实情况的约束 1 设置时钟约束在symbol图上选中clk端口 选择Attributes SpecifyClock 出来设置时钟约束对话框 例如设计者可以进行如下设置 给时钟取名为clock 周期20ns 上升沿0ns 下降沿10ns 点击OK 时钟约束设置完成 相应命令 creat clock 1 22 2020 57 MicroelectronicsSchoolXidianUniversity 2 设置复位信号约束在symbol图中选中rst n端口 在本例中它是复位端口 选择Attibutes OptimizationDirectives InputPort 勾选Don ttouchnetwork选项 点击OK 相应命令 set dont touch network 3 设置输入信号延迟约束同时选中输入端口 例如选择a b c选择Attributes OperatingEnvironment InputDelay 设置Relativetoclock为clock 即刚才加约束的时钟信号 并设置上升延迟为8ns 根据经验 该值是时钟周期的40 本例中设置了时钟周期为20ns 20 0 4 8ns 相应命令 set input delay 1 22 2020 58 MicroelectronicsSchoolXidianUniversity 4 设置输出端口约束在symbol图上选中输出端口 选择Attributes OperatingEnvironment OutputDelay设置输出延迟为8ns 相应指令 set output delay 5 设置面积约束选择Attributes OptimizationConstraints DesignConstraints 设置Maxarea的值为0 表明让DC向电路面积为0的方向来优化电路 使面积最小 当然 面积为0是达不到的 Maxfanout为4 Maxtransition为0 5 具体含义参见SYNTHESIS pdf 相应命令 set max area set max fanout set max transition 1 22 2020 59 MicroelectronicsSchoolXidianUniversity 6 优化设计利用compiler命令启动DesignCompiler的综合和优化进程 有几个可选的编译选项 特别的 map effort选项可以设置为low mediu或high 初步编译 如果设计者想对设计面积和性能有一个快速的概念 将map effort设置为low 默认编译 如果设计者在进行设计开发 将map effort设置为medium 当在进行最后设计实现编译时 将map effort设置为high 通常设置map effort为medium 7 查看约束通常DesignCompiler根据设计综合和优化的结果生成众多的报告 设计者根据诸如面积 约束和时序报告来分析和解决任何设计问题 或者改进综合结果 设计者可以用check命令来检查综合过的设计 也可用其它的check 命令 8 保存设计数据利用write命令来保存综合过的设计 DesignCompiler在退出时并不自动保存设计 1 22 2020 60 MicroelectronicsSchoolXidianUniversity 7 4测试和综合举例工作的思路是 1 设计一个带控制端的移位寄存器 利用Modelsim做功能仿真 2 利用进行综合 生成shiftregist vqm文件 3 利用QuartusII导入shiftregist vqm进行自动布局布线 并生成shiftregist vo VerilogHDLOutputFile 网表文件与shiftregist sdo StandardDelayOutputFile 时延文件用做后仿真 Post Sim 4 利用Modelsim做后仿真 看是否满足要求 1 22 2020 61 MicroelectronicsSchoolXidianUniversity 7 4 1自动布局布线1 开启QuartusII 然后建立一个Project 选择File NewProjectWizard新建工程设定WorkDirectory ProjectName与Top LevelEntityName 再按Next 2 加入设计文件点选Add 将Synplify合成出来的shiftregist vpm加入再按Next 3 定Family和Device设定Family为Statix Device为EP1S10F780C6 然后按Next 4 设定相关的EDATools在DesignEntry Synthesis的ToolName下拉点选是Synplifypro Fomats下拉列表点选VQM 在Simulation的ToolName下拉点选Modelsim Fomats下拉列表点选VerilogHDL 5 确认信息 点Finish完成Project的设定和保存 1 22 2020 62 MicroelectronicsSchoolXidianUniversity 6 编译 1 22 2020 63 MicroelectronicsSchoolXidianUniversity 点击Processing StartCompilation 即可开始编译 编译成功后 会在F shiftregist apr目录下生成Simulation子目录 打开发现在F shiftregist apr simulation Modelsim下有设计者后仿真需要的shiftregist vo和shiftregist sdo文件 右图所示的是新建工程向导建立工程文件的信息 7 4 2后仿真1 新建工程启动Modelsim 然后建立一个Project 建立的方法和前面介绍功能仿真时的方法一样 注意ProjectLocation要填为F shiftregist post sim ProjectName要填为shiftregist 2 加入文档首先将用QuartusII生成的网表文件shiftregist vo加入 由于设计采用Altera的CellLibrary来合成电路 所以合成后的Netlist里所包括的那些LogicGates与Flip Flop都是出自于CellLibrary 所以模拟时要将此CellLibrary加入 设计时所选用的Family是Stratix 所以到QuartusIIedasim lib里将Stratix的CellLibrary stratix atoms v 加入 stratix atoms v可以在目录C altera 81 quartus eda sim lib下找到 最后加入Pre Sim的测试平台testbench shiftregist v 并在测试平台里加上 timescale1ns 100ps 1 22 2020 64 MicroelectronicsSchoolXidianUniversity 3 编译选择Compile CompileAll 即可编译工程中所有文件 4 仿真设置在Modelsim主菜单中 选择Simulate StartSimulation在弹出的对话框中要做如下的工作 首先 在design选项卡下的work2库下选择测试文件testbench shiftregist 其次打开Library选项卡 在SearchLibrary项目下点击添加 将库work2添加进来 这里因为刚才编译的时候已经将stratix atoms v库的信息加进了work2 所以添加work2库的同时也就添加了Altera的statix器件库 最后在SDF选项卡下添加延时反标文件 点击Add 在弹出的AddSDFEntry对话框中 点击Browse找到 sdo文件的路径并加入 在作用区域 ApplytoRegion 下所填的是测试模块名和测试模块中例化文件名 格式是 测试文件顶层模块名 测试文件中例
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!