Design_vision实验指导书(计数器)2008.12.9张春一、文件准备...................................................................................................................................1二、综合...........................................................................................................................................3启动DesignVision...................................................................................................................3检查配置...................................................................................................................................4读入RTL代码.........................................................................................................................4设置互连线模型-WireLoad..................................................................................................5设置时钟约束...........................................................................................................................5综合...........................................................................................................................................6检查综合结果-Area...............................................................................................................7检查综合结果-Timing...........................................................................................................8保存综合结果...........................................................................................................................8三、TCL方式运行DC....................................................................................................................9四、源文件demo-counter.vhd.......................................................................................................10本文档旨在说明使用DV(Design_vision)完成综合实验的操作,在原理上未作详细说明,如果在原理上有任何疑问,请参考其他文档书籍。一、文件准备1.建立工作目录和临时文件目录在LINUX系统下打开一个控制台窗口,建立用来进行实验的项目目录(例如test),命令如下:。cd进入用户的根目录mkdirtest建立test目录cdtest进入test项目目录mkdirwork建立用于保存各种临时文件的work目录pwd显示当前目录,确认没有错误ls显示当前目录下的所有文件2.准备RTL级源代码本实验使用的设计是一个4位计数器,在/home/ic/data/目录下已经有参考源代码,可以把它直接拷贝到当前工作目录,命令如下:pwd确认当前目录是test项目目录下cp/home/ic/data/demo-counter.vhd.把参考源代码拷贝到当前目录(即最后的“.”)ls再次确认拷贝了文件3.准备配置文件本次实验使用的标准单元库文件位于/home/ic/library目录下,其中typical.db是目标工艺库文件,umc18.sdb是符号库文件。编写保存在项目目录(test)下配置文件.synopsys_dc.setup来设置库文件的位置(注意,这个文件的文件名以“.”开头,表示是隐藏文件,只能用“ls-a”命令看到)。文件内容如下:该文件的第一行定义了综合工具产生的各种中间文件将保存在项目目录下的work目录,第二、三行定义了目标库文件,第四行定义了符号库文件。在/home/ic/data目录下已经写好了一个参考的配置文件synopsys_dc.setup.ref,可以把它直接拷贝到项目目录里,然后把文件名修改为.synopsys_dc.setup,具体命令如下:define_design_libwork–path“./work”settarget_library{/home/ic/library/typical.db}setlink_library{*/home/ic/library/typical.db}setsymbol_library{/home/ic/library/umc18.sdb}pwd确认当前目录是test项目目录下cp/home/ic/data/synopsys_dc.setup.ref.把参考配置文件贝到当前目录(即最后的“.”)ls再次确认拷贝了文件mvsynopsys_dc.setup.ref.synopsys_dc.setup把文件名改成.synopsys_dc.setupls配置文件是隐藏文件,所以看不到ls–a增加-a参加,就可以看到配置文件了cat.synopsys_dc.setup显示配置文件的内容二、综合启动DesignVisiondesigncompiler有四种运行方式,我们使用支出TCL的图形界面DesignVision,启动命令如下:DesignVision的界面如下图所示,有三个主要窗口:层次化浏览窗口(Hierarchy)、控制台窗口(Console)和命令行窗口(CommandLine)。pwd确认当前目录是test项目目录下design_vision&以后台方式启动design_visionHierarchy窗口:Hierarchy-NewLogicalHierarchyConsole窗口:Window-NewConsole命令行检查配置启动DesignVision后,在第一次综合前还要再次确认前面的配置文件是否正常设置,是否被DesignVision正确读入,也可以修改关于库文件的设置。选择“File-Setup…”菜单,确认Linklibrary、TargetLibrary和SymbolLibrary已经如下图所示设置好。读入RTL代码选择“File-Read…”菜单,选择需要综合的RTL代码文件(demo-counter.vhd)。读入RTL代码后,在Console窗口的Log页里显示了对RTL代码的分析结果,要仔细检查,库的设置是否正确,是否有警告(waring)或(error),以及是否和设计意图一致。设置互连线模型-WireLoad选择“Attributes-OperatingEnvironment-WireLoad”菜单,根据设计的等效门数的范围选择互连线模型。本实验的规模很小,所以选择最小的互连线模型。设置时钟约束z在层次化浏览窗口选择顶层设计(counter)z打开符号图(symbol)或原理图(schematic)z选择时钟管腿或端口(clk),选中后相应的管褪会变成白色。z选择“Attributes-SpecifyClock”菜单在弹出的窗口里设置时钟的参数:z随便给时钟起一个名字(clockname),例如clkz确定Portname处是选择的时钟管褪的名字(灰色显示)z设置时钟周期(Period),单位是ns,例如10nsz时钟上升沿(Rising)和下降沿(Falling)的相对时间,一般上升沿相对时间为0,下降沿相对时间为T/2,即时钟信号是占空比50%的方波信号。z选择“Don’ttouchnetwork”,使综合工具不对时钟信号插入缓冲树。综合选择“Design-CompileDesign”菜单在控制台窗口里会显示综合的结果,包括面积等信息。检查综合结果-Area选择“Design-ReportArea”菜单,在控制台窗口可以看到以下报告:****************************************Report:areaDesign:counterVersion:V-2004.06-SP2Date:MonDec810:30:122008****************************************Library(s)Used:typical(File:/home/ic/library/typical.db)Numberofports:6Numberofnets:15Numberofcells:13Numberofreferences:6Combinationalarea:156.340805组合逻辑的面积Noncombinationalarea:279.417603时序逻辑的面积NetInterconnectarea:1586.674561估计的互连线的面积Totalcellarea:435.758392单元(器件)的总面积Totalarea:2022.43298总面积检查综合结果-Timing选择“Timing-ReportTimingPaths”菜单,在控制台窗口可以看到以下报告:Startpoint:q_reg[0](risingedge-triggeredflip-flopclockedbyclk)关键路径的起点Endpoint:q_reg[3](risingedge-triggeredflip-flopclockedbyclk)关键路径的终点PathGroup:clkPathType:maxPointIncrPath-----------------------------------------------------------clockclk(riseedge)0.000.00第1列是关键路径经过的器件clocknetworkdelay(ideal)0.000.00第2列是器件的延时q_reg[0]/CK(DFFRHQX1)0.000.00rq_reg[0]/Q(DFFRHQX1)0.300.30rU23/Y(NAND2X1)0.070.37fU26/Y(NOR2X1)0.090.47rU25/Y(XOR2X1)0.150.61fq_reg[3]/D(DFFRHQX1)0.000.61f第3列是路径的总延时dataarrivaltime0.61总延时也称为到达时间