资源预览内容
第1页 / 共88页
第2页 / 共88页
第3页 / 共88页
第4页 / 共88页
第5页 / 共88页
第6页 / 共88页
第7页 / 共88页
第8页 / 共88页
第9页 / 共88页
第10页 / 共88页
亲,该文档总共88页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
数字集成电路设计入门 -从HDL到版图于敦山北大微电子学系,课程内容(一),介绍Verilog HDL, 内容包括: Verilog应用 Verilog语言的构成元素 结构级描述及仿真 行为级描述及仿真 延时的特点及说明 介绍Verilog testbench 激励和控制和描述 结果的产生及验证 任务task及函数function 用户定义的基本单元(primitive) 可综合的Verilog描述风格,课程内容(二),介绍Cadence Verilog仿真器, 内容包括: 设计的编译及仿真 源库(source libraries)的使用 用Verilog-XL命令行界面进行调试 用NC Verilog Tcl界面进行调试 图形用户界面(GUI)调试 延时的计算及反标注(annotation) 性能仿真描述 如何使用NC Verilog仿真器进行编译及仿真 如何将设计环境传送给NC Verilog 周期(cycle)仿真,课程内容(三),逻辑综合的介绍简介设计对象静态时序分析 (STA)design analyzer环境可综合的HDL编码风格 可综合的Verilog HDL Verilog HDL中的一些窍门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 Simulation Verilog-XL Simulation with Synthesis Envisia Ambit Synthesis 硬件描述语言Verilog 清华大学出版社,Thomas &Moorby,刘明业等译,2001.8,第二章 Verilog 应用,学习内容 使用HDL设计的先进性 Verilog的主要用途 Verilog的历史 如何从抽象级(levels of abstraction)理解 电路设计 Verilog描述,术语定义(terms and definitions),硬件描述语言HDL:描述电路硬件及时序的一种编程语言 仿真器:读入HDL并进行解释及执行的一种软件 抽象级:描述风格的详细程度,如行为级和门级 ASIC:专用集成电路(Application Specific Integrated Circuit) ASIC Vender:芯片制造商,开发并提供单元库 自下而上的设计流程:一种先构建底层单元,然后由底层单元构造更大的系统的设计方法 。 自顶向下的设计流程:一种设计方法,先用高抽象级构造系统,然后再设计下层单元 RTL级:寄存器传输级(Register Transfer Level),用于设计的可综合的一种抽象级 Tcl:Tool command Language, 向交互程序输入命令的描述语言,什么是硬件描述语言HDL,具有特殊结构能够对硬件逻辑电路的功能进行描述的一种高级编程语言 这种特殊结构能够: 描述电路的连接 描述电路的功能 在不同抽象级上描述电路 描述电路的时序 表达具有并行性 HDL主要有两种:Verilog和VHDL Verilog起源于C语言,因此非常类似于C语言,容易掌握 VHDL起源于ADA语言,格式严谨,不易学习。 VHDL出现较晚,但标准化早。IEEE 1706-1985标准。,为什么使用HDL,使用HDL描述设计具有下列优点: 设计在高层次进行,与具体实现无关 设计开发更加容易 早在设计期间就能发现问题 能够自动的将高级描述映射到具体工艺实现 在具体实现时才做出某些决定 HDL具有更大的灵活性 可重用 可以选择工具及生产厂 HDL能够利用先进的软件 更快的输入 易于管理,Verilog的历史,Verilog HDL是在1983年由GDA(GateWay Design Automation)公司的Phil Moorby所创。Phi Moorby后来成为Verilog-XL的主要设计者和Cadence公司的第一个合伙人。在19841985年间,Moorby设计出了第一个Verilog-XL的仿真器。1986年,Moorby提出了用于快速门级仿真的XL算法。1990年,Cadence公司收购了GDA公司1991年,Cadence公司公开发表Verilog语言,成立了OVI(Open Verilog International)组织来负责Verilog HDL语言的发展。1995年制定了Verilog HDL的IEEE标准,即IEEE1364。,Verilog的用途,Verilog的主要应用包括: ASIC和FPGA工程师编写可综合的RTL代码 高抽象级系统仿真进行系统结构开发 测试工程师用于编写各种层次的测试程序 用于ASIC和FPGA单元或更高层次的模块的模型开发,抽象级(Levels of Abstraction),Verilog既是一种行为描述的语言也是一种结构描述语言。Verilog模型可以是实际电路的不同级别的抽象。这些抽象的级别包括:,系统说明 -设计文档/算法描述RTL/功能级 -Verilog门级/结构级 -Verilog版图/物理级 -几何图形,行为综合综合前仿真逻辑综合综合后仿真版图,抽象级(Levels of Abstraction),在抽象级上需要进行折衷,系统说明 -设计文档/算术描述RTL/功能级 -Verilog门级/结构级 -Verilog版图/物理级 -几何图形,详细程度 低高,输入/仿真速度 高低,抽象级(Levels of Abstraction),Verilog可以在三种抽象级上进行描述,行为级用功能块之间的数据流对系统进行描述在需要时在函数块之间进行调度赋值。RTL级/功能级 用功能块内部或功能块之间的数据流和控制信号描述系统 基于一个已定义的时钟的周期来定义系统模型结构级/门级 用基本单元(primitive)或低层元件(component)的连接来描述系统以得到更高的精确性,特别是时序方面。 在综合时用特定工艺和低层元件将RTL描述映射到门级网表,抽象级(Levels of Abstraction),设计工程师在不同的设计阶段采用不同的抽象级 首先在行为级描述各功能块,以降低描述难度,提高仿真速度。 在综合前将各功能模块进行RTL级描述。 用于综合的库中的大多数单元采用结构级描述。在本教程中的结构级描述部分将对结构级(门级)描述进行更详细的说明。Verilog还有一定的晶体管级描述能力及算法级描述能力,行为级和RTL级,MUX的行为可以描述为:只要信号a或b或sel发生变化,如果sel为0则选择a输出;否则选择b输出。,module muxtwo (out, a, b, sel);input a, b, sel;output 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模型中数据流都是基于时钟的。任何时钟元件在时钟沿处的行为都要精确描述。RTL级描述是行为级Verilog的子集。,结构级描述,结构级Verilog适合开发小规模元件,如ASIC和FPGA的单元 Verilog内部带有描述基本逻辑功能的基本单元(primitive),如and门。 用户可以定义自己的基本单元UDP(User Defined Privitives) 综合产生的结果网表通常是结构级的。用户可以用结构级描述粘接(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的一个主要特点是可应用于各种抽象级。建模时可采用门级和RTL级混合描述,在开发testfixture时可以采用行为级描述。,复习,什么是Verilog ? Verilog是公开的吗? 设计时什么时候采用Verilog RTL级描述? Verilog适合做什么样的设计?,解答: Verilog是用于硬件描述的具有时间概念的并行编程语言 Verilog是一种公开语言, 由OVI负责组织,有IEEE1394标准 RTL描述用于综合,或用于必须精确到每个时钟周期的模型的建模。 Verilog适用于各种抽象级模型的开发及验证,第三章 Cadence仿真器,学习内容 逻辑仿真算法 如何启动Verilog-XL和NC Verilog仿真器 如何显示波形,仿真算法,主要有三种仿真算法 基于时间的(SPICE仿真器) 基于事件的(Verilog-XL和NC Verilog仿真器) 基于周期的(cycle),仿真算法,基于时间的算法用于处理连续的时间及变量 在每一个时间点对所有电路元件进行计算 效率低。在一个时间点只有约210%的电路活动 基于事件的算法处理离散的时间、状态和变量 只有电路状态发生变化时才进行处理,只模拟那些可能引起电路状态改变的元件。仿真器响应输入引脚上的事件,并将值在电路中向前传播。 是应用最为广泛的仿真算法 效率高。“evaluate when necessary” 基于周期的仿真以时钟周期为处理单位(与时间无关) 只在时钟边沿进行计算,不管时钟周期内的时序 使用两值逻辑 (1, 0) 只关心电路功能而不关心时序,对于大型设计,效率高 仅适用于同步电路。,基于事件仿真的时轮(time wheel),仿真器在编译数据结构时建立一个事件队列。 只有当前时间片中所有事件都处理完成后,时间才能向前。 仿真从时间0开始,而且时轮只能向前推进。只有时间0的事件处理完后才能进入下一时片。 在同一个时间片内发生的事件在硬件上是并行的 理论上时间片可以无限。但实际上受硬件及软件的限制。,一个时间片的事件可引起新的事件,在当前时片或以后,时间片 timeslice,Cadence Verilog仿真器,Verilog-XL和NC Verilog仿真器都是基于事件算法的仿真器。仿真器读入Verilog HDL描述并进行仿真以反映实际硬件的行为。Verilog-XL和NC Verilog仿真器遵循IEEE 1364 Verilog规范制定的基于事件的调度语义仿真器可用于 确定想法的可行性 用不同的方法解决设计问题 功能验证 确定设计错误,仿真过程,Verilog仿真分下列步骤: 编译 读入设计描述,处理编译指导(compiler directive),建立一个数据结构定义设计的层次结构 这一步有时分为两步:compilation,elaboration 初始化 参数初始化;没有驱动的Net缺省值为Z;其它节点初始值为X。这些值延着设计层次传播。 仿真 刚开始时间为0时,仿真器将initial和always中的语句执行一次,遇到有时序控制时停止。这些赋值可产生在时间0或其后时间的事件。 随着时间推进,被调度事件的执行引起更多的调度事件,直至仿真结束。,
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号