verilog语言学习1-5章.ppt

上传人:豆**** 文档编号:24774104 上传时间:2022-07-07 格式:PPT 页数:89 大小:962.50KB
返回 下载 相关 举报
verilog语言学习1-5章.ppt_第1页
第1页 / 共89页
verilog语言学习1-5章.ppt_第2页
第2页 / 共89页
点击查看更多>>
资源描述

《verilog语言学习1-5章.ppt》由会员分享,可在线阅读,更多相关《verilog语言学习1-5章.ppt(89页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、课程内容(一) 介绍Verilog HDL, 内容包括: Verilog应用 Verilog语言的构成元素 结构级描述及仿真 行为级描述及仿真 延时的特点及说明 介绍Verilog testbench 激励和控制和描述 结果的产生及验证 任务task及函数function 用户定义的基本单元(primitive) 可综合的Verilog描述风格课程内容(二) 介绍Cadence Verilog仿真器, 内容包括: 设计的编译及仿真 源库(source libraries)的使用 用Verilog-XL命令行界面进行调试 用NC Verilog Tcl界面进行调试 图形用户界面(GUI)调试 延

2、时的计算及反标注(annotation) 性能仿真描述 如何使用NC Verilog仿真器进行编译及仿真 如何将设计环境传送给NC Verilog 周期(cycle)仿真课程内容(三) 逻辑综合的介绍逻辑综合的介绍 简介简介 设计对象设计对象 静态时序分析静态时序分析 (STA) design analyzer环境环境 可综合的可综合的HDL编码风格编码风格 可综合的可综合的Verilog HDL Verilog HDL中的一些窍门中的一些窍门 Designware库库 综合划分综合划分 实验实验 (1)课程内容(四) 设计约束( Constraint) 设置设计环境 设置设计约束 设计优化

3、设计编译 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 硬件描述语言Ve

4、rilog 清华大学出版社,Thomas &Moorby,刘明业等译,2001.8第二章 Verilog 应用 学习内容 使用HDL设计的先进性 Verilog的主要用途 Verilog的历史 如何从抽象级(levels of abstraction)理解 电路设计 Verilog描述术语定义(terms and definitions)硬件描述语言硬件描述语言HDL:描述电路硬件及时序的一种编程语言仿真器仿真器:读入HDL并进行解释及执行的一种软件抽象级抽象级:描述风格的详细程度,如行为级和门级ASIC:专用集成电路(Application Specific Integrated Circu

5、it)ASIC Vender:芯片制造商,开发并提供单元库自下而上的设计流程自下而上的设计流程:一种先构建底层单元,然后由底层单元构造更大的系统的设计方法 。自顶向下的设计流程自顶向下的设计流程:一种设计方法,先用高抽象级构造系统,然后再设计下层单元RTL级级:寄存器传输级(Register Transfer Level),用于设计的可综合的一种抽象级Tcl:Tool command Language, 向交互程序输入命令的描述语言什么是硬件描述语言什么是硬件描述语言HDL 具有特殊结构能够对硬件逻辑电路的功能进行描述的具有特殊结构能够对硬件逻辑电路的功能进行描述的一种高级编程语言一种高级编程

6、语言 这种特殊结构能够:这种特殊结构能够: 描述电路的连接描述电路的连接 描述电路的功能描述电路的功能 在不同抽象级上描述电路在不同抽象级上描述电路 描述电路的时序描述电路的时序 表达具有并行性表达具有并行性 HDL主要有两种:主要有两种:Verilog和和VHDL Verilog起源于起源于C语言,因此非常类似于语言,因此非常类似于C语言,容易掌握语言,容易掌握 VHDL起源于起源于ADA语言,格式严谨,不易学习。语言,格式严谨,不易学习。 VHDL出现较晚,但标准化早。出现较晚,但标准化早。IEEE 1706-1985标准。标准。为什么使用为什么使用HDL 使用使用HDL描述设计具有下列优

7、点:描述设计具有下列优点: 设计在高层次进行,与具体实现无关设计在高层次进行,与具体实现无关 设计开发更加容易设计开发更加容易 早在设计期间就能发现问题早在设计期间就能发现问题 能够自动的将高级描述映射到具体工艺实现能够自动的将高级描述映射到具体工艺实现 在具体实现时才做出某些决定在具体实现时才做出某些决定 HDL具有更大的灵活性具有更大的灵活性 可重用可重用 可以选择工具及生产厂可以选择工具及生产厂 HDL能够利用先进的软件能够利用先进的软件 更快的输入更快的输入 易于管理易于管理Verilog的历史的历史Verilog HDL是在是在1983年由年由GDA(GateWay Design A

8、utomation)公司的公司的Phil Moorby所创。所创。Phi MoorbyPhi Moorby后来成为后来成为Verilog-XLVerilog-XL的主要设计者和的主要设计者和CadenceCadence公司的第一个合伙人。公司的第一个合伙人。在在1984198519841985年间,年间,MoorbyMoorby设计出了第一个设计出了第一个Verilog-XLVerilog-XL的仿真器。的仿真器。19861986年,年,MoorbyMoorby提出了用于快速门级仿真的提出了用于快速门级仿真的XLXL算法。算法。19901990年,年,CadenceCadence公司收购了公司

9、收购了GDAGDA公司公司19911991年,年,CadenceCadence公司公开发表公司公开发表VerilogVerilog语言,成立了语言,成立了OVI(Open OVI(Open Verilog International)Verilog International)组织来负责组织来负责Verilog HDLVerilog HDL语言的发展。语言的发展。19951995年制定了年制定了Verilog HDLVerilog HDL的的IEEEIEEE标准,即标准,即IEEE1364IEEE1364。Verilog的用途的用途 Verilog的主要应用包括:的主要应用包括: ASICAS

10、IC和和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级级/功能级功能级用功能块内部或功能块之间的数据流和控制信号描述系统用功能块内部或功能块之间的数据流和控制信号描述系统基于一个已定义的时钟的周期来定义系统模型基于一个已定义的时钟的周期来定义系统模型结构级结构级/门级门级用基本单元用基本单元(primitive)或低层元件或低层元

13、件(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; output out; reg

15、 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综合不综合不支持支持!仅需一种语言仅需一种语言Verilo

18、g的一个主要特点是可应用于各种抽象级。建模时可采用门的一个主要特点是可应用于各种抽象级。建模时可采用门级和级和RTL级混合描述,在开发级混合描述,在开发testfixture时可以采用行为级描述。时可以采用行为级描述。复习复习什么是什么是Verilog ?Verilog是公开的吗是公开的吗?设计时什么时候采用设计时什么时候采用Verilog RTL级描述级描述?Verilog适合做什么样的设计适合做什么样的设计?解答:解答:Verilog是用于硬件描述的具有时间概念的并行编程语言是用于硬件描述的具有时间概念的并行编程语言Verilog是一种公开语言,是一种公开语言, 由由OVI负责组织,有负责

19、组织,有IEEE1394标准标准RTL描述用于综合,或用于必须精确到每个时钟周期的模型的建模。描述用于综合,或用于必须精确到每个时钟周期的模型的建模。Verilog适用于各种抽象级模型的开发及验证适用于各种抽象级模型的开发及验证第三章第三章 Cadence仿真器仿真器 学习内容学习内容 逻辑仿真算法逻辑仿真算法 如何启动如何启动Verilog-XL和和NC Verilog仿真器仿真器 如何显示波形如何显示波形仿真算法仿真算法 主要有三种仿真算法主要有三种仿真算法 基于时间的基于时间的(SPICE仿真器仿真器) 基于事件的基于事件的(Verilog-XL和和NC Verilog仿真器仿真器) 基

20、于周期的基于周期的(cycle)仿真算法仿真算法 基于时间的算法用于处理连续的时间及变量基于时间的算法用于处理连续的时间及变量 在每一个时间点对所有电路元件进行计算在每一个时间点对所有电路元件进行计算 效率低。在一个时间点只有约效率低。在一个时间点只有约210%的电路活动的电路活动 基于事件的算法处理离散的时间、状态和变量基于事件的算法处理离散的时间、状态和变量 只有电路状态发生变化时才进行处理,只模拟哪些可能引起只有电路状态发生变化时才进行处理,只模拟哪些可能引起电路状态改变的元件。仿真器响应输入引脚上的事件,并将电路状态改变的元件。仿真器响应输入引脚上的事件,并将值在电路中向前传播。值在电

21、路中向前传播。 是应用最为广泛的仿真算法是应用最为广泛的仿真算法 效率高。效率高。“evaluate when necessary” 基于周期的仿真以时钟周期为处理单位基于周期的仿真以时钟周期为处理单位(与时间无关与时间无关) 只在时钟边沿进行计算,不管时钟周期内的时序只在时钟边沿进行计算,不管时钟周期内的时序 使用两值逻辑使用两值逻辑 (1, 0) 只关心电路功能而不关心时序,对于大型设计,效率高只关心电路功能而不关心时序,对于大型设计,效率高 仅适用于同步电路。仅适用于同步电路。基于事件仿真的时轮基于事件仿真的时轮(time wheel)仿真器在编译数据结构时建立一个事件队列。仿真器在编译

22、数据结构时建立一个事件队列。只有当前时间片中所有事件都处理完成后,时间才能向前。只有当前时间片中所有事件都处理完成后,时间才能向前。仿真从时间仿真从时间0开始,而且时轮只能向前推进。只有时间开始,而且时轮只能向前推进。只有时间0的事件处的事件处理完后才能进入下一时片。理完后才能进入下一时片。在同一个时间片内发生的事件在硬件上是并行的在同一个时间片内发生的事件在硬件上是并行的理论上时间片可以无限。但实际上受硬件及软件的限制。理论上时间片可以无限。但实际上受硬件及软件的限制。一个时间片的事件一个时间片的事件可引起新的事件,可引起新的事件,在当前时片或以后在当前时片或以后时间片timesliceCa

23、dence Verilog仿真器仿真器 Verilog-XL和和NC Verilog仿真器都是基于事件算法的仿真器都是基于事件算法的仿真器。仿真器读入仿真器。仿真器读入Verilog HDL描述并进行仿真以反描述并进行仿真以反映实际硬件的行为。映实际硬件的行为。 Verilog-XL和和NC Verilog仿真器遵循仿真器遵循IEEE 1364 Verilog规范制定的基于事件的调度语义规范制定的基于事件的调度语义 仿真器可用于仿真器可用于 确定想法的可行性确定想法的可行性 用不同的方法解决设计问题用不同的方法解决设计问题 功能验证功能验证 确定设计错误确定设计错误仿真过程仿真过程 Veril

24、og仿真分下列步骤:仿真分下列步骤: 编译编译读入设计描述,处理编译指导读入设计描述,处理编译指导(compiler directive),建立,建立一个数据结构定义设计的层次结构一个数据结构定义设计的层次结构这一步有时分为两步:这一步有时分为两步:compilation,elaboration 初始化初始化参数初始化;没有驱动的参数初始化;没有驱动的Net缺省值为缺省值为Z;其它节点初始值;其它节点初始值为为X。这些值延着设计层次传播。这些值延着设计层次传播。 仿真仿真刚开始时间为刚开始时间为0时,仿真器将时,仿真器将initial和和always中的语句执中的语句执行一次,遇到有时序控制时

25、停止。这些赋值可产生在时间行一次,遇到有时序控制时停止。这些赋值可产生在时间0或其后时间的事件。或其后时间的事件。随着时间推进,被调度事件的执行引起更多的调度事件,随着时间推进,被调度事件的执行引起更多的调度事件,直至仿真结束。直至仿真结束。Versus 交互式编译仿真器交互式编译仿真器Verilog-XL是一个交互式仿真器,过程如下:是一个交互式仿真器,过程如下:读入读入Verilog描述,进行语义语法检查,处理编译指导描述,进行语义语法检查,处理编译指导(compiler directive)在内存中将设计编译为中间格式,将所有模块和实例组装成在内存中将设计编译为中间格式,将所有模块和实例

26、组装成层次结构层次结构(设计数据结构设计数据结构)。源代码中的每个元件都被重新表。源代码中的每个元件都被重新表示并能在产生的数据结构示并能在产生的数据结构 找到。找到。决定仿真的时间精度,在内存中构造一个事件队列的时间数决定仿真的时间精度,在内存中构造一个事件队列的时间数据结构据结构(时轮时轮) 。1.读入、调度并根据事件执行每一个语句读入、调度并根据事件执行每一个语句Verilog-XL采用多种加速算法提高各种抽象级的仿真速度。采用多种加速算法提高各种抽象级的仿真速度。每次重新启动每次重新启动Verilog-XL,将重复上述步骤。,将重复上述步骤。当进入交互模式时,可以输入当进入交互模式时,

27、可以输入Verilog HDL语句并加到设计的数据结构中。语句并加到设计的数据结构中。Versus 交互式编译仿真交互式编译仿真Verilog-XL仿真器是与仿真器是与Verilog HDL同时开发的,因同时开发的,因此它成为此它成为Verilog HDL仿真器的事实上的标准。仿真器的事实上的标准。Verilog-XL采用了多种加速算法,对每种抽象级描述采用了多种加速算法,对每种抽象级描述都能很好的仿真。这些加速算法包括都能很好的仿真。这些加速算法包括Turbo算法,算法,XL算法及算法及Switch-XL算法。在后面的教程中将对这些算算法。在后面的教程中将对这些算法进行更为详尽的介绍。法进行

28、更为详尽的介绍。NC Verilog-全编译仿真全编译仿真NC Verilog是全编译仿真器,它直接将是全编译仿真器,它直接将Verilog代码编代码编译为机器码执行。其过程为:译为机器码执行。其过程为:ncvlog编译编译Verilog源文件,按照编译指导源文件,按照编译指导(compile directive)检查语义及语法,产生中间数据。检查语义及语法,产生中间数据。ncelab按照设计指示构造设计的数据结构,产生可执行代码。按照设计指示构造设计的数据结构,产生可执行代码。除非对优化进行限制,否则源代码中的元件除非对优化进行限制,否则源代码中的元件(element)可能被优可能被优化丢失

29、。产生中间数据。化丢失。产生中间数据。ncsim启动仿真核。核调入设计的数据结构,构造事件序列启动仿真核。核调入设计的数据结构,构造事件序列(时轮),调度并执行事件的机器码。有些事件可能消失(时轮),调度并执行事件的机器码。有些事件可能消失(从不从不执行执行)除非限制优化过程。除非限制优化过程。编译后的所有代码的执行使用同一个核。编译后的所有代码的执行使用同一个核。当重新启动仿真时,要对修改过的模块重新编译。省略这个手工过程的方当重新启动仿真时,要对修改过的模块重新编译。省略这个手工过程的方法是直接对设计进行仿真,这将自动地对修改过的模块进行重新编译。法是直接对设计进行仿真,这将自动地对修改过

30、的模块进行重新编译。当采用交互模式时,可以使用当采用交互模式时,可以使用Tcl命令和针对命令和针对NC Verilog的的Tcl扩展命令。扩展命令。NC Verilog全编译仿真全编译仿真NC Verilog是最近才开发的,但其对描述的仿真与是最近才开发的,但其对描述的仿真与Verilog-XL完全完全相同相同NC Verilog仿真器用同一个核仿真器用同一个核(kernel)对所有抽象级进行混合仿真,对所有抽象级进行混合仿真,也就是说用户可以采用各种不同抽象级混合设计。但在门级仿真的也就是说用户可以采用各种不同抽象级混合设计。但在门级仿真的效率差一些。效率差一些。NC Verilog仿真器对

31、源代码采用增量编译方式,减少了编译时间。仿真器对源代码采用增量编译方式,减少了编译时间。在交互模式下,可以使用在交互模式下,可以使用Tcl命令及其针对命令及其针对NC Verilog的扩展命令的扩展命令来修改设计和控制仿真。这将在后面进行详细描述。来修改设计和控制仿真。这将在后面进行详细描述。对对Verilog语言的支持语言的支持Verilog-XL和和NC Verilog计划支持计划支持Verilog语言全集。用语言全集。用户可依据下列标准进行设计:户可依据下列标准进行设计:-IEEE1364-1995 Verilog语言参考手册语言参考手册-OVI 2.0 Verilog语言参考手册,但不

32、支持:语言参考手册,但不支持:Attributes: Verilog描述中对象的属性。描述中对象的属性。函数中函数中output或或inout变元变元(argument):OVI2.0允许函数中允许函数中output和和inout变元值能够返回。变元值能够返回。启动启动Verilog-XL在命令窗口启动在命令窗口启动Verilog-XL: verilog verilog-xl_options design_files没有没有option启动的例子启动的例子 verilog mux.v test.v使用使用 c选项只对设计进行语法和连接检查选项只对设计进行语法和连接检查 verilog c mu

33、x.v test.v使用使用-f选项指定一个包含命令行参数的文件选项指定一个包含命令行参数的文件 verilog f run.f run.f文件的内容文件的内容Verilog-XL将所有终端输出保存到名为将所有终端输出保存到名为verilog.log的文件的文件mux.vtest.v-c启动启动NC Verilog虽然NC Verilog仿真过程包括三个分立的步骤(ncvlog, ncelab, ncsim),但仿真时不需要三个命令,可以用带有命令行参数的ncverilog命令启动NC Verilog: ncverilog ncverilog_options verilog-xl_argume

34、ntsExamples:ncverilog mux.v test.vncverilog c mux.v test.vncverilog f run.f run.f文件的内容NC Verilog将所有终端输出保存到名为ncverilog.log的文件mux.vtest.v-cNC Verilog有什么不同?有什么不同?除除+gui、-q和和-s这些只影响运行时间的参数外,其它任何命令行这些只影响运行时间的参数外,其它任何命令行参数的改变将使设计重新编译、参数的改变将使设计重新编译、elaborate及仿真。及仿真。如果更新了源文件及仿真时用到的如果更新了源文件及仿真时用到的SDF文件,则与它们相

35、关的文文件,则与它们相关的文件将重新编译,设计也将重新件将重新编译,设计也将重新elaborate和仿真。和仿真。NC Verilog为编译的元件及其它文件建立一个库结构。增量编译依赖于源文件、SDF文件和命令行参数。ncverilog还有其它一些命令行参数,如在调试时有完全的读、写及连接操作,用在调试时有完全的读、写及连接操作,用 +access + argument ncverilog f run.f + access+RWC要得到源文件行操作能力,用要得到源文件行操作能力,用+linedebug ncverilog -f run.f +linedebug强制重编译所有设计单元,使用强制重

36、编译所有设计单元,使用+noupdateNC Verilog有什么不同?有什么不同? 使用+access选项可以设置对所有对象的缺省操作。对象的缺省设置是无操作。用+access+打开操作,+access-关掉操作。args可以是R、W、C的任何组合。使用+linedebug可以打开R、W、C,同时可对源文件行进行操作,如在行上设置一断点。 使用+noupdate强制重编译整个设计。缺省时只重新编译修改过的文件。只有当库可能被破坏时才这样做。 +gui选项启动图形界面;-q选项抑制标识信息;-s选项使仿真器在时间0时停止,进入交互模式。波形显示工具波形显示工具SignalScan signal

37、scan & 或 signalscan 数据库文件名 &波形显示工具波形显示工具SignalScanTitle Bar:显示这是:显示这是SignalScan窗口并以数字编号。若启动几窗口并以数字编号。若启动几个个SignalScan窗口它们将顺序编号。窗口它们将顺序编号。Menu Bar:通过菜单可以执行所有基本命令。:通过菜单可以执行所有基本命令。Tool Bar中的按钮有:中的按钮有:copy, cut, paste, undo, delete, zoom, create marker, expand buses, launch the Design Brower等等等。用户可以自定义。

38、等。用户可以自定义。在命令行输入在命令行输入signalscan启动。启动。SignalScan窗口包括:窗口包括:注:必须用Design Brower在波形窗口中添加信号。Groups Pane列出用户建立的波形组列出用户建立的波形组Waveforms Region显示加入信号的波形显示加入信号的波形Names Pane在波形的左边显示信号名。这些信号名可以拖拽,在波形的左边显示信号名。这些信号名可以拖拽,在在pane中双击右键可以移动插入的中双击右键可以移动插入的markerTime-Display Region显示两个指针的时间值及其时间差显示两个指针的时间值及其时间差SHM:波形数据库

39、:波形数据库波形显示工具从数据库,如波形显示工具从数据库,如SHM数据库中读取数据。使数据库中读取数据。使用下面的系统任务可以对用下面的系统任务可以对SHM数据库进行操作:数据库进行操作:系统任务描述$shm_open(“waves.shm”); 打开一个仿真数据库。同时只能打开一个库写入。$shm_probe();选择信号,当它们的值变化时写入仿真库$shm_close;$shm_save;关闭仿真库将仿真数据库写到磁盘例子:initialbegin $shm_open(“lab.shm”); $shm_probe();endSHM:波形数据库:波形数据库 仿真历史管理器仿真历史管理器(Si

40、mulation History Manager,SHM)数据库记录用户的设计在仿真时数据信号的变化。只记录数据库记录用户的设计在仿真时数据信号的变化。只记录用户要观察用户要观察(probe)的信号。的信号。 用户可以用用户可以用$shm_系统任务打开一个系统任务打开一个SHM数据库,设数据库,设置信号探针并将结果保存到数据库中。这些系统任务的功置信号探针并将结果保存到数据库中。这些系统任务的功能除能除$shm_probe外都非常直观。对外都非常直观。对$shm_probe将在下面将在下面详细讨论。详细讨论。 用户必须在仿真前用户必须在仿真前(时间时间0前前)设置探针信号才能看到设置探针信号才

41、能看到信号在仿真过程中全部变化。信号在仿真过程中全部变化。用用$shm_probe设置信号探针设置信号探针 在$shm_probe中使用scope/node对作为参数。参数可以使用缺省值或两个参数都设置。例如: $shm_probe( ); 观测当前范围(scope)所有端口 $shm_probe(“A”); 观测当前范围所有节点 $shm_probe(alu, adder); 观测实例alu和adder的所有端口 $shm_probe(“S”, top.alu, “AC”); 观测: (1): 当前范围及其以下所有端口,除库单元 (2):top.alu模块及其以下所有节点,包括库单元用用$s

42、hm_probe设置信号探针设置信号探针 $shm_probe的语法: $shm_probe(scope0, node0, scope1, node1, .); 每个node都是基于前面scope的说明(层次化的) scope参数缺省值为当前范围(scope)。node参数缺省值为指定范围的所有输入、输出及输入输出。node说明保存到数据库存的信号“A”“S”“C”“AS”“AC”指定范围的所有节点(包括端口(port)指定范围及其以下所有端口,不包括库单元内部指定范围及其以下所有端口,包括库单元内部指定范围及其以下所有节点(包括端口),不包括库单元内部指定范围及其以下所有节点(包括端口),包

43、括库单元内部相关工具相关工具Affirma NC VHDL仿真器Envisia Ambit综合工具Verilog-XL故障仿真器, 用于评价用户测试向量的有效性SignalScan-TX图形界面调试工具包Affirma equivalence checker完成门级设计之间或门级与RTL级之间的静态功能验证Affirma model checker形式验证工具,将Verilog或VHDL描述与设计说明进行验证Affirma model packager,用户的Verilog, VHDL或C语言可执行模型分发时进行编译及分发许可证Affirma Advanced Analysis Environ

44、ment includes CoverScan, a code profiler, and HAL, a lint checker与Cadence Verilog仿真器相关的工具有:总结总结逻辑仿真运行Verilog-XL和NC Verilog仿真器探测及显示波形本章学习内容复习复习基于事件的仿真器是如何做到并行的?时间t的事件能否调度同一时间t的事件?NC Verilog仿真器不支持IEEE 1364 Verilog LRM的什么元件?通过调度在一个给定的时间片内发生的所有事件来得到通过调度在一个给定的时间片内发生的所有事件来得到并行性。实际上仿真器串行处理给定时间片内的事件,并行性。实际上

45、仿真器串行处理给定时间片内的事件,但理论上它们都是在同一时间片内发生的。但理论上它们都是在同一时间片内发生的。任何时间片的事件能够调度在同一时间片或其以后产生任何时间片的事件能够调度在同一时间片或其以后产生的事件。的事件。NC VerilogNC Verilog希望支持希望支持IEEE 1364 LRMIEEE 1364 LRM规范全集。目前主规范全集。目前主要还不支持实例阵列要还不支持实例阵列(array of instances)(array of instances)。请参见产。请参见产品发布手册。品发布手册。第四章第四章 设计举例设计举例进一步学习Verilog的结构描述和行为描述Ve

46、rilog混合(抽象)级仿真学习目标:学习目标:语言的主要特点语言的主要特点module(模块模块)module能够表示:能够表示:物理块,如物理块,如IC或或ASIC单元单元逻辑块,如一个逻辑块,如一个CPU设计的设计的ALU部分部分整个系统整个系统每一个模块的描述从关键词每一个模块的描述从关键词module开始,有一个开始,有一个名称名称(如(如SN74LS74,DFF,ALU等等),由关键词等等),由关键词endmodule结束。结束。module是层是层次化设计的基次化设计的基本构件本构件逻辑描述放在逻辑描述放在module内部内部语言的主要特点语言的主要特点模块端口(module p

47、orts)端口在模块名字端口在模块名字后的括号中列出后的括号中列出端口可以说明为端口可以说明为input, output及及inout端口等价于硬件端口等价于硬件的引脚的引脚(pin)注意模块的名称DFF,端口列表及说明模块通过端口与外部通信语言的主要特点语言的主要特点模块实例化模块实例化(module instances)module DFF (d, clk, clr, q, qb); .endmodulemodule REG4( d, clk, clr, q, qb); output 3: 0 q, qb; input 3: 0 d; input clk, clr; DFF d0 (d 0

48、, clk, clr, q 0, qb 0); DFF d1 (d 1, clk, clr, q 1, qb 1); DFF d2 (d 2, clk, clr, q 2, qb 2); DFF d3 (d 3, clk, clr, q 3, qb 3);endmodule语言的主要特点语言的主要特点可以将模块的实例通过端口连接起来构成一个大的系可以将模块的实例通过端口连接起来构成一个大的系统或元件。统或元件。在上面的例子中,在上面的例子中,REG4有模块有模块DFF的四个实例。注的四个实例。注意,每个实例都有自己的名字意,每个实例都有自己的名字(d0, d1, d2, d3)。实例。实例名是

49、每个对象唯一的标记,通过这个标记可以查看每名是每个对象唯一的标记,通过这个标记可以查看每个实例的内部。个实例的内部。实例中端口的次序与模块定义的次序相同。实例中端口的次序与模块定义的次序相同。模块实例化与调用程序不同。每个实例都是模块的一模块实例化与调用程序不同。每个实例都是模块的一个完全的拷贝,相互独立、并行。个完全的拷贝,相互独立、并行。模块实例化模块实例化(module instances)一个完整的简单例子一个完整的简单例子 test fixture被测试器件被测试器件DUT是一个二选一多路器。测试装置是一个二选一多路器。测试装置(test fixture)提提供测试激励及验证机制。供

50、测试激励及验证机制。Test fixture使用行为级描述,使用行为级描述,DUT采用门级描述。下面将给出采用门级描述。下面将给出Test fixture的描述、的描述、DUT的描述及如何进行混合仿真。的描述及如何进行混合仿真。DUT 被测器件 (device under test) module MUX2_1 (out, a, b, sel); / Port declarations output out; input a, b, sel; wire out, a, b, sel; wire sel_, a1, b1; / The netlist not (sel_, sel); and (

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