ImageVerifierCode 换一换
格式:DOCX , 页数:74 ,大小:1.64MB ,
资源ID:8519687      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8519687.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(IC设计流程认知指导书new.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

IC设计流程认知指导书new.docx

1、IC设计流程认知指导书newIC 设计流程认知实验指导书 电子科学与技术系二零一零年一月十八日前 言集成电路自诞生以来,经历了小规模、中规模、大规模的发展过程,目前已进入超大规模(VLSI)和甚大规模集成电路(ULSI)阶段,并正向着更高集成度、超小型化、高性能、高可靠性的方向发展。VLSI的进一步发展离不开计算机辅助设计。设计VLSI已成为专业工程师和计算机技术人员应具备的日趋重要的技能。VLSI的应用将会越来越广泛,对其设计的要求将会越过电子工程的界限,进入更广泛的技术领域。作为微电子技术专业的毕业生,掌握EDA的设计思路与设计流程是十分必要的,因此,我们专门开设了IC设计流程认知课程设计

2、。其内容是要求同学利用EDA工具软件完成大规模集成电路(如4位MCU或其他电路)设计的整个流程。即由集成电路的前端设计(Verilog 程序设计、功能仿真以及逻辑综合)到版图设计及验证的全过程。本次课设使用EDA工具主要有Verilog-xl、VCS、DC以及SE。 第一章 大规模集成电路设计与实现1.1 VLSI设计流程自顶向下的设计流程: 图1-1VSLI的设计包括系统设计,逻辑设计,电路设计和版图设计。为了保证设计的正确性,对每一个阶段的设计结果都要进行计算机模拟和验证。对于复杂的集成电路设计,常用自顶向下(Top-Down)和自底向上(Bottom-up)的层次化设计方法。 设计中反复

3、出现的基本单元(如反相器,与非门,异或门等)和子电路模块(如触发器,计数器,运算放大器,振荡器),往往把它们的符号,版图及性能固化下来,形成与工艺相应的设计单元库。具体设计流程将在后面结合具体电路进行更详细的介绍。1.2 VLSI设计工具 VLSI设计就目前水平,主要依靠由逻辑设计、电路设计、版图设计和测试码生成等诸多功能组合而成的一套软件设计开发系统来完成,也就是VLSI的EDA工具。其中包括了设计、模拟、故障诊断、综合、制造以及测试等方面,主要分为以下三大类:1 模拟验证工具:帮助设计者验证设计是否正确,包括逻辑模拟、电路模拟、时域模拟,设计规则与电学规则检查,版图与电路图一致性检查,版图

4、参数提取等。2 设计输入和数据库管理工具:帮助设计者输入设计对象,设计要求和管理设计数据,例如硬件描述与编译,逻辑图与版图的输入编辑等。3 综合设计工具:帮助设计者完成各级的设计,例如系统综合,逻辑综合,版图布局布线模块自动生成等。1.3 VLSI的设计方法1.3.1正向设计与逆向设计 集成电路的层次化设计法可分为系统级、逻辑级、电路级和版图级。正向设计法是指以综合的方法从集成电路的高层次走向低层次,直至完成电路的掩膜版图设计。逆向设计法则恰好与之相反,是以分析的方法从低层次到高层次,对实际芯片进行腐蚀,照相,从得到的版图对其进行逻辑提取,分析其功能和原理,以期获得原设计思想。逆向设计是以逆向

5、剖析为基础,在剖析得到的不同层次上转入正向设计。换而言之,对于一个实际芯片作了逆向剖析之后,得到逻辑图、功能和工作原理,然后即可决定采用例如阵列技术转入正向设计,用CAD工具进行逻辑图的描述输入、模拟、测试码生成与设计,生成网表后转入门阵列的自动化版图设计,在生成掩膜版图后进行电学规则、几何规则检查以及电路和版图的一致性检查,并进行版图参数提取。随后再进行后模拟,这样就完成了一个完整的逆向设计。1.3.2非定制与定制的设计方法非定制是对于那些具有标准功能的电路的,例如与非门、异或门、与或非门、触发器、加法器、计数器、存储器等,用户不必事先向厂家定做,设计与生产者也不是针对某些用户具体要求而设计

6、和制造。这类电路是标准化了的,产量大用途广,性价比高,主要是人工设计或人机交互式设计。定制设计指用户以某种特定应用为主向生产厂家定做,设计人员专门为其进行设计。现今VLSI允许在一块芯片上集成一个系统或子系统,日益倾向于以某种特定应用为主的专门集成电路,例如信号处理器,控制器,专用的编码译码器等。用户不必像过去那样用分立的集成块或分立期间进行试验或设计,而是希望把需要的电路系统完整的集成在一块芯片上。用户需向厂家定制这种电路。定制设计又分为全定制设计和半定制设计两种,全定制版图设计适合于生产批量大、电路结构的重复性强、数字与模拟兼容以及有特殊要求的电路。这种设计方法一般是利用人机交互图形系统,

7、由设计人员人工完成各个器件及互连线的版图设计、输入和编辑,实现电路版图到版图的转换。全定制设计方法的特点在于充分利用设计者的经验与创造性,尽可能对每个器件的电路参数与版图参数进行优化,力求达到优良的技术指标。这种电路具有最佳的性能(例如速度和功耗等),芯片面积也能做到最小,但是设计周期较长,成本高,设计效率较低。半定制设计是硅微电子系统的主要设计技术,主要包括门阵列设计技术、标准单元设计技术、以及PLD/FPGA设计技术等几种设计方法。其特点是预先设计并加工好一些基本单元电路供用户选用,按照用户提出的具体定制要求实现单元之间的布局布线,以实现某种功能要求。也就是说,一部分基本的设计和生产工作在

8、用户定做之前已预先完成,余下的部分工作按用户的要求来定做。此种方法的设计周期短、成本较低,电学性能良好。本设计将采用半定制设计中的标准单元法和全定制设计相结合的设计方法进行设计。第二章 四位MCU的verilog语言实现设计人员用硬件描述语言描绘出硬件的结构和硬件的行为,再结合半导体器件的工艺要求进行仿真、综合,最后生成付诸生产的电路描述或版图参数描述的工艺文件。本文以4bitMCU中的ALU为例说明设计全过程。2.1四位MCU各模块功能简述 本设计中的MCU为一功能比较简单的微处理器,其操作数字长4bit。该处理器主要有数据部分与控制部分组成,其中主要包括:(1) 计数器PC,该计数器产生指

9、令地址码控制指令存储器(opmem)输出相应的8位指令代码。(2) 指令存储器opmem,该存储器输入为PC计数器产生的指令地址,经过寻址将输出相应地址对应的指令代码(3) 指令寄存器opreg,寄存器由时钟信号与ir信号共同控制对由指令存储器输出的指令代码进行缓存。(4) 控制器controler,它以当前指令、时钟、运算结果、外部电路的控制信号为输入,产生相应的控制码,向数据通道各部件、存储器、以及其他外围单元发出控制信号,控制数据在寄存器、存储器内的读/写操作,I/O部件进行数据交换,控制ALU进行指定的运算。该控制器实际为一译码电路将当前执行的指令代码、MCU其他部件的状态信号经译码产

10、生控制码,送到数据部分和MCU其他部件,使其产生相应动作。(5) 算术逻辑单元ALU,对操作数进行算术运算和逻辑运算,产生运算结果和进位等标志。(6) 内部存储器RAM,该随机存储器采用4x4结构,由16个触发器组成,在存储器当中存储了ALU单元所需要的操作数(7) 输出锁存器,该锁存器由en信号控制产生输出。除此以外,该MCU还包括各种数据选择器、寄存器、缓冲器等部件。其中,ALU、RAM、数据总线、各寄存器构成了数据部分;PC计数器、指令存储器、专用指令寄存器、控制器等构成了控制部分。下面将以运算单元ALU为例作详细介绍。 ALU是整个微处理器系统的核心部件,它主要负责进行各种数学运算以及

11、逻辑运算。在标准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

12、_ALU图2-74 Single_BIT图2-85 TOP图2-96 ALU_tb图2-10第三章 验证与VCS使用 当代码编写完之后,如何确定代码是否正确,代码能不能符合设计要求,能不能完成所需要的功能,这就是验证所要做的工作。验证在设计中有很重要的地位,从设计流程中可以看到,几乎设计工作每前进一步,都要进行验证。 对验证的要求,大多数人认为只要编译通过之后,能实现功能就可以了,其实决不仅仅这么简单,验证的目的应该是尽量多的找到代码中的错误,不管是编写错误还是功能错误,找出的错误越多,验证工作就做的越来越好。既然验证这么重要,如何进行验证呢?对于验证来说,不同等级的验证,它的方法是不一样的。

13、什么是验证的等级,从设计流程图3.1可以看到,验证可以大致分为单独子模块验证、功能模块验证、系统顶级验证。 单独子模块验证:需要做的工作是验证它的功能和逻辑是否符合设计要求 功能模块验证:需要验证这个模块的功能可不可以满足要求,是否会有非法数据或不该有的输出,错误的状态等。 系统顶级验证:更关注于系统整体的行为方式、模块间的联系和通讯、总线信号、数据流路径是否满足设计要求,数据处理或时序正确与否等。 验证需要一个支持的平台,这就是test_bench,在这个测试平台上,有激励信号产生器、被测模块、响应分析和监测器。 激励与控制:输入端口设置,测试向量,测试模式设置。 响应分析器和监测器:可以及

14、时监控输出信号变化,可以判断输出信号是正确、合法、错误、非法等。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记录

15、文件,运行这个可执行的文件,可以进行调试与分析 ,或者查看生成的VCD或VCD记录文件,同时还生成了一些供分析和查看的文件,以便于调试。3.1.3 如何进行仿真和验证仿真测试一个模块的大致步骤如下:(1) 首先需要编写好模块的verilog代码。(2) 搭建test_bench,充分了解被测模块的特性,编写测试向量,输入端口的激励,编写响应分析和监测部分。(3) 运行VCS进行模拟,查看输出或者波形。(4) 若发现错误,分析错误类型和原因,修改代码或者修正测试方法,直到符合测试要求。3.1.4 VCS的运行方式VCS图形化方式有两种模式:interactive模式、post-processin

16、g模式。Interactive的工作模式比较适合一个正在debug的设计,通过查看仿真结果,直接对一个正在调试的设计进行修改,然后rebuild进行调试,而不需要退出VCS环境;而post-process工作模式比较适合已经调试成熟的设计,可以保存和读取VCD波形文件,所以允许多人同时调试同一个设计,在较大规模的设计中很有用处,可以节省仿真时间,因其可以避开重新仿真所花费的时间,只要对已保存的VCD文件进行读取即可。3.2 Alu综合前的编译、仿真步骤与实现 本节通过对ALU两种代码进行综合前的编译、仿真来介绍仿真工具的使用,这里介绍verilog-xl和VCS两种工具的使用3.2.1 无层次

17、化设计仿真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

18、 ( test = 0; test = 8hfe; 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% verilo

19、g -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);/ FO

20、R VCSinitialbegin ifdef vcd $display(nVCD+ onn); $vcdpluson; endifend/FOR Simulationinitialbegin for ( test = 0; test = 8hfe; 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 .

21、/codes/ALU.v图3-43)Start Up/postprocessing modeserver% vcs f runme.f PP R +vcsd +define +vcd-PP编译-时间选项指示VCS以最合适的后处理常规建立连接。+vcsd编译-时间选项使能VCS和VirSim之间的直接内核界面。+define+vcd开关参数使能加法器源代码中的$display和$vcdpluson行在编译过程中被执行。server% vcs -f runme.f RPP 在后处理模式中激活VirSim。/interactive modeserver% vcs -f runme.f -Mupdat

22、e RI当你使用-Mupdate选项进行编译时,一个叫做/csrc的目录就被创建了。VCS将编译中间文件保存在这个目录中。当你使用同样的编译时间选项设置再次编译时,仅编译修改过的文件。使用-Mupdate选项可以使你获得一些额外的好处。你将可以使用VirSim环境进行再次编译和再次仿真;但是,如果使能这个选项,你必须使用-RI编译时间选项。如果你使用-I和-Mupdate选项进行第一次编译,你可以使用-RIG选项激活VirSim。你会发现你不能在VirSim中进行再次编译。逐步编译目录和文件被修护了,但是你将需要退出VirSim并在UNIX shell下进行再次仿真。4) Next Steps

