数字集成电路设计入门--从HDL到版图于敦山北大微电子学系.ppt
《数字集成电路设计入门--从HDL到版图于敦山北大微电子学系.ppt》由会员分享,可在线阅读,更多相关《数字集成电路设计入门--从HDL到版图于敦山北大微电子学系.ppt(88页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、数字集成电路设计入门-从HDL到版图于敦山北大微电子学系 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望课程内容(一)介绍Verilog HDL,内容包括:Verilog应用Verilog语言的构成元素结构级描述及仿真行为级描述及仿真延时的特点及说明介绍Verilog testbench激励和控制和描述结果的产生及验证任务task及函数function用户定义的基本单元(primitive)可综合的Verilog描述风格课程内容(二)介绍Cadence Veril
2、og仿真器,内容包括:设计的编译及仿真源库(source libraries)的使用用Verilog-XL命令行界面进行调试用NC Verilog Tcl界面进行调试图形用户界面(GUI)调试延时的计算及反标注(annotation)性能仿真描述如何使用NC Verilog仿真器进行编译及仿真如何将设计环境传送给NC Verilog周期(cycle)仿真课程内容(三)逻辑综合的介绍逻辑综合的介绍 简介简介 设计对象设计对象 静态时序分析静态时序分析(STA)design analyzer环境环境 可综合的可综合的HDL编码风格编码风格可综合的可综合的Verilog HDLVerilog HDL
3、中的一些窍门中的一些窍门 Designware库库 综合划分综合划分 实验实验(1)课程内容(四)设计约束(Constraint)设置设计环境 设置设计约束 设计优化 设计编译 FSM的优化 产生并分析报告 实验(2)课程内容(五)自动布局布线工具(Silicon Ensemble)简介课程安排共54学时 (18)讲课,27学时Verilog (5)Synthesis (3)Place&Route (1)实验,24学时Verilog (5)Synthesis (2)Place&Route (1)考试,3学时参考书目Cadence Verilog Language and SimulationV
4、erilog-XL Simulation with SynthesisEnvisia Ambit Synthesis硬件描述语言Verilog 清华大学出版社,Thomas&Moorby,刘明业等译,2001.8第二章 Verilog 应用学习内容使用HDL设计的先进性Verilog的主要用途Verilog的历史如何从抽象级(levels of abstraction)理解电路设计Verilog描述术语定义(terms and definitions)硬件描述语言硬件描述语言HDL:描述电路硬件及时序的一种编程语言仿真器仿真器:读入HDL并进行解释及执行的一种软件抽象级抽象级:描述风格的详细程
5、度,如行为级和门级ASIC:专用集成电路(Application Specific Integrated Circuit)ASIC Vender:芯片制造商,开发并提供单元库自下而上的设计流程自下而上的设计流程:一种先构建底层单元,然后由底层单元构造更大的系统的设计方法。自顶向下的设计流程自顶向下的设计流程:一种设计方法,先用高抽象级构造系统,然后再设计下层单元RTL级级:寄存器传输级(Register Transfer Level),用于设计的可综合的一种抽象级Tcl:Tool command Language,向交互程序输入命令的描述语言什么是硬件描述语言什么是硬件描述语言HDL具有特殊结
6、构能够对硬件逻辑电路的功能进行描述的具有特殊结构能够对硬件逻辑电路的功能进行描述的一种高级编程语言一种高级编程语言这种特殊结构能够:这种特殊结构能够:描述电路的连接描述电路的连接描述电路的功能描述电路的功能在不同抽象级上描述电路在不同抽象级上描述电路描述电路的时序描述电路的时序表达具有并行性表达具有并行性HDL主要有两种:主要有两种:Verilog和和VHDLVerilog起源于起源于C语言,因此非常类似于语言,因此非常类似于C语言,容易掌握语言,容易掌握VHDL起源于起源于ADA语言,格式严谨,不易学习。语言,格式严谨,不易学习。VHDL出现较晚,但标准化早。出现较晚,但标准化早。IEEE
7、1706-1985标准。标准。为什么使用为什么使用HDL使用使用HDL描述设计具有下列优点:描述设计具有下列优点:设计在高层次进行,与具体实现无关设计在高层次进行,与具体实现无关设计开发更加容易设计开发更加容易早在设计期间就能发现问题早在设计期间就能发现问题能够自动的将高级描述映射到具体工艺实现能够自动的将高级描述映射到具体工艺实现在具体实现时才做出某些决定在具体实现时才做出某些决定HDL具有更大的灵活性具有更大的灵活性可重用可重用可以选择工具及生产厂可以选择工具及生产厂HDL能够利用先进的软件能够利用先进的软件更快的输入更快的输入易于管理易于管理Verilog的历史的历史Verilog HD
8、L是在是在1983年由年由GDA(GateWay Design Automation)公司的公司的Phil Moorby所创。所创。Phi MoorbyPhi Moorby后来成为后来成为Verilog-XLVerilog-XL的主要设计者和的主要设计者和CadenceCadence公司的第一个合伙人。公司的第一个合伙人。在在1984198519841985年间,年间,MoorbyMoorby设计出了第一个设计出了第一个Verilog-XLVerilog-XL的仿真器。的仿真器。19861986年,年,MoorbyMoorby提出了用于快速门级仿真的提出了用于快速门级仿真的XLXL算法。算法。
9、19901990年,年,CadenceCadence公司收购了公司收购了GDAGDA公司公司19911991年,年,CadenceCadence公司公开发表公司公开发表VerilogVerilog语言,成立了语言,成立了OVI(Open OVI(Open Verilog International)Verilog International)组织来负责组织来负责Verilog HDLVerilog HDL语言的发展。语言的发展。19951995年制定了年制定了Verilog HDLVerilog HDL的的IEEEIEEE标准,即标准,即IEEE1364IEEE1364。Verilog的用途的
10、用途Verilog的主要应用包括:的主要应用包括:ASICASIC和和FPGAFPGA工程师编写可综合的工程师编写可综合的RTLRTL代码代码高抽象级系统仿真进行系统结构开发高抽象级系统仿真进行系统结构开发测试工程师用于编写各种层次的测试程序测试工程师用于编写各种层次的测试程序用于用于ASICASIC和和FPGAFPGA单元或更高层次的模块的模型开发单元或更高层次的模块的模型开发抽象级抽象级(Levels of Abstraction)VerilogVerilog既是一种行为描述的语言也是一种结构描述语既是一种行为描述的语言也是一种结构描述语言。言。VerilogVerilog模型可以是实际电
11、路的不同级别的抽象。模型可以是实际电路的不同级别的抽象。这些抽象的级别包括:这些抽象的级别包括:系统说明系统说明-设计文档设计文档/算法描述算法描述RTL/功能级功能级-Verilog门级门级/结构级结构级-Verilog版图版图/物理级物理级-几何图形几何图形行为综合行为综合综合前仿真综合前仿真逻辑综合逻辑综合综合后仿真综合后仿真版图版图抽象级抽象级(Levels of Abstraction)在抽象级上需要进行折衷在抽象级上需要进行折衷系统说明系统说明-设计文档设计文档/算术描算术描述述RTL/功能级功能级-Verilog门级门级/结构级结构级-Verilog版图版图/物理级物理级-几何图
12、形几何图形详细程度详细程度 低低 高高输入输入/仿真速度仿真速度 高高 低低抽象级抽象级(Levels of Abstraction)VerilogVerilog可以在三种抽象级上进行描述可以在三种抽象级上进行描述行为级行为级 用功能块之间的数据流对系统进行描述用功能块之间的数据流对系统进行描述 在需要时在函数块之间进行调度赋值。在需要时在函数块之间进行调度赋值。RTL级级/功能级功能级用功能块内部或功能块之间的数据流和控制信号描述系统用功能块内部或功能块之间的数据流和控制信号描述系统基于一个已定义的时钟的周期来定义系统模型基于一个已定义的时钟的周期来定义系统模型结构级结构级/门级门级用基本单
13、元用基本单元(primitive)或低层元件或低层元件(component)的连接来描述的连接来描述系统以得到更高的精确性,特别是时序方面。系统以得到更高的精确性,特别是时序方面。在综合时用特定工艺和低层元件将在综合时用特定工艺和低层元件将RTL描述映射到门级网表描述映射到门级网表抽象级抽象级(Levels of Abstraction)设计工程师在不同的设计阶段采用不同的抽象级设计工程师在不同的设计阶段采用不同的抽象级首先在行为级描述各功能块,以降低描述难度,提高仿真速度。首先在行为级描述各功能块,以降低描述难度,提高仿真速度。在综合前将各功能模块进行在综合前将各功能模块进行RTL级描述。级
14、描述。用于综合的库中的大多数单元采用结构级描述。在本教程中的结用于综合的库中的大多数单元采用结构级描述。在本教程中的结构级描述部分将对结构级构级描述部分将对结构级(门级门级)描述进行更详细的说明。描述进行更详细的说明。Verilog还有一定的晶体管级描述能力及算法级描述能力还有一定的晶体管级描述能力及算法级描述能力行为级和行为级和RTL级级MUX的行为可以描述为:只要信号的行为可以描述为:只要信号a或或b或或sel发生变化,如果发生变化,如果sel为为0则选择则选择a输出;否则选择输出;否则选择b输出。输出。module muxtwo(out,a,b,sel);input a,b,sel;ou
15、tput out;reg out;always(sel or a or b)if(!sel)out=a;else out=b;endmodule这个行为级这个行为级RTL描述不处理描述不处理X和和Z状态输入,并且没有延时。状态输入,并且没有延时。在行为级模型中,逻辑功能描述采用高级语言结构,如在行为级模型中,逻辑功能描述采用高级语言结构,如,while,wait,if,case。Testbench(test fixture)通常采用行为级描述。所有行为级结构在通常采用行为级描述。所有行为级结构在testbench描描述中都可以采用。述中都可以采用。RTL模型中数据流都是基于时钟的。任何时钟元件
16、在时钟沿处的行为都要精模型中数据流都是基于时钟的。任何时钟元件在时钟沿处的行为都要精确描述。确描述。RTL级描述是行为级级描述是行为级Verilog的子集。的子集。结构级描述结构级描述结构级结构级Verilog适合开发小规模元件,如适合开发小规模元件,如ASIC和和FPGA的单元的单元Verilog内部带有描述基本逻辑功能的基本单元内部带有描述基本逻辑功能的基本单元(primitive),如,如and门。门。用户可以定义自己的基本单元用户可以定义自己的基本单元UDP(User Defined Privitives)综合产生的结果网表通常是结构级的。用户可以用结构级描述粘接综合产生的结果网表通常
17、是结构级的。用户可以用结构级描述粘接(glue)逻辑。逻辑。下面是下面是MUX的结构级描述,采用的结构级描述,采用Verilog基本单元基本单元(门门)描述。描述描述。描述中含有传输延时。中含有传输延时。module twomux(out,a,b,sl);input a,b,sl;output out;not u1(nsl,sl);and#1 u2(sela,a,nsl);and#1 u3(selb,b,sl);or#2 u4(out,sela,selb);endmodule综合不综合不支持支持!仅需一种语言仅需一种语言Verilog的一个主要特点是可应用于各种抽象级。建模时可采用门的一个主要
18、特点是可应用于各种抽象级。建模时可采用门级和级和RTL级混合描述,在开发级混合描述,在开发testfixture时可以采用行为级描述。时可以采用行为级描述。复习复习什么是什么是Verilog?Verilog是公开的吗是公开的吗?设计时什么时候采用设计时什么时候采用Verilog RTL级描述级描述?Verilog适合做什么样的设计适合做什么样的设计?解答:解答:Verilog是用于硬件描述的具有时间概念的并行编程语言是用于硬件描述的具有时间概念的并行编程语言Verilog是一种公开语言,是一种公开语言,由由OVI负责组织,有负责组织,有IEEE1394标准标准RTL描述用于综合,或用于必须精确
19、到每个时钟周期的模型的建模。描述用于综合,或用于必须精确到每个时钟周期的模型的建模。Verilog适用于各种抽象级模型的开发及验证适用于各种抽象级模型的开发及验证第三章第三章 Cadence仿真器仿真器学习内容学习内容逻辑仿真算法逻辑仿真算法如何启动如何启动Verilog-XL和和NC Verilog仿真器仿真器如何显示波形如何显示波形仿真算法仿真算法主要有三种仿真算法主要有三种仿真算法基于时间的基于时间的(SPICE仿真器仿真器)基于事件的基于事件的(Verilog-XL和和NC Verilog仿真器仿真器)基于周期的基于周期的(cycle)仿真算法仿真算法基于时间的算法用于处理连续的时间及
20、变量基于时间的算法用于处理连续的时间及变量在每一个时间点对所有电路元件进行计算在每一个时间点对所有电路元件进行计算效率低。在一个时间点只有约效率低。在一个时间点只有约210%的电路活动的电路活动基于事件的算法处理离散的时间、状态和变量基于事件的算法处理离散的时间、状态和变量只有电路状态发生变化时才进行处理,只模拟哪些可能引起只有电路状态发生变化时才进行处理,只模拟哪些可能引起电路状态改变的元件。仿真器响应输入引脚上的事件,并将电路状态改变的元件。仿真器响应输入引脚上的事件,并将值在电路中向前传播。值在电路中向前传播。是应用最为广泛的仿真算法是应用最为广泛的仿真算法效率高。效率高。“evalua
21、te when necessary”基于周期的仿真以时钟周期为处理单位基于周期的仿真以时钟周期为处理单位(与时间无关与时间无关)只在时钟边沿进行计算,不管时钟周期内的时序只在时钟边沿进行计算,不管时钟周期内的时序使用两值逻辑使用两值逻辑(1,0)只关心电路功能而不关心时序,对于大型设计,效率高只关心电路功能而不关心时序,对于大型设计,效率高仅适用于同步电路。仅适用于同步电路。基于事件仿真的时轮基于事件仿真的时轮(time wheel)仿真器在编译数据结构时建立一个事件队列。仿真器在编译数据结构时建立一个事件队列。只有当前时间片中所有事件都处理完成后,时间才能向前。只有当前时间片中所有事件都处理
22、完成后,时间才能向前。仿真从时间仿真从时间0开始,而且时轮只能向前推进。只有时间开始,而且时轮只能向前推进。只有时间0的事件处的事件处理完后才能进入下一时片。理完后才能进入下一时片。在同一个时间片内发生的事件在硬件上是并行的在同一个时间片内发生的事件在硬件上是并行的理论上时间片可以无限。但实际上受硬件及软件的限制。理论上时间片可以无限。但实际上受硬件及软件的限制。一个时间片的事件一个时间片的事件可引起新的事件,可引起新的事件,在当前时片或以后在当前时片或以后时间片timesliceCadence Verilog仿真器仿真器Verilog-XL和和NC Verilog仿真器都是基于事件算法的仿真
23、器都是基于事件算法的仿真器。仿真器读入仿真器。仿真器读入Verilog HDL描述并进行仿真以反描述并进行仿真以反映实际硬件的行为。映实际硬件的行为。Verilog-XL和和NC Verilog仿真器遵循仿真器遵循IEEE 1364 Verilog规范制定的基于事件的调度语义规范制定的基于事件的调度语义仿真器可用于仿真器可用于确定想法的可行性确定想法的可行性用不同的方法解决设计问题用不同的方法解决设计问题功能验证功能验证确定设计错误确定设计错误仿真过程仿真过程Verilog仿真分下列步骤:仿真分下列步骤:编译编译读入设计描述,处理编译指导读入设计描述,处理编译指导(compiler direc
24、tive),建立,建立一个数据结构定义设计的层次结构一个数据结构定义设计的层次结构这一步有时分为两步:这一步有时分为两步:compilation,elaboration初始化初始化参数初始化;没有驱动的参数初始化;没有驱动的Net缺省值为缺省值为Z;其它节点初始值;其它节点初始值为为X。这些值延着设计层次传播。这些值延着设计层次传播。仿真仿真刚开始时间为刚开始时间为0时,仿真器将时,仿真器将initial和和always中的语句执中的语句执行一次,遇到有时序控制时停止。这些赋值可产生在时间行一次,遇到有时序控制时停止。这些赋值可产生在时间0或其后时间的事件。或其后时间的事件。随着时间推进,被调
25、度事件的执行引起更多的调度事件,随着时间推进,被调度事件的执行引起更多的调度事件,直至仿真结束。直至仿真结束。Versus 交互式编译仿真器交互式编译仿真器Verilog-XL是一个交互式仿真器,过程如下:是一个交互式仿真器,过程如下:1.读入读入Verilog描述,进行语义语法检查,处理编译指导描述,进行语义语法检查,处理编译指导(compiler directive)2.在内存中将设计编译为中间格式,将所有模块和实例组装成在内存中将设计编译为中间格式,将所有模块和实例组装成层次结构层次结构(设计数据结构设计数据结构)。源代码中的每个元件都被重新表。源代码中的每个元件都被重新表示并能在产生的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字集成电路 设计 入门 HDL 版图 北大 微电子 学系
限制150内