ASIC课程设计报告

上传人:仙*** 文档编号:28322669 上传时间:2021-08-25 格式:DOC 页数:17 大小:1.68MB
返回 下载 相关 举报
ASIC课程设计报告_第1页
第1页 / 共17页
ASIC课程设计报告_第2页
第2页 / 共17页
ASIC课程设计报告_第3页
第3页 / 共17页
点击查看更多>>
资源描述
ASIC课程设计报告 班 级:*班姓 名:王克勤学 号:*日 期:2012-04-10ASIC课程设计实验一 Linux入门一、 实验目的 1. 熟悉Linux系统及常用命令2. 熟悉并熟练掌握Perl语言的使用二、 实验要求1. 熟悉Linux操作系统包括在windows系统环境下登陆Linux, 以及Linux常用命令,主要为熟悉路径。2. 使用Vi编辑软件用Vi编辑一个文件,要求长度达到1K;同时熟练使用查找-替换等功能,熟悉正则表达式。3. 熟悉Perl使用在已有的一个50M左右的数据文件中抽出需要信息,形成新的文件。三、 实验步骤1. 熟悉Linux系统a) 通过客户端登陆服务器中的Linux系统运行putty.exe,在地址中键入服务器的地址:192.168.1.110,连接类型选择SSH,点击“open”。在弹出的登陆界面里输入用户名(student)和密码(123456),进入服务器里的Linux系统。键入“vncserver”命令,申请服务器内对应PC客户端的桌面端口号,如图Fig.1-1所示,申请的端口号为2。Figure1-1 用vncserver申请PC客户端端口号运行vncserver.exe,在地址里输入“192.168.1.110:端口号(2)”,再输入密码(123456),即可打开对应于自己用户的桌面端口。b) 熟悉Linux里的常用命令命令pwd:在屏幕上输出当前的工作目录。命令cd:用于更改当前的目录。命令ls:列出当前目录的内容。命令less:显示文件时允许用户既可以向前又可以向后翻阅文件。命令more:同less命令,一次显示一屏信息。命令rm: 删除目录或文件。命令cp: 复制目录或文件。输出重定向”:将标准输出保存在一个文件中。2. Vi编辑器的使用在终端界面里键入“vi”和想编辑或建立的文件名,进入vi编辑器的界面。键入“i”:进入输入模式。此时可以编辑插入文本。ESC键:退出输入模式。键入“:w”:保存当前编辑的内容。键入“:q”:退出vi编辑器。键入“/str”:从当前光标开始向右移动到有str的地方。3. Perl语言的使用抽出报告中所有endpoint和lack的所在行的perl程序:open(FILE,$ARGV0);open(FILE1,$ARGV1);while(defined($line=)chmod $line; $_=$line;if(/Endpoint|slack/)print FILE1 ( $line);close FILE;close FILE1;从REG-REG_3360.rpt中抽出Endpoint和slack,输出到Endpoint_In_REG-REG.rpt,打开输出结果如下:Figure1-2 Endpoint和slack输出结果四、 实验总结通过这次试验,我们初步学习了Linux系统和Perl语言,熟悉了集成电路EDA软件运行的环境。Linux虽然也支持图形界面操作,但是指令操作更快捷方便,其文件系统结构也与windows有很大差别。在大规模集成电路的设计中,一个设计的分析报告可能很大,如果人工的逐行看,会非常浪费时间且效率较低。通过Perl这种脚本语言,结合正则表达式,便可以抽出报告中所要的信息,省时省力。实验二 DC的使用一、 实验目的熟悉Synopsys的Design Compiler的使用,了解集成电路前端设计的流程。二、 实验步骤1. 启动DCa) 在工作目录“/home/student/Chipsythesis_2/lab_wangkeqin/”下键入“csh”,即将系统默认的bashell切换成cshell,为下一步运行csh脚本做准备。b) 继续键入“source ././dc.csh”或是“source /home/student/”命令,前者是相对命令,后者是绝对路径。即运行在当前工作目录上两级的文件dc.csh,设置DC运行所需的初始环境变量。c) 键入“dc_shell”命令,即Design Compiler的启动命令。进入DC的命令行界面。2. 运行DCDC运行的操作脚本为tcl_scripts目录下的top_down.tcl,所以在dc_shell里键入“source tcl_scripts/top_down.tcl”,运行编译的脚本,脚本内的内容包括读入设计相关的数据库,编译,输出设计报告等内容。三、 报告分析与优化 在dc_shell里键入“report_qor qor0329.rpt”,可得设计电路的设计质量(quality of results)报告。Figure2-1 qor results部分信息通过qor报告可以得到该设计的整体信息:时序上不符合要求的路径有78条,时间裕度为-0.46,单元数为22+964+2353+509=3848,设计面积为25815.927594,其中cell的面积是4993.740094。在dc_shell里键入“report_power power0329.rpt”,可得设计电路的功率报告。Figure2-2 Power result部分信息从Fig.2-2可以看出此设计的动态功率是19.5178mW。在dc_shell里键入“report_timing Timing.rpt”,可得设计电路的时序报告。Figure2-3 Timing.rpt部分信息时间裕度slack是require time(RT)与arrive time(AT)之差。如果差为大于零的数,即说明信号实际到达的时间比要求的时间早,这样就符合了时序要求,反之则不符合要求。在dc_shell里键入“report_timing max_path 200 maxpath0329.rpt”,可得设计电路的时序最差的200条路径。Figure2-4 Maxpath0390.rpt部分信息如图Fig.2-4所示,可以看出里面slack最小的200条路径的具体情况,并可以看到信号在每一段模块与连线中传递时的占用的时间情况。为下一步优化时序提供信息。Figure2-5 Cell.rpt部分信息如图Fig.2-5所示,本设计所用单元总面积为4993.740094.由上图的报告结果可以看出这个设计并不满足时序要求,所以要么改变设计电路的布局布线优化逻辑,要么放松对电路的要求。本实验采用减小输入延迟的方法来增加时间裕度。修改约束脚本方法如下:根据编译脚本文件top_down.tcl里面的语句set TOP_LEVEL_SCRIPT tcl_scripts/top_level_cons.tcl 可知,设计的顶层约束文件是tcl_scripts目录下的top_level_down.tcl文件,所以编辑下列文件里对输出延迟的设置即可使时序符合要求。# * Generic Design Budget for RISC_CORE team *reset_design# suppress warnings from set_driving_cell and set_wire_loadset suppress_errors $suppress_errors UID-401 UID-439create_clock -p 9 get_ports Clkset_clock_uncertainty -setup 02 get_clocks Clkset_dont_touch_network get_ports Clkset_operating_conditions typ_70_4.50set_wire_load -mode top tc6a120m2set_driving_cell -lib_cell buf1a4 remove_from_collection all_inputs Clkset_load load_of cba_core/buf1a2/A all_outputsset_input_delay 5.5 -clock Clk -max remove_from_collection all_inputs Clkset_output_delay 6 -clock Clk -max all_outputsset_scan_configuration -style multiplexed_flip_flopgroup_path -name REG-REG -from all_registers -clock_pin -to all_registers -data_pingroup_path -name IN-REG -from all_inputs -to all_registers -data_pingroup_path -name REG-OUT -from all_registers -clock_pin -to all_outputs将set_output_delay 6-clock Clk max all_outputs中的6改为5。修改后对DC重新编译可以得到如下的结果。Figure2-6 修改后qor.rptFigure2-7 修改后Power.rpt部分信息Figure2-8 修改后REG-REG中的slack从Fig.2-6、Fig.2-7、Fig.2-8可以看出,修改output_delay之后,slack并没有得到改善,反而恶化了。功耗也相应增加了,说明修改效果不好,应重新修改约束,来优化设计。四、 实验总结经过这次实验,我们学习了如何使用Design Compiler。了解了大规模集成电路里前端设计电路的流程,并通过修改时序约束使电路时序达到要求,对课堂上抽象的时序分析有了感性的认识与了解,并通过图形界面对不满足时序要求的电路有直观的认识。修约束后,可以看出电路的单元数变增多了,功耗增加了,这可能是因为修改约束时,把约束改大了,DC在综合优化时序时加入了更多的buffer等单元使原本就存在slack的电路slack变得更大。由于单元数目增加了,功率同时也同时增加了。DC可以同时支持图形界面和tcl脚本,使用tcl命令更加快捷,执行效率高。而且可以把想执行的命令都写在一个脚本里,使用灵活。实验三ICC的使用一、 实验目的熟悉Synopsys的IC Compiler的使用,对大规模集成电路的后端设计有所了解。二、 实验步骤1. 启动ICCa) 在工作目录下“/home/students/ICC_wangkeqin/orca_top/”键入命令“csh”,切换shell命令解释器。b) 键入“source ././icc.csh”,与DC类似,运行这个icc.csh的脚本,设置ICC启动所需的初始环境变量。c) 键入“icc_shell”这一ICC的启动命令,启动IC Compiler。2. 运行ICC运行ICC可以有两种方式可以选择:第一种是直接运行脚本文件run_all.tcl,即“source run_all.tcl”;另一种就是将run_all.tcl脚本中的命令一条条分别执行,run_all.tcl脚本内容如下:source logic_lib_set.tclsource create_mw_lib.tclsource initialize_floorplan.tclsource placement.tclsource cts.tclsource route.tclsource dfm.tcl文件中每一行source的脚本文件对应着集成电路后端设计中流程的每一步。logic_lib_set.tcl文件用来导入设计所需的目标库与连接工艺库。 create_mw_lib.tcl创建自己的设计库并读入前端综合好的verilog文件,指定当前设计。initialize_floorplan.tcl只是读入def工艺文件,所以版图并无变化。placement.tcl做整个设计的全局布线的初试布局划分。cts.tcl进行时钟树综合,主要是为了控制时钟的延迟与扭斜,时钟偏斜过大会引起竞争条件,增加在触发器中锁存错误数据的几率。route.tcl负责详细布线。dfm.tcl用来做可制造性设计DFM,这是为了避免天线效应、金属密度不均匀、光刻图形畸变等问题。在65nm以前做DFM,效果并不是很明显,在65nm工艺以后,天线效应、金属密度不均匀、光刻图形畸变等问题将更加明显,DFM就显得格外重要。三、 实验结果分析1. 运行logic_lib_set.tcl和create_mw_lib.tcl脚本后图形变化Figure3-1 创建milkway库之后的ICC图形界面如图Fig.3-1所示,运行完logic_lib_set.tcl和create_mw_lib.tcl脚本之后的ICC图形界面,创建好自己的库并读入前端综合好的verilog代码指定当前设计。2. Initialize_floorplan.tcl脚本做完后,版图结构Figure3-2 Initialize_floorplan之后版图信息如图Fig.3-2所示,初始化floorpaln之后,版图信息并没有太大变化,是由于initialize_floorplan.tcl只是读入def工艺文件,所以版图并无变化。3. Placement之后版图及层次图信息Figure3-3 Placement之后的版图信息Figure3-4 Placement之后的层次图信息通过report_design physical命令与path slack查看单元数和时序情况。 Figure3-5 通过report_design physical查看模块单元信息如图Fig.3-5所示,本设计的模块单元数目为10741,总的模块面积为214859.49。Figure3-6 通过path slack查看时序信息图如图Fig.3-6所示,最小的slack为0.01,有132条路径,其次是1.51有50条路径。4. CTS(时钟树综合)完成后版图信息Figure3-7 CTS之后版图信息Figure3-8 CTS之后版图层次结构信息Figure3-9 CTS之后查看module单元信息如图Fig.3-9所示,CTS之后,通过report_design -physical命令查看module单元数为10846,比原来的10741多了105个。Figure3-10 CTS之后用path slack查看时序信息如图Fig.3-10所示,CTS之后,用path slack命令查看时序信息,可以看出最小salck为0.01的路径条数为115,比CTS之前的132条有所改善。5. Route(详细布线)之后的版图信息Figure3-11 Route之后版图信息Figure3-12 Route之后版图的层次结构信息Figure3-13 Route之后Module单元信息如图Fig.3-18所示,Route之后,module cells由上一步的10846增加到12548,增加了1720个。Figure3-14 Route之后 path slack信息如图Fig.3-14、Fig.3-10所示,route之后,path slack几乎不变。6. DFM(可制造性设计)之后的版图信息Figure3-15 DFM之后版图信息Figure3-16 DFM之后版图层次结构信息Figure3-17 DFM之后Module cells信息Figure3-18 DFM之后版图层次结构的变化信息如图Fig.3-17所示,此时单元数为17779,发生很大变化。从图Fig.3-14、图Fig.3-18比较可以看出,DFM前后时序并没有发生很大变化。这可能是由于可制造性设计只是针对版图在图形上的优化,对电路的结构和布局不会产生很大的影响造成的。7. DRC规则检查a) 不同的金属引线间距过小(Diff-net spacing)Figure3-19 Diff-net spacing错误如图Fig.3-19所示,白色方框区域是METAL4,不同的金属线之间的距离过小,违反了金属4与金属4的最小间距的规则。b) 小于最小区域面积(Less than minimum area)Figure3-20 DRC检查小于最小面积错误如图Fig.3-20所示,白色方框区域在金属2的区域范围内,可能是因为过孔中METAL1的面积过小,小于最小区域面积,所以DRC提示出错。c) 金属层间距过短Figure3-21 METAL4-METAL4间距过短如图Fig.3-21所示,METAL4-METAL4之间间距过短,可能是由于白色高亮区域相对于右边的金属4连线错开了一定距离,这个距离可能小于金属4层间的最小间距。d) 短路(short)Figure3-22 DRC检查出现Short如图Fig.3-22所示白色方框区域的两个白色的可能是两个信号引线的过孔,两个过孔连在了一起,导致了短路。四、 实验总结这次实验我们通过使用IC Compiler这个软件,对大规模集成电路的后端设计流程有了初步的认识。由于大规模的集成电路设计都是上万门级甚至上百万门级,若人工布图的话,不仅效率极低而且成本也很高。通过EDA软件自动布图不仅提高了效率,而且节约了成本,使设计人员可以更专注于设计本身,以及如何根据设计要求来编写约束文件。在实验过程中,每做一步后端的流程,即运行一个命令脚本,都会发现相应的时序或者版图上的变化。比如CTS后的时序有了很大改善,ROUTE后的版图从直观上看就有了很大的变化等。这次试验是我对继承电路后端设计有了更加深刻的认识,以后的学习和工作中会加深对这方面的研究。
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档


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

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


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