dc综合实验指导书(编辑修改稿)内容摘要:
........................................................................ 120 任务 1 编译 RISC_CORE ............................................................................... 121 任务 2 分析报告细节 ..................................................................................... 122 任务 3 characterize/write_script ...................................................................... 123 任务 4 带刻画的第二遍编译 ........................................................................... 123 任务 5 进行带 DW 基础库的第二遍编译 ......................................................... 124 任务 6 调整保持时间 ..................................................................................... 126 任务 7 改进面积 ............................................................................................ 126 任务 8 保存最终的门级网表 ........................................................................... 127 5 1 概述 实 验目的: 描述综合过程中的四个基本步骤 通过学习获得使用 Design Compiler 的图形界面工具 Design Analyzer 进行层次化设计的经验。 概述中包含很多先期的参考: 不要拘泥于这些细节,先开始进行练习。 这些细节在开始时只会挫伤你的兴趣,在随后的讲义和实验中当你再次遇到同样问题(更为详细的细节)时却可以帮助你加深对概念的理解。 6 初步概念 在讲义中,综合过程被描述为 翻译 +逻辑优化 +映射 在 Synopsys 的一系列工具中,翻译是通过 read_vhdl / read_verilog 命令来执行的。 逻辑优化 和 映射 是通过编译命令来执行的。 在下图中对这个过程进行 了 阐释 : 7 初步定义 read_vhdl / read_verilog 读入( V) HDL 文件,执行语法和综合策略的检查,然后使用通用器件“建立”设计。 约束不是 DC 的命令,而是一系列在使用 DC 时对设计的时序和面积提出要求的执行步骤。 Compile 命令优化一个设计并从你的目标工艺库映射到真正的门级,产生满足要求的实际电路。 DC 中的为映射过的设计将被映射后的新设计覆盖。 步骤说明 1. 登录工作站 2. 进入工程目录 Lab_1 UNIXcd lab_1 UNIXls a 这是你的进行 Lab_1 实验的顶级目录;注意名为 . 的文件以及各子目录。 在这个实验中你将执行的脚本文件就存放在脚本文件子目录中。 3. 在 UNIX 提示行中激活 Design Analyzer: UNIXdesign_analyzer amp。 4. 按下列顺序选择菜单,打开 Design Analyze 命令行窗口 : Setup – Command Window 命令行窗口帮助你管理执行的命令以及 DC 反馈的信息。 8 调整窗口的位置和大小使 Design Analyzer 的窗口覆盖整个工作站屏幕的上半部。 调整并移动命令窗口使其处于 Design Analyzer 窗口下方占据四分之一空间。 5. 按下列顺序选择菜单,读入 文件 : Setup Scripts – MY_CHIP Source Code 在设计示例 MY_CHIP 中,以上五个菜单项帮助你走完整个 Design Compiler的基本步骤,这几个菜单项被称做是执行命令的 DC 脚本。 这个菜单是特别为这个实验创建的;定义在工具建立文件中,这会在随后的讲义中讨论。 你会在 Design Analyzer 窗口中看见 MY_CHIP 的“方程”图标。 现在 MY_CHIP 设计已经出现在 DC 内存中了, 表示其已经处于 boolean 格式,由 GTECH 器件构成电路 6. 双击“ equation”图标进入“ Symbol View” 你将发现一个连有一些输入输出端口的方块。 这就是设计的 Symbol View,在右下角的 Design Analyzer 窗口中显示出来。 显示了设计的方块图。 9 7. 双击 Symbol View 中的方块进入“ Schematic View” 注意此时在在右下角的 Design Analyzer 窗口中显示为“ Schematic View”。 你会发现你的设计结构是由一些由通用的独立库中的元件构成的,这些元件位于 Synopsys 的 GTECH 库中。 8. 按 下列顺序选择菜单,对设计进行 约束 : Setup Scripts MY_CHIP 你会注意在 Clock_In 端口(左边最上方的端口)显示出红色波形标记。 其脚本文件声明这个端口将被视为一个周期为 2ns 的时钟端口( 500MHz)。 其他约束(如操作环境,输入延时等)也被应用。 你会很快学会如何去查看和改变这些约束。 9. 按 下列顺序选择菜单,对设计进行 编译 : 10 Setup Scripts MY_CHIP 你将看见一个由一些目标工艺库中的实际器件(单元)表示出的你的设计 10. 按 下列顺序选择菜单,对设计进行 保存 : Setup Scripts MY_CHIP 这个脚本文件以 Synopsys 内部格式( db)保存你的设计,文件名为,保存在当前子目录中。 11. 按 下列顺序选择菜单,运行设计的 报告。 Setup Scripts timing reports 这个脚本在当前目录中写下两个新的报告,你可以在 UNIX 下看见这些文件,然而,其中包含的所有内容都在 Design Analyzer 命令窗口中出现过。 注意 Design Analyzer 命令窗口中最后几行。 报告指出约束条件是被满足的还是违规的。 ………………………………………………………………………………………………… (查找单词 MET 或 VIOLATED) 不要担心这里报告中的细节 12. 按 下列顺序选择菜单, 退出 Design Analyzer。 File – Quit OK 11 脚本文件内容 1. Read format vhdl 2. /* Define the clock period and clock port */ create_clock period 2 name my_clock \ find(port,Clock_In) /* indicate the “input valid” delay */ set_input delay 1 max –clock my_clock \ all_inputs( ) find(port,Clock_In) /* indicate the setup time requirements of output ports */ set_output_delay 1 max clock my_clock all_outputs( ) /* indicate the drive characteristics on the inputs: */ set_driving_cell lib_cellfdef1a3 \ all_inputs( ) find(port,Clock_In) /* indicate the capacitive loading on the outputs */ set_load *load_of(ssc_core_slow/inv1a3/A)\ all_outputs( ) 3. Compile scan 4. Write format db hierachy output 12 5. report_timing report_constraint all 13 思考题 题 1. 为什么在原代码中正确的对一个设计分区是重要的。 …………………………………………………………………………………… 题 2. 时钟频率增加到 1GHz。 …………………………………………………………………………………… 题 3. 操作温度变化范围增加到 +125℃。 …………………………………………………………………………………… 题 4. 操作电压降落达到 …………………………………………………………………………………… 题 5. Up_downF 输入时延比原先增加。 …… ……………………………………………………………………………… 题 6. 内部扫描和边界扫描链是否满足。 …………………………………………………………………………………… 题 7. 是否希望能自动进行以上过程的操作。 …………………………………………………………………………………… 题 8. 是你是否需要换一家代工厂商。 …………………………………………………………………………………… 14 15 2 环境建立和综合流程 实验目的: 学会 Design Analyzer 的基本特征 学会使用 Design Analyzer 的设计、符号和电路原理图的视图,以及选择菜单和鼠标功能 完成一个设计的基本综合步骤 激活在线文献并可以在手册中查找 DC 命令 16 开始工作 回答以下问题: 问题 1. 为什么要使用 Design Analyzer 而不是外壳界面。 2. 什么是 SOLD。 3. 如何定义综合以达到工作组要求。 4. 用什么 DC 命令可以完成编译。 5. 用什么 DC 命令可以完成逻辑优化和映射。 6. 什么是 DC 手稿文件。 7. “综合是基于路径的”是什么意思。 17 实验流程图 18 概念 以下图表阐述了使用 Design Compiler 的流 程: 使用 read_vhdl 或 read_verilog 命令读入 RTL/HDL 源代码。 编译过程使用 库将代码转变为 GTECH 网表(通用工艺)。 编译完成后,设计以“ .db”格式被保存在磁盘中。 此时,可以对设计加约束条件了。 通过编写一个包含所有对时序和环境(输入 /输出延时、驱动能力、堵越时间等)的约束条件的约束文件。 完成对设计的约束后,使用 pile 命令可以对设计进行逻辑优化并使用由target_library 变量指定的库(本实验中为“ ”)将设计映射到目标 工艺。 当综合完成后,设计(门级网表)将被 write 命令存储在磁盘上。 输出格式可以是 Synopsys 二进制 .db 文件,也可以是 verilog,VHDL 或 edif 网表。 19 任务 1 创建 . 文件 1. 在你的工作目录下建立 risc_design 目录, UNIXcd risc_design 2. 使用文本编辑器打开 . 文件, 3. 在 . 文件的开头 加上 以下几行字符: set target_library “” set link_library “* ” set symbol_library “” 开头处的“ ”符号指出这是一个可以被 Design Analyzer, dc_shell 或dc_shellt 使用的 Tcl 脚本文件。 4. 在 . 文件中 加入 两个别名: alias rt “report_timing” alias h “history” 这些命令经常会被使用到;为它们创建一个别名可以使你的工作简化。 注意还有一些其他已经被定义了的别名。 5. 在 . 文件中 加入 用户菜单项, set view_script_submenu_items \ {“Remove All_D。dc综合实验指导书(编辑修改稿)
相关推荐
orm1: TForm1。 implementation {$R *.dfm} function GetHtml(const WebBrowser:TWebBrowser): string。 const BufSize = $10000。 var Size: Int64。 Stream: IStream。 hHTMLText: HGLOBAL。 psi: IPersistStreamInit。
配置完成后,会返回至 VD Mgmt主界面,将光标移至图中 Virtual Disk 0 处,按回车。 可以看到刚才配置成功的虚拟磁盘信息,查看完 成后按 esc键可以返回主界面 在此界面,将光标移至图中 Virtual Disk 0 处,按 F2键可以展开对此虚拟磁盘操作的菜单。 注:左边有 +标志的,将光标移至此处,按向右方向键,可以展开子菜单,按向左方向键,可以关闭子菜单 如下图红框所示
in the same way all the time and never changes their behaviour or attitudes towards people or things. 55. If you ________ to something, you agree to do it or to allow it to be done. Conquer confide
会导致曝光过度,所以需要进行减光处理。 减光就是减少闪光的输出强度,你可以在数码相机中进行调节,但这样还是不够的,光线依然很强。 你可以用手遮住闪光灯,注意手指要靠紧,这在一定程度上可 以减少光线强度。 在实际使用中发现,简单的利用餐巾纸这一类柔软的纸张遮挡也能起到很好的效果,让光线变得柔和。 改变闪光的角度 很多人在使用闪光灯进行拍摄时,习惯性地将闪光灯与被摄物体平行,以便让光线变得均匀。
2=led(8i)。 P0=led1|led2。 delay()。 } } while(1)。 } 汇编源代码: ORG 0000H AJMP START ORG 30H S。
) printf(*)。 printf(\n)。 } } ============================================================== 【程序 24】 题目:有一分数序列: 2/1, 3/2, 5/3, 8/5, 13/8, 21/13...求出这个数列的前 20项之和。 :请抓住分子与分母的变化规律。 : main() { int n,t