欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    IC设计流程认知指导书.doc

    • 资源ID:4146558       资源大小:2.04MB        全文页数:75页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    IC设计流程认知指导书.doc

    IC 设计流程认知实验指导书 电子科学与技术系二OO六年五月前 言集成电路自诞生以来,经历了小规模、中规模、大规模的发展过程,目前已进入超大规模(VLSI)和甚大规模集成电路(ULSI)阶段,并正向着更高集成度、超小型化、高性能、高可靠性的方向发展。VLSI的进一步发展离不开计算机辅助设计。设计VLSI已成为专业工程师和计算机技术人员应具备的日趋重要的技能。VLSI的应用将会越来越广泛,对其设计的要求将会越过电子工程的界限,进入更广泛的技术领域。作为微电子技术专业的毕业生,掌握EDA的设计思路与设计流程是十分必要的,因此,我们专门开设了IC设计流程认知课程设计。其内容是要求同学利用EDA工具软件完成大规模集成电路(如4为MCU或其他电路)设计的整个流程。即由集成电路的前端设计(Verilog 程序设计、功能仿真以及逻辑综合)到版图设计及验证的全过程。本次课设使用EDA工具主要有Verilog-xl、VCS、DC以及SE。 目 录第一章 大规模集成电路设计与实现11.1 VLSI设计流程11.2 VLSI设计工具11.3 VLSI的设计方法21.3.1正向设计与逆向设计21.3.2非定制与定制的设计方法2第二章 四位MCU的verilog语言实现32.1四位MCU各模块功能简述32.2 verilog描述32.2.1硬件描述语言的输入4第三章 验证与VCS使用103.1VCS的简单使用方法103.1.1什么是VCS103.1.2 VCS的工作方式113.1.3 如何进行仿真和验证113.1.4 VCS的运行方式113.2 Alu综合前的编译、仿真步骤与实现113.2.1 无层次化设计仿真113.2.2 层次化设计仿真17第四章 综 合234.1 综合在集成电路整个设计流程中的地位234.2 电路综合的特点与要求244.2.1电路综合的特点:244.2.2 电路综合的要求:254.3 综合的具体步骤254.3.1无层次化设计综合254.3.2层次化设计综合34第五章 综合后的编译、仿真365.1层次化设计365.1.1 Verilog_XL365.1.2VCS385.2 层次化设计405.2.1Verilog_XL405.2.2 VCS41第六章 布局布线(SE)436.1启动SE436.2读入工艺库文件 .lef和.ctlf446.3 读入设计文件 .v, .def和.sdf456.4版图布局初始化476.5放置I/O管脚486.6放置电源环和电源条496.7放置标准单元516.8 Ctgen时钟树的生成526.9填充filler cell526.10 Route-Global and Final Route536.11 验证(连接和尺寸)536.12版图文件、.v文件和时序输出(GDS II&sdf)54第七章 布局布线后的编译仿真557.1 TestBench557.2文件准备557.3 Start Up56第八章设计规则检查&版图原理图一致性比较578.1 What Is DRC?578.2文件准备578.3 GDSII文件转换成GDS文件588.3.1 Start Up 启动588.3.2 Library View_0 库浏览588.3.3 Make TF Library 生成TF库598.3.4 Library View_1库视图1618.3.5 Make Design Library 生成设计库618.3.6 Library View_2库视图2638.3.7 Stream In GDSII638.3.8 Library View_3 库视图3658.3.9 Layout View 版图视图658.3.10 Stream Out GDS668.4 DRC678.4.1 Process Summary678.4.2 DRC Process View688.5 LVS69参考书目71第一章 大规模集成电路设计与实现1.1 VLSI设计流程自顶向下的设计流程: 图1-1VSLI的设计包括系统设计,逻辑设计,电路设计和版图设计。为了保证设计的正确性,对每一个阶段的设计结果都要进行计算机模拟和验证。对于复杂的集成电路设计,常用自顶向下(Top-Down)和自底向上(Bottom-up)的层次化设计方法。 设计中反复出现的基本单元(如反相器,与非门,异或门等)和子电路模块(如触发器,计数器,运算放大器,振荡器),往往把它们的符号,版图及性能固化下来,形成与工艺相应的设计单元库。具体设计流程将在后面结合具体电路进行更详细的介绍。1.2 VLSI设计工具 VLSI设计就目前水平,主要依靠由逻辑设计、电路设计、版图设计和测试码生成等诸多功能组合而成的一套软件设计开发系统来完成,也就是VLSI的EDA工具。其中包括了设计、模拟、故障诊断、综合、制造以及测试等方面,主要分为以下三大类:1 模拟验证工具:帮助设计者验证设计是否正确,包括逻辑模拟、电路模拟、时域模拟,设计规则与电学规则检查,版图与电路图一致性检查,版图参数提取等。2 设计输入和数据库管理工具:帮助设计者输入设计对象,设计要求和管理设计数据,例如硬件描述与编译,逻辑图与版图的输入编辑等。3 综合设计工具:帮助设计者完成各级的设计,例如系统综合,逻辑综合,版图布局布线模块自动生成等。1.3 VLSI的设计方法1.3.1正向设计与逆向设计 集成电路的层次化设计法可分为系统级、逻辑级、电路级和版图级。正向设计法是指以综合的方法从集成电路的高层次走向低层次,直至完成电路的掩膜版图设计。逆向设计法则恰好与之相反,是以分析的方法从低层次到高层次,对实际芯片进行腐蚀,照相,从得到的版图对其进行逻辑提取,分析其功能和原理,以期获得原设计思想。逆向设计是以逆向剖析为基础,在剖析得到的不同层次上转入正向设计。换而言之,对于一个实际芯片作了逆向剖析之后,得到逻辑图、功能和工作原理,然后即可决定采用例如阵列技术转入正向设计,用CAD工具进行逻辑图的描述输入、模拟、测试码生成与设计,生成网表后转入门阵列的自动化版图设计,在生成掩膜版图后进行电学规则、几何规则检查以及电路和版图的一致性检查,并进行版图参数提取。随后再进行后模拟,这样就完成了一个完整的逆向设计。1.3.2非定制与定制的设计方法非定制是对于那些具有标准功能的电路的,例如与非门、异或门、与或非门、触发器、加法器、计数器、存储器等,用户不必事先向厂家定做,设计与生产者也不是针对某些用户具体要求而设计和制造。这类电路是标准化了的,产量大用途广,性价比高,主要是人工设计或人机交互式设计。定制设计指用户以某种特定应用为主向生产厂家定做,设计人员专门为其进行设计。现今VLSI允许在一块芯片上集成一个系统或子系统,日益倾向于以某种特定应用为主的专门集成电路,例如信号处理器,控制器,专用的编码译码器等。用户不必像过去那样用分立的集成块或分立期间进行试验或设计,而是希望把需要的电路系统完整的集成在一块芯片上。用户需向厂家定制这种电路。定制设计又分为全定制设计和半定制设计两种,全定制版图设计适合于生产批量大、电路结构的重复性强、数字与模拟兼容以及有特殊要求的电路。这种设计方法一般是利用人机交互图形系统,由设计人员人工完成各个器件及互连线的版图设计、输入和编辑,实现电路版图到版图的转换。全定制设计方法的特点在于充分利用设计者的经验与创造性,尽可能对每个器件的电路参数与版图参数进行优化,力求达到优良的技术指标。这种电路具有最佳的性能(例如速度和功耗等),芯片面积也能做到最小,但是设计周期较长,成本高,设计效率较低。半定制设计是硅微电子系统的主要设计技术,主要包括门阵列设计技术、标准单元设计技术、以及PLD/FPGA设计技术等几种设计方法。其特点是预先设计并加工好一些基本单元电路供用户选用,按照用户提出的具体定制要求实现单元之间的布局布线,以实现某种功能要求。也就是说,一部分基本的设计和生产工作在用户定做之前已预先完成,余下的部分工作按用户的要求来定做。此种方法的设计周期短、成本较低,电学性能良好。本设计将采用半定制设计中的标准单元法和全定制设计相结合的设计方法进行设计。第二章 四位MCU的verilog语言实现设计人员用硬件描述语言描绘出硬件的结构和硬件的行为,再结合半导体器件的工艺要求进行仿真、综合,最后生成付诸生产的电路描述或版图参数描述的工艺文件。本文以4bitMCU中的ALU为例说明设计全过程。2.1四位MCU各模块功能简述 本设计中的MCU为一功能比较简单的微处理器,其操作数字长4bit。该处理器主要有数据部分与控制部分组成,其中主要包括:(1) 计数器PC,该计数器产生指令地址码控制指令存储器(opmem)输出相应的8位指令代码。(2) 指令存储器opmem,该存储器输入为PC计数器产生的指令地址,经过寻址将输出相应地址对应的指令代码(3) 指令寄存器opreg,寄存器由时钟信号与ir信号共同控制对由指令存储器输出的指令代码进行缓存。(4) 控制器controler,它以当前指令、时钟、运算结果、外部电路的控制信号为输入,产生相应的控制码,向数据通道各部件、存储器、以及其他外围单元发出控制信号,控制数据在寄存器、存储器内的读/写操作,I/O部件进行数据交换,控制ALU进行指定的运算。该控制器实际为一译码电路将当前执行的指令代码、MCU其他部件的状态信号经译码产生控制码,送到数据部分和MCU其他部件,使其产生相应动作。(5) 算术逻辑单元ALU,对操作数进行算术运算和逻辑运算,产生运算结果和进位等标志。(6) 内部存储器RAM,该随机存储器采用4x4结构,由16个触发器组成,在存储器当中存储了ALU单元所需要的操作数(7) 输出锁存器,该锁存器由en信号控制产生输出。除此以外,该MCU还包括各种数据选择器、寄存器、缓冲器等部件。其中,ALU、RAM、数据总线、各寄存器构成了数据部分;PC计数器、指令存储器、专用指令寄存器、控制器等构成了控制部分。下面将以运算单元ALU为例作详细介绍。 ALU是整个微处理器系统的核心部件,它主要负责进行各种数学运算以及逻辑运算。在标准MCU中ALU包括两操作数之间的加运算、减运算、求补、左移/右移即乘法与除法运算等数学运算,还包括可进行AND、OR、NOT和XOR等逻辑运算的逻辑电路。2.2 verilog描述本书通过介绍ALU两种设计方案:无层次化设计、层次化设计的实现来介绍数字集成电路的设计流程。2.2.1硬件描述语言的输入2.2.1.1真值表2.2.1.2 结构图1 无层次化设计的结构图图2-12 层次化设计的结构图图2-22.2.1.3 无层次化设计代码1 、ALU图2-32 ALU_tb图2-42.2.1.4 层次化设计代码1 Decoder图2-52 Fout_BIT图2-63 Fout_BIT_ALU图2-74 Single_BIT图2-85 TOP图2-96 ALU_tb图2-10第三章 验证与VCS使用 当代码编写完之后,如何确定代码是否正确,代码能不能符合设计要求,能不能完成所需要的功能,这就是验证所要做的工作。验证在设计中有很重要的地位,从设计流程中可以看到,几乎设计工作每前进一步,都要进行验证。对验证的要求,大多数人认为只要编译通过之后,能实现功能就可以了,其实决不仅仅这么简单,验证的目的应该是尽量多的找到代码中的错误,不管是编写错误还是功能错误,找出的错误越多,验证工作就做的越来越好。既然验证这么重要,如何进行验证呢?对于验证来说,不同等级的验证,它的方法是不一样的。什么是验证的等级,从设计流程图3.1可以看到,验证可以大致分为单独子模块验证、功能模块验证、系统顶级验证。² 单独子模块验证:需要做的工作是验证它的功能和逻辑是否符合设计要求² 功能模块验证:需要验证这个模块的功能可不可以满足要求,是否会有非法数据或不该有的输出,错误的状态等。² 系统顶级验证:更关注于系统整体的行为方式、模块间的联系和通讯、总线信号、数据流路径是否满足设计要求,数据处理或时序正确与否等。验证需要一个支持的平台,这就是test_bench,在这个测试平台上,有激励信号产生器、被测模块、响应分析和监测器。² 激励与控制:输入端口设置,测试向量,测试模式设置。² 响应分析器和监测器:可以及时监控输出信号变化,可以判断输出信号是正确、合法、错误、非法等。Stimulus&ControlMonitor&AnalyzerModule 图3-1Test_bench可以用verilog描述语言搭建,也可以用C语言编写,如果用C语言编写,还需要相关的编译器并和与verilog的接口。3.1VCS的简单使用方法3.1.1什么是VCSVCS的全称是Verilog Compile Simulator,是Synopsys公司的强有力的电路仿真工具,可以进行电路的时序模拟。3.1.2 VCS的工作方式VCS运行首先把输入的verilog源文件编译,生成可执行的模拟文件,也可以生成VCD或者VCD记录文件,运行这个可执行的文件,可以进行调试与分析,或者查看生成的VCD或VCD记录文件,同时还生成了一些供分析和查看的文件,以便于调试。3.1.3 如何进行仿真和验证仿真测试一个模块的大致步骤如下:(1) 首先需要编写好模块的verilog代码。(2) 搭建test_bench,充分了解被测模块的特性,编写测试向量,输入端口的激励,编写响应分析和监测部分。(3) 运行VCS进行模拟,查看输出或者波形。(4) 若发现错误,分析错误类型和原因,修改代码或者修正测试方法,直到符合测试要求。3.1.4 VCS的运行方式VCS图形化方式有两种模式:interactive模式、post-processing模式。Interactive的工作模式比较适合一个正在debug的设计,通过查看仿真结果,直接对一个正在调试的设计进行修改,然后rebuild进行调试,而不需要退出VCS环境;而post-process工作模式比较适合已经调试成熟的设计,可以保存和读取VCD波形文件,所以允许多人同时调试同一个设计,在较大规模的设计中很有用处,可以节省仿真时间,因其可以避开重新仿真所花费的时间,只要对已保存的VCD文件进行读取即可。3.2 Alu综合前的编译、仿真步骤与实现 本节通过对ALU两种代码进行综合前的编译、仿真来介绍仿真工具的使用,这里介绍verilog-xl和VCS两种工具的使用3.2.1 无层次化设计仿真3.2.1.1 verilog_xl1)TestBenchtimescale 1ns/1ns/Time Unit & Precisionmodule ALU_tb;/List Ports To be Simulatedreg 2:0 S;reg 3:0 OPERAND_A,OPERAND_B;reg CO;reg 7:0 test;wire 3:0 ALU_RESULT;/Top ModuleALU u1 (.S(S),.A(OPERAND_A),.B(OPERAND_B),.F(ALU_RESULT),.Cin(CO);/FOR Simulationinitialbegin for ( test = 0; test <= 8'hfe; test = test+1) begin CO = test0; S2:0 = test3:1; OPERAND_A = test3:0; OPERAND_B = test7:4; #10; end $finish;end/ FOR XLinitialbegin $shm_open("ALU.shm"); $shm_probe("AC");endendmodule2)文件准备codes目录下是你的设计文件和测试文档runme.f文件:./codes/ALU_tb.v ./codes/ALU.v 图3-23)Start Upserver% verilog -f runme.f +gui&1 13241WaveForm 图3-33.2.1.2 VCS1) TestBench/Time Unit & Precisiontimescale 1ns/1nsmodule ALU_tb;/List Ports To be Simulatedreg 2:0 S;reg 3:0 OPERAND_A,OPERAND_B;reg CO;reg 7:0 test;wire 3:0 ALU_RESULT;/Top ModuleALU u1 (.S(S),.A(OPERAND_A),.B(OPERAND_B),.F(ALU_RESULT),.Cin(CO);/ FOR VCSinitialbegin ifdef vcd $display("nVCD+ onn"); $vcdpluson; endifend/FOR Simulationinitialbegin for ( test = 0; test <= 8'hfe; test = test+1) begin CO = test0; S2:0 = test3:1; OPERAND_A = test3:0; OPERAND_B = test7:4; #10; end $finish;endendmodule2)文件准备codes目录下是你的设计文件和测试文档runme.f文件:./codes/ALU_tb.v ./codes/ALU.v图3-43)Start Up/postprocessing modeserver% vcs f runme.f PP R +vcsd +define+vcdserver% vcs -f runme.f RPP/interactive modeserver% vcs -f runme.f -Mupdate -RI4) Next Steps/postprocessing mode图3-5/interactive mode图3-65) WaveForm/postprocessing mode图3-7/interactive mode图3-8图3-93.2.2 层次化设计仿真3.2.2.1Verilog_XL1)TestBenchtimescale 1 ns / 1 ns/Time Unit & Precisionmodule ALU_tb;/List Ports To be Simulatedreg 2:0 S;reg 3:0 OPERAND_A,OPERAND_B;reg CO;reg 11:0 test;wire 3:0 ALU_RESULT;/Top ModuleTOP u8(.S(S),.OPERAND_A(OPERAND_A),.OPERAND_B(OPERAND_B),.ALU_RESULT(ALU_RESULT),.CO(CO);/FOR Simulationinitialbegin for ( test = 0; test <= 12'hffe; test = test+1) begin CO = test0; S2:0 = test3:1; OPERAND_A = test7:4; OPERAND_B = test11:8; #50; end $finish;end/ FOR XLinitialbegin $shm_open("ALU.shm"); $shm_probe("AC");endendmodule2)文件准备codes目录下是你的设计文件和测试文档runme.f文件:./codes/ALU_tb.v./codes/Decoder.v./codes/Four_BIT.v./codes/Four_BIT_ALU.v./codes/Single_BIT.v./codes/TOP.v图3-102) Start Upserver% verilog -f runme.f +gui&3)2.2.1.4 WaveForm图3-113.2.2.2VCS1) TestBench/Time Unit & Precisiontimescale 1 ns / 1 nsmodule ALU_tb;/List Ports To be Simulatedreg 2:0 S;reg 3:0 OPERAND_A,OPERAND_B;reg CO;reg 11:0 test;wire 3:0 ALU_RESULT;/Top ModuleTOP u8 (.S(S),.OPERAND_A(OPERAND_A),.OPERAND_B(OPERAND_B),.ALU_RESULT(ALU_RESULT),.CO(CO);/ FOR VCSinitialbegin ifdef vcd / enable vcd dumping $display ("nVCD+ dumping is turned onn"); $vcdpluson; endifend/FOR Simulationinitialbegin for ( test = 0; test <= 12'hffe; test = test+1) begin CO = test0; S2:0 = test3:1; OPERAND_A = test7:4; OPERAND_B = test11:8; #50; end $finish;endendmodule2)文件准备codes目录下是你的设计文件和测试文档runme.f文件:./codes/ALU_tb.v./codes/Decoder.v./codes/Four_BIT.v./codes/Four_BIT_ALU.v./codes/Single_BIT.v./codes/TOP.v图3-123) Start Up/postprocessing modeserver% vcs -f runme.f -PP -R +vcsd +define+vcd4) Next StepsHierarchy点击主窗口中的hierarchy按钮打开hierarchy窗口,在这个窗口中系统会用不同的颜色来表示设计的层次结构,可以表示出来的有:模块、任务、函数、有名块、信号、寄存器、线网、输入输出等。这个窗口可以认为是一个查看器(brower),用户可以用鼠标把需要查看的对象拖动到其他相应的窗口中图3-13logic窗口打开logic窗口,把信号,或者模块用中键从hierarchy窗口拖到logic窗口中,就可以看的电路的拓扑结构,可以顺着信号线查看他的连接,当模块结构比较复杂的时候,这种方法很方便就可以检查到是否有连接错误,如:Logic_ALU_tb图3-14Register窗口打开register窗口,在hierachy中选择几个信号或者寄存器,用中键拖到这个窗口中,上面有个红色的按钮,按此按钮,可以让模拟执行到选定的这些信号中的任意一个发生变化,并且会红色高亮显示出来。在这个窗口中,还可以自己画一些辅助图形,比如把信号编组然后放在一起,用矩形括起来,并加上一个标签,这在当模块复杂,需要监视的信号很多的情况下是很方便的。这些辅助也可以被存储下来,下一次模拟的时候可以方便地直接调用出来。图3-15Source窗口下面再来打开source窗口,把信号或者模块从hierarchy窗口拖到这里,就马上可以看到相关的源代码了。图3-164) WaveForm 该窗口可以显示每个信号的波形状况、提供指针来指明时刻、用标签来定义断点、用表达式指定和跟踪模拟中的事件,此外还可以允许用户定义表达式、信号组、断点组。这几种方式提供了方便又强大的手段来控制仿真模拟。图3-17第四章 综 合综合是使用软件的方法来设计硬件,将门级电路的实现与优化的工作留给综合工具的一种设计方法。它是根据一个系统逻辑功能与性能的要求,在一个包含众多结构、功能、性能均已知的逻辑元件的单元库的支持下,寻找出一个逻辑网络结构的最佳实现方案,即实现在满足设计电路的功能、速度及面积等限制条件下,将行为级描述转化为指定的技术库中单元电路的连接。图4-1 综合示意图如图4-1所示,综合主要包括三个阶段:转换(translation)、优化(optimization)与映射(mapping)。转换阶段综合工具将高层语言描述的电路用门级的逻辑来实现,对于Synopsys的综合工具DC来说,就是使用gtech.db库中的门级单元来组成HDL语言描述的电路,从而构成初始的未优化的电路。优化与映射是综合工具对已有的初始电路进行分析,去掉电路中的冗余单元,并对不满足限制条件的路径进行优化,然后将优化之后的电路映射到由制造商提供的工艺库上。4.1 综合在集成电路整个设计流程中的地位综合是连接电路的高层描述与物理实现的桥梁。综合结果的好坏直接决定于HDL语言的描述,综合给定的限制条件与综合之后的门级网表将送到后端工具用于布局布线;而且在使用HDL语言描述电路以及在综合的过程中就需要考虑电路的可测试性,在综合之后需要对电路的可测试性进行处理。4.2 电路综合的特点与要求 4.2.1电路综合的特点:4.2.1.1综合是限制条件驱动的(constraint driven)综合是在设计人员给定的限制条件下对电路进行优化与映射的,因此,设计人员给定的限制条件就是综合的目标。这个限制条件一般都是在系统设计时对整个系统进行时序分析之后给出的,模块的设计人员不能随意对该限制条件进行更改与调整。图4-2 综合过程中速度与面积性能的折中综合是综合工具对电路一些的性能进行折中的结果,对于数字电路来说就是在电路的面积与功耗,面积与时序上的性能进行折中。图4-2是综合曲线的示意图,可以看出,当路径的延迟减小到一定程度,面积上的代价就不能明显的改善时序上的性能;同样,当面积减小到一定程度,路径延迟的增大也不能明显改上面积上的性能。4.2.1.2综合是基于路径的Design Compiler在做综合的时候,会调用静态时序分析的工具Design timer对电路中的有效路径进行静态时序分析,按照时序分析的结果来对电路进行优化。 4.2.2 电路综合的要求:4.2.2.1综合脚本的要求 综合脚本必须是可重用的。脚本的可重用主要有两方面的含义:1)在整个电路设计过程中,当后端工具提取出线负载模型后作综合或者在布局布线完成之后再做综合,保证添加的限制条件与初始时的综合是相同的。2)当系统的一些参数改变时,比如,一个模块从16位变为32位,而模块的功能没有改变,可以不改变综合的脚本,只需要改变其中的参数就可以实现该目标。即要保证综合脚本是参数化的。在添加限制条件时,必须对如下的对象施加限制条件:1)电路中需要有时钟的定义一般情况下,希望综合之后的电路是同步的数字电路(异步电路以及模拟电路需要单独处理),而同步电路中都需要设置时钟或者虚拟时钟。2)保留时钟网络,不对时钟网络做综合3)综合的时候需要指定线负载模型,用于估计连线延迟。4)限制模块中组合路径的输入输出延迟。5)限制输出的带负载能力(Loading budget)以及输入的驱动单元(driving cell)。6)模块同步输出的输出延迟(output delay)的限制,以及同步输入的输入延迟(input delay)的限制。7)多周期路径(multicycle path)以及非法路径(false path)的限制。8)工作环境的给定。4.2.2.2综合结果的要求1)综合的结果中没有时序违反(timing violation),即综合的结果必须满足时序性能的要求。2)综合之后的门级网表必须已经映射到工艺库上。3)综合之后的门级网表中应避免包含如下电路结构:*在同一个电路中同时含有触发器和锁存器两种电路单元。*在电路中出现有反馈的组合逻辑*用一个触发器的输出作为另外一个触发器的时钟*异步逻辑和模拟电路未单独处理*使用的单元电路没有影射到工艺库中4.3 综合的具体步骤4.3.1无层次化设计综合1)文件准备.synopsys_dc.setup:启动文件DB:临时存储目录Libs:库文件目录(csmc06core.db csmc06corecore.sdb)Reports:综合结果报告目录Scripts:可运行脚本目录Codes:可综合设计文件目录Codes_mapped:综合后生成的门级网表文件目录和SDF文件图4-3编辑.synopsys_dc.setup文件#set target_library "csmc06core.db"set link_library "* csmc06core.db"set symbol_library "csmc06core.sdb"set search_path "$search_path ./Libs ./Scripts ./codes"编辑Scripts文件图4-52)运行过程基本命令dc_shell-t> read_verilog ALU.vdc_shell-t> linkdc_shell-t> echo $target_librarycsmc06core.dbdc_shell-t> echo $link_library* csmc06core.dbdc_shell-t> echo $symbol_librarycsmc06core.sdbdc_shell-t> echo $search_pathdc_shell-t> list_libsdc_shell-t> report_lib csmc06core > Reports/csmc06core.rptdc_shell-t> get_designs"ALU"dc_shell-t> get_portsdc_shell-t> get_netsdc_shell-t> all_inputsdc_shell-t> all_outputsdc_shell-t> get_libsdc_shell-t> report_attribute -pin get_pins csmc06core/AN02D1/Adc_shell-t> report_attribute -pin get_pins csmc06core/IN01D1/YNdc_shell-t> quitdc_shell-t> exit运行命令server% dc_shell-tdc_shell-t> source constraints.tcldc_shell-t> source run.tcldc_shell-t> source write.tcldc_shell-t> source reports.tcl3)结果报告图4-64)da&库的查看图4-7图4-8 Read in Verilog图4-9图4-10点击模块:图4-11点击图4-11中模块:图4-12Read in DB图4-13图4-144.3.2层次化设计综合 1)文件准备运行命令 同无层次化设计 略第五章 综合后的编译、仿真后仿真的过程和前仿真一样,区别在于是对门级网表(需要综合的人员提供)进行仿真,并要加入综合时的库文件和生成的sdf文件。由于加入了库文件,其仿真结果和前仿真时对原代码的仿真结果会不同,主要还是由于时序问题造成的,所以要调节时钟,或关键信号,并往内部看,找到可能问题所在,然后通知代码编写者进行适当修改。5.1层次化设计5.1.1 Verilog_XL1 TestBench图5-12文件准备codes:门级网表,测试文档,SDF和Core标准单元的硬件描述语言runme.f文件:./Codes/ALU_tb.v ./Codes/ALU_Gates.v ./Codes/csmc06core_un.v图5-23 Start Upserver% verilog -f runme.f +sdf_verbose +gui

    注意事项

    本文(IC设计流程认知指导书.doc)为本站会员(仙人指路1688)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开