EDA 原理及应用 第9章 设计实现和时序仿真
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第9章 设计实现和时序仿真 -管脚和面积约束
图9.11 编辑管脚位置
5、如图9.12所示,选择工作区中的Package标签: 视图显示器件封装;
第9章 设计实现和时序仿真 -管脚和面积约束
图9.12 Floorplan编辑器
6、选择Processes 面板中选择Design Object标签:窗口 显示所有设计对象; 7、在Design Object标签中, 在选择过滤器中将 ALL改为 IOs, 并输入“LCD_”;
第9章 设计实现和时序仿真-时序约束
当运行创建时序约束(Create Timing Constraints) 时,这时自动执行翻译步骤,然后打开约束编辑器。约束 编辑器的作用主要包括以下几个方面的内容: 1、编辑在原有UCF文件中的约束; 2、在设计加入新的约束; 约束编辑器中的输入文件包括: 1、NGD(Native Generic Database)文件 NGD文件为映射的输入文件,然后输出NCD (Native Circuit Description)文件; 2、UCF (User Constraint File)文件 默认情况下,当NGD文件打开后,那么使用现存的 UCF文件,当然也可重新指定UCF文件;
第9章 设计实现和时序仿真 -设置实现属性参数
实现属性决定了软件映射,布局布线及优化过程。这 一部分介绍如何在设计实现中设置其属性的过程,下面给 出了设置属性的步骤和方法: 1、在Source Tab选项卡中,选择顶层文件stopwatch; 2、在Processes选项卡中,右键单击Implement Design; 3、选择右键菜单栏中的Properties选项,Processes Properties对话框提供了翻译,映射,布局布线,仿真和时 序报告等属性,注意设计实现中不同方面的属性类型; 4、如图9.1,在对话框的右下角,设置属性的显示级别为 Advanced,这个全局性的设置,可看到所有可用的属性;
第9章 设计实现和时序仿真 -管脚和面积约束
1、在Sources窗口中,选择stopwatch模块; 2、单击+展开Implement Design目录层级; 3、单击+展开Translate目录层级; 4、如图9.11所示,双击Assign Package Pins PostTranslate,那么Floorplan编辑器自动启动;如果是EDIF 工程,双击用户约束目录下的Assign Package Pins;
第9章 设计实现和时序仿真 -设置实现属性参数
图9.2 布局布线属性设置
• 11、单击OK退出Process Properties对话框;
第9章 设计实现和时序仿真-创建分区
在逻辑设置中一个实例创建一个分区是为了表明在实现 过程中这个实例可与重复利用。分区可以嵌套分级并在任 何一个设计的HDL模块中定义。在Verilog中分区设置基于 模块实例,而在VHDL中,分区设置是基于实体构造。一 个由多个实例构成的模块将有多个分区—一个分区对应一 个实例。HDL设计的顶层有一个默认分区。分区自动识别 输入源的变化,包括HDL的改变,约束改变和命令行的改 变。分区的创建在综合工具中完成。下面给出完成设计中 的分区操作使能的步骤:
第9章 设计实现和时序仿真-创建时序约束
图9.4 创建时序约束
第9章 设计实现和时序仿真-设计翻译
在实现过程中,ISE管理文件的创建。ISE工具的属性对 话框对其进行设置,这将完全控制设计的实现 (implement)过程。一般情况下,先设置选项,然后双 击Implement Design执行整个流程,下面将给出设计实现 过程中的每一步骤的详细过程。在翻译过程中, NGDBuild程序完成以下功能: 1、将输入设计网表和写入的结果转换成单个综合NGD 网表。这个网表描述了设计逻辑,包括布局及时序约束; 2、完成时序规范及逻辑设计规则的检查校验; 3、从用户约束文件(UCF)中,将约束加入综合网表 中;
第9章 设计实现和时序仿真-实现过程概述
在ISE中的实现(Implement)过程,是将综合输出的逻 辑网表翻译成所选器件的底层模块与硬件原语,将设计映 射到器件结构上,进行布局布线,达到在选定器件上实现 设计的目的。 实现过程主要分为3个步骤:翻译(Translate)逻辑网 表,映射(Map)到器件单元与布局布线(Place & Route)。
设计实现和时序仿真
何宾 2008.09
第9章 设计实现和时序仿真-本章概要
本章首先对建立用户约束文件的方法和设计分区进行 了介绍。 随后,本章对ISE设计流程的实现过程进行了详细的 介绍,其中包括翻译、映射和布局布线的过程。在每个 实现步骤中,介绍了属性参数的设置以及查看时序报告 的方法。 在此基础上,对布局布线后的设计进行了时序仿真, 对设计进行时序仿真分别使用了Modelsim仿真器和ISE 仿真器完成。
4、在单元选择下拉菜单中选择ns; 5、在输入抖动部分, Time框中输入60; 6、在单元选择下拉菜单中选择ps; 7、单击OK,通过全局时钟约束设定来更新周期单元 (默认为50%运行周期); 8、单击选择时钟信号的Pad to Setup单元,并输入6ns: 设置了输入信号的Global OFFSET IN约束; 9、单击选择时钟信号的Clock to Pad 单元,如图9.7,输 入38ns:设置了输入信号的Global OFFSET OUT约束;
第9章 设计实现和时序仿真-创建分区
1、在Source Tab选项卡中,选择lcd_cntrl_inst 模块并右 键单击; 2、在右键菜单中选项New Partition 3、同样对timer_state 执行上述操作 4、同样对timer_inst 执行上述操作 注意:在ISE9.1i中,如果分区设置在原理图模块中,那 么不允许进行反复映射。
第9章 设计实现和时序仿真 -管脚和面积约束
利用Floorplan编辑器能添加和编辑定义在NGD文件中的 管脚和面积约束。Floorplan 编辑器可以产生一个有效的 UCF文件,翻译步骤中使用UCF文件和设计网表文件来产 生一个新的NGD文件。Floorplan 编辑器主要是将各个模 块进行类似于电路板的全局布局,如Ram模块,数字时钟管 理单元 (DCMs), 吉比特收发器 (GTs), 和BUFGs等。 下面主要介绍输入输出模块(IOB)分配信号的过程。 Floorplan编辑器通过编辑UCF文件来添加新的布局布线 约束。下面给出添加新的布局布线约束的过程:
第9章 设计实现和时序仿真-实现过程概述
翻译的主要作用是将综合输出的逻辑网表翻译为 Xilinx特定器件的底层结构和硬件原语。 映射的主要作用是将设计映射到具体型号的器件上。 布局布线的主要作用是调用Xilinx布局布线器,根据 用户约束和物理约束,对设计模块进行实际的布局,并根 据设计连接,对布局后的模块进行布线,产生PLD配置文 件。
第9章 设计实现和时序仿真-时序约束
图9.6约束编辑器-全局分支
下面给出在约束编辑器中编辑约束的步骤: 1、双击与时钟网络CLK相关的周期单元,打开时钟周 期对话框; 2、为定义时钟信号,选择Specify Time:可明确地定义 时钟的周期; 3、在Time框中输入7.0;
第9章 设计实现和时序仿真-时序约束
第9章 设计实现和时序仿真 -管脚和面积约束
图9.13 管脚约束
• • • •
8、如图9.13所示,在LOC栏中,约束以下管脚: LCD_E->AB4; LCD_RS->Y14; LCD_RW->W13;
第9章 设计实现和时序仿真-时序约束
图9.7 时序约束
10、在Souces界面中,选择时序约束的端口(Port), 左侧即为当前的端口列表; 11、在Port Name栏中,选择SF_D<0>; 12、按住Shift键并选择SF_D<7>,即为选择了一组端 口; 13、在Group Name框中,输入display_grp,并单击 Create Group按钮创建分组;
第9章 设计实现和时序仿真 -设置实现属性参数
图9.1 静态时序报告属性设置
第9章 设计实现和时序仿真 -设置实现属性参数
5、单击Post-Map Static Timing Report Properties类型; 6、将报告类型改为Verbose Report,这个报告将会在映 射完成之后产生; 7、单击Post-Place & Route Static Timing Report Properties(布局布线后静态时序报告)类型; 8、将报告类型改为Verbose Report,这个报告将会在布 局布线完成之后产生; 9、单击Place & Route Properties类型; 10、如图9.2,将Place & Route Effort Level (Overall)设置 为High,这个选项将提高在实现过程中全局布局布线的水 平;
第9章 设计实现和时序仿真-时序约束
图9.5 约束编辑器-全局分支
第9章 设计实现和时序仿真-时序约束
如图9.5所示,约束编辑器产生一个有效的UCF文件, 翻译步骤(NGDBuild)通过使用UCF文件和其设计源网 表文件,产生一个新NGD文件。映射过程读取NGD文件。 在该设计中,stopwatch.ngd 和stopwatch.ucf文件自动输入 到约束编辑器中。 在下面一部分中,与PERIOD,全局OFFSET IN,全局 OFFSET OUT和TIMEGRP OFFSET IN有关的约束条件将 写入UCF并在随后的实现过程中使用。如图9.6所示,时序 约束的全局分支自动显示设计中的所有时钟网络。
第9章 设计实现和时序仿真-建立约束文件
前几章仿真设计的秒表系统,包括5个输入:CLK, RESET,LAP_LOAD,MODE和SRTSTP。如果已经通过 原理图或HDL输入创建了工程,并设计输入了源文件和 EDIF网表文件。创建UCF文件的步骤: 1、在Source Tab选项卡中,选择顶层文件stopwatch; 2、选择Project→New Source,选择Implementation Constraints File; 3、输入 stopwatch.ucf 作为文件名,单击Next; 4、在列表中选择stopwatch文件作为UCF的约束对象文 件(UCF一般情况下是对顶层文件的约束),单击Next, 最后单击Finish。
第9章 设计实现和时序仿真-时序约束
图9.8 管脚约束
14、在Select Group下拉菜பைடு நூலகம்中,选择你所创建的分 组;
第9章 设计实现和时序仿真-时序约束
图9.9 时序约束
• • • • •
15、单击Clock to Pad,Clock to Pad对话框被打开; 16、在Timing Requirement 中输入32; 17、在Relative to Clock Pad Net中选择CLK; 18、单击OK; 19、选择File→Save,那么所有的改动都将保存在当前 目录下的stopwatch.ucf文件中; • 20、选择File→Close,关闭约束编辑器;
第9章 设计实现和时序仿真-创建分区
图9.3 创建新的分区
保存状态为继承关系,取决于顶层分区,顶层分区默认 为Routing,可以改为Routing,Placement,或Sysnthesis。 可在Partition Properties中进行设置。
第9章 设计实现和时序仿真-创建时序约束
用户约束文件(UCF)提供了一个无需回到设计输入工 具就能约束逻辑设计的构造方法。可使用约束编辑器和平 面图编辑器的图形化界面进行时序和管脚约束。启动约束 编辑器,下面给出创建时序约束的步骤: 1、在Source Tab选项卡中,选择Stopwatch; 2、在Processes选项卡中,展开User Constraints层级目 录; 3、双击Create Timing Constraints,如图9.4,这时自动 执行翻译步骤,然后约束编辑器自动打开。