23、/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 AL

24、U_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 = 12hffe; test = test+1) begin CO = test0; S2:0 = test3:1; OPERAND_A = test7:4; OPERAND_B = test11:8; #50; end $finish;end/ FOR XLinitialbegin

25、 $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 & Prec

26、isiontimescale 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

27、$display (nVCD+ dumping is turned onn); $vcdpluson; endifend/FOR Simulationinitialbegin for ( test = 0; test = 12hffe; 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/

28、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 +vcd-PP编译-时间选项指示VCS以最合适的后处理常规建立连接。+vcsd编译-时间选项使能VCS和VirSim之间的直接内核界面。+define+vcd开关参数使能加法器源代码中的$display和$vcdpluson行在编译过程中被执行。server% vcs -f

29、runme.f RPP 在后处理模式中激活VirSim。/interactive modeserver% vcs -f runme.f -Mupdate RI当你使用-Mupdate选项进行编译时,一个叫做/csrc的目录就被创建了。VCS将编译中间文件保存在这个目录中。当你使用同样的编译时间选项设置再次编译时,仅编译修改过的文件。使用-Mupdate选项可以使你获得一些额外的好处。你将可以使用VirSim环境进行再次编译和再次仿真;但是,如果使能这个选项,你必须使用-RI编译时间选项。如果你使用-I和-Mupdate选项进行第一次编译,你可以使用-RIG选项激活VirSim。你会发现你不能在

30、VirSim中进行再次编译。逐步编译目录和文件被修护了,但是你将需要退出VirSim并在UNIX shell下进行再次仿真。4) Next StepsHierarchy点击主窗口中的hierarchy按钮打开hierarchy窗口,在这个窗口中系统会用不同的颜色来表示设计的层次结构,可以表示出来的有:模块、任务、函数、有名块、信号、寄存器、线网、输入输出等。这个窗口可以认为是一个查看器(brower),用户可以用鼠标把需要查看的对象拖动到其他相应的窗口中图3-13logic窗口打开logic窗口,把信号,或者模块用中键从hierarchy窗口拖到logic窗口中,就可以看的电路的拓扑结构,可以顺着信号线查看他的连接,当模块结构比较复杂的时候,这种方法很方便就可以检查到是否有连接错误,如:Logic_ALU_tb图3-14Register窗口打开register窗口,在hierachy中选择几个信号或者寄存器,用中键拖到这个窗口中,上面有个红色的按钮,按此按钮,可以让模拟执行到选定的这些信号中的任意一个发生变化,并且会红色高亮显示出来。在这个窗口中,还可以自己画一些辅助图形,比如把信号编组然后放在一起,用矩形括起来,并加上一个标签,这在当模块复杂,需要监视的信号很多的情况下是很方便的。这些辅助也可以被存储下来,下一次模拟的

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1