ImageVerifierCode 换一换
格式:PPT , 页数:59 ,大小:1.15MB ,
文档编号:2848217      下载积分:28 文币
快捷下载
登录下载
邮箱/手机:
温馨提示:
系统将以此处填写的邮箱或者手机号生成账号和密码,方便再次下载。 如填写123,账号和密码都是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

优惠套餐
 

温馨提示:若手机下载失败,请复制以下地址【https://www.163wenku.com/d-2848217.html】到电脑浏览器->登陆(账号密码均为手机号或邮箱;不要扫码登陆)->重新下载(不再收费)。

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

1: 试题类文档的标题没说有答案,则无答案;主观题也可能无答案。PPT的音视频可能无法播放。 请谨慎下单,一旦售出,概不退换。
2: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
3: 本文为用户(晟晟文业)主动上传,所有收益归该用户。163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

1,本文(数字系统设计及VHDL实践专题讲座1-模拟验证与课件.ppt)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!

数字系统设计及VHDL实践专题讲座1-模拟验证与课件.ppt

1、学习目标:学习目标: 主要学习主要学习模拟验证的模型模拟验证的模型和和算法算法问题,包括问题,包括逻辑模拟算法逻辑模拟算法和和VHDL模拟模拟算法算法。要求深入掌握逻辑模拟的概念、模型与算法,掌握。要求深入掌握逻辑模拟的概念、模型与算法,掌握VHDL模拟的基模拟的基本思想,了解本思想,了解VHDL进程模拟算法进程模拟算法与与层次式模拟算法层次式模拟算法。难点重点:难点重点: 1. 模拟验证概念与模拟过程模拟验证概念与模拟过程2. 逻辑模拟模型逻辑模拟模型3. 事件驱动模拟算法事件驱动模拟算法4. VHDL模拟模型模拟模型5. 进程模拟算法进程模拟算法本章主要内容:本章主要内容:一、模拟验证一、

2、模拟验证1.1 模拟验证概述模拟验证概述1.2 逻辑模拟算法逻辑模拟算法1.3 VHDL模拟模拟二、形式验证二、形式验证1.验证的重要性验证的重要性2.三种验证方法三种验证方法3.模拟系统的构成模拟系统的构成4.逻辑模拟过程逻辑模拟过程 由于集成电路规模增大,单个芯片已经可以包含整个电路系统,因此设计过由于集成电路规模增大,单个芯片已经可以包含整个电路系统,因此设计过程的复杂性迅速增加。解决电路设计复杂性的一种方法是进行程的复杂性迅速增加。解决电路设计复杂性的一种方法是进行层次化设计层次化设计。这种。这种方法从方法从系统级、行为级、寄存器传输级、功能级、门级以及开关级系统级、行为级、寄存器传输

3、级、功能级、门级以及开关级等不同的级别等不同的级别对设计进行描述,每级还可以细化为许多层次,使得设计对象逐级细化。对设计进行描述,每级还可以细化为许多层次,使得设计对象逐级细化。在如此广阔的设计领域里,每个步骤都有可能发生错误。验证作为保证设计在如此广阔的设计领域里,每个步骤都有可能发生错误。验证作为保证设计正确性的主要手段,其重要性是不言而喻的,而且,设计人员希望越早发现错误正确性的主要手段,其重要性是不言而喻的,而且,设计人员希望越早发现错误越好,如果要到版图级验证时才发现错误,所造成的损失将是十分巨大的。开发越好,如果要到版图级验证时才发现错误,所造成的损失将是十分巨大的。开发适合于各个

4、设计阶段和设计层次的验证工具,帮助设计人员尽早发现和排除错误,适合于各个设计阶段和设计层次的验证工具,帮助设计人员尽早发现和排除错误,是是EDA的一个重要研究课题。的一个重要研究课题。在目前流行的设计方法和实际设计流程中,设计正确性的验证通常采用的是在目前流行的设计方法和实际设计流程中,设计正确性的验证通常采用的是模拟验证方法(模拟验证方法(Simulation Verification Method)。所谓模拟验证,是指。所谓模拟验证,是指从电从电路描述(语言描述或图形描述)中提取出模型,然后将外部激励信号或数据施加路描述(语言描述或图形描述)中提取出模型,然后将外部激励信号或数据施加于该模

5、型,进行计算并观察输出结果,判断该电路描述是否实现了预期的功能于该模型,进行计算并观察输出结果,判断该电路描述是否实现了预期的功能 。1. 模拟(模拟(simulation):):从电路的描述(语言描述或图形描述)抽象出模从电路的描述(语言描述或图形描述)抽象出模型,然后将外部激励信号或数据施加于此模型,通过观察该模型在外部激励型,然后将外部激励信号或数据施加于此模型,通过观察该模型在外部激励信号作用下的反应来判断该电路系统是否实现预期的功能。模拟方法是目前信号作用下的反应来判断该电路系统是否实现预期的功能。模拟方法是目前常用的方法。根据不同的电路级别,有不同的模拟工具。常用的方法。根据不同的

6、电路级别,有不同的模拟工具。 (目前验证电路正(目前验证电路正确性的主要手段)确性的主要手段)2. 规则检查(规则检查(Design Rule Checking):):分析电路设计结果中各种数据分析电路设计结果中各种数据的关系是否符合设计规则。的关系是否符合设计规则。3. 形式验证(形式验证(Formal Verification):):它利用理论证明的方法和数学的它利用理论证明的方法和数学的方法来验证设计结果的正确性。形式验证基于严密的理论体系,理论上方法来验证设计结果的正确性。形式验证基于严密的理论体系,理论上可以证明电路正确与否。可以证明电路正确与否。模拟系统的基本数据包括模拟系统的基本

7、数据包括电路模型、外部输入激励波形、输出响应波形电路模型、外部输入激励波形、输出响应波形三部分组成。三部分组成。硬件描述语言硬件描述语言模拟数据模拟数据数据库数据库激励波形激励波形控制命令控制命令模拟器模拟器输出波形输出波形原理图输入原理图输入编译编译转换转换1. 电路模型电路模型 不用实际元件而用表示电路结构或行为的内部数据表示。设不用实际元件而用表示电路结构或行为的内部数据表示。设计者可以用计者可以用硬件描述语言将硬件描述语言将所设计电路的结构或功能输入计算机,也可以所设计电路的结构或功能输入计算机,也可以用用图形描述图形描述的方法输入电路模型。内部模型还可以通过数据库统一管理。的方法输入

8、电路模型。内部模型还可以通过数据库统一管理。2. 在输入端施加作为在输入端施加作为外部激励波形外部激励波形的数据。的数据。3. 计算机根据这些激励波形和内部电路模型计算出各点的响应,得到输出计算机根据这些激励波形和内部电路模型计算出各点的响应,得到输出波形数据。波形数据。原理图编辑原理图编辑硬件描述语言硬件描述语言激励波形编辑激励波形编辑数据库数据库启启动动读读电电路路数数据据生成生成模拟模拟驱动驱动程序程序得到得到激励激励波形波形模模拟拟模模拟拟结结果果波形波形显示显示观察修改观察修改模拟状态模拟状态模拟运行模拟运行准备工作准备工作编译编译转换转换编译或转换编译或转换继续模拟继续模拟1. 模

9、拟启动前,须完成的工作:模拟启动前,须完成的工作: (1)用硬件描述语言描述被模拟电路,经过编译形成中间格式的内部数据。对)用硬件描述语言描述被模拟电路,经过编译形成中间格式的内部数据。对逻辑电路来说,常用逻辑图编辑器对要模拟的电路进行编辑生成内部数据。所生成逻辑电路来说,常用逻辑图编辑器对要模拟的电路进行编辑生成内部数据。所生成的内部数据存入数据库中。的内部数据存入数据库中。 (2)用波形描述语言写出输入波形文件或者用波形编辑器编辑波形,并放在当)用波形描述语言写出输入波形文件或者用波形编辑器编辑波形,并放在当前目录。前目录。2. 在同一个在同一个EDA系统中,用硬件描述语言输入的内部数据格

10、式与图形编辑器输入系统中,用硬件描述语言输入的内部数据格式与图形编辑器输入的内部数据是一致的。不同级别的内部数据在结构上往往有较大的差别。的内部数据是一致的。不同级别的内部数据在结构上往往有较大的差别。例如,逻例如,逻辑电路的内部数据是有元件模型组成的网表结构,而行为描述的内部数据是复杂的辑电路的内部数据是有元件模型组成的网表结构,而行为描述的内部数据是复杂的数据结构,用以表示各种语言的组成要素。数据结构,用以表示各种语言的组成要素。数据库将各级内部描述有机地组织在一数据库将各级内部描述有机地组织在一起。起。 3. 启动模拟器运行之后首先启动模拟器运行之后首先从数据库中读入中间格式的内部模型数

11、据及波从数据库中读入中间格式的内部模型数据及波形数据。形数据。4. 所生成的模拟程序启动运行之后,首先读入所生成的模拟程序启动运行之后,首先读入激励波形和模拟控制命激励波形和模拟控制命令令,接着就在这些激励波形和模拟控制命令的控制下进行模拟。,接着就在这些激励波形和模拟控制命令的控制下进行模拟。5. 模拟结果包括模拟结果包括输出波形文件和电路错误报告。输出波形文件和电路错误报告。电路错误报告保存模拟电路错误报告保存模拟过程中得到的检查结果,例如过程中得到的检查结果,例如竞争冒险情况,时序检查结果,以及由控竞争冒险情况,时序检查结果,以及由控制命令描述规定的信号状态显示制命令描述规定的信号状态显

12、示等,供设计者参考。等,供设计者参考。 1. 内部电路模型内部电路模型2. 事件驱动模拟算法事件驱动模拟算法u逻辑模拟的对象是由逻辑模拟的对象是由门和功能块门和功能块等元件组成的逻辑电路。等元件组成的逻辑电路。u为了对逻辑电路进行模拟,要对被模拟的电路建立模型。模拟模型反为了对逻辑电路进行模拟,要对被模拟的电路建立模型。模拟模型反映实际电路的特性。越接近于真实电路,模拟结果越精确,但往往也映实际电路的特性。越接近于真实电路,模拟结果越精确,但往往也增加了复杂度。增加了复杂度。选取什么样的模型,取决于模拟的目的和对模拟的精选取什么样的模型,取决于模拟的目的和对模拟的精度要求。度要求。u主讲内容:

13、主讲内容:电路结构模型、信号状态值模型、延迟模型、元件模型。电路结构模型、信号状态值模型、延迟模型、元件模型。电路结构模型:电路结构模型:e1, XOR, (X, Y), S1;e2, XOR, (Cin, S1), Sum;e3, AND, (X, Y), S2;e4, AND, (S1, Cin), S3;e5, OR, (S2, S3), Cout;u在对硬件描述语言描述编译之后,首先产生一个在对硬件描述语言描述编译之后,首先产生一个中间数据格式的文件中间数据格式的文件,可放,可放在数据库中,然后在数据库中,然后由模拟程序读取。由模拟程序读取。这样的中间数据用最基本的信息描述电这样的中间

14、数据用最基本的信息描述电路。路。逻辑电路的中间数据模型一般用称为网表逻辑电路的中间数据模型一般用称为网表(Netlist)的一个元件集合表示的一个元件集合表示电路结构。电路结构。如果指定了每个元件各端口所连接的信号,就可以唯一确定电路如果指定了每个元件各端口所连接的信号,就可以唯一确定电路连接关系。此外,每个元件还应指明其元件模型。这样,连接关系。此外,每个元件还应指明其元件模型。这样,一个元件一个元件E的描述的描述至少应有元件名至少应有元件名N、模型、模型M、输入端信号、输入端信号PI、输出端信号、输出端信号PO四部分组成,即四部分组成,即 E = (N, M, PI, PO)电路结构模型:

15、电路结构模型: 一般逻辑模拟器中,除了基本门外,还包括三态门、一般逻辑模拟器中,除了基本门外,还包括三态门、传输门、触发器、寄存器以及自定义功能模块等。每个元传输门、触发器、寄存器以及自定义功能模块等。每个元件需要纪录其逻辑连接关系,如输入信号,输出信号,还件需要纪录其逻辑连接关系,如输入信号,输出信号,还需要纪录其性能特性:需要纪录其性能特性:所用的模型、延迟时间、最大负载所用的模型、延迟时间、最大负载系数系数等。对于指定功能的逻辑功能模块,还要指定其等。对于指定功能的逻辑功能模块,还要指定其内部内部记忆变量、建立时间和保持时间、以及信号值配合的禁止记忆变量、建立时间和保持时间、以及信号值配

16、合的禁止情况情况等。等。电路结构模型:电路结构模型: 网表的连接关系隐含在各元件的信号名中,模拟程序中网表的连接关系隐含在各元件的信号名中,模拟程序中使用很不便。为此,模拟程序在读入网表之后要对网表进行使用很不便。为此,模拟程序在读入网表之后要对网表进行重新组织。重新组织。模拟程序中,电路主要由元件表和信号表两个表模拟程序中,电路主要由元件表和信号表两个表组成。每个元件的输入信号和输出信号都指向相应的信号节组成。每个元件的输入信号和输出信号都指向相应的信号节点。点。在模拟时需要频繁查找每个信号后面所接的元件,称为在模拟时需要频繁查找每个信号后面所接的元件,称为负载元件负载元件或或扇出元件扇出元

17、件。为此,需要找出各信号负载元件表,。为此,需要找出各信号负载元件表,指向相应的元件节点。信号节点还需要有其性能特性的纪录,指向相应的元件节点。信号节点还需要有其性能特性的纪录,以及信号强度、信号值波形等,纪录模拟结果。以及信号强度、信号值波形等,纪录模拟结果。信号状态值模型:信号状态值模型:u在逻辑电路中,信号值一般用布尔值在逻辑电路中,信号值一般用布尔值(0和和1)表示。除此之外,为了表表示。除此之外,为了表示信号波形的各种状态,在模拟系统中经常增加一些特殊用途的值。示信号波形的各种状态,在模拟系统中经常增加一些特殊用途的值。选取不同值的组合,就构成各种功能的模拟器信号模型。选取不同值的组

18、合,就构成各种功能的模拟器信号模型。u主要讲三种模型:主要讲三种模型:二值模型、三值模型和四值模型。二值模型、三值模型和四值模型。信号状态值模型:信号状态值模型:u二值模型:二值模型: 只使用只使用0和和1两个值的模型称为二值模型。两个值的模型称为二值模型。二值模型假定逻辑元件都完成理想二值模型假定逻辑元件都完成理想的布尔运算,可以的布尔运算,可以检验数字系统的逻辑功能检验数字系统的逻辑功能,可以,可以检查电平配合、时序配合检查电平配合、时序配合等问等问题。题。u三值模型:三值模型:在二值的基础上再增加一个值在二值的基础上再增加一个值X,即形成三值模型。,即形成三值模型。X可以表示下列三种情况

19、:可以表示下列三种情况:(1)表示不确定状态,如未赋初值的信号值和某些初值。表示不确定状态,如未赋初值的信号值和某些初值。具有相同强度,不同逻辑具有相同强度,不同逻辑值的输出端驱动同一个信号节点时,不能区分值的输出端驱动同一个信号节点时,不能区分0或或1,该信号值也用,该信号值也用X表示。表示。(2)处在跳变过程中的过渡态。处在跳变过程中的过渡态。信号从一个稳态过渡到另一个稳态,都要经历一段信号从一个稳态过渡到另一个稳态,都要经历一段短暂时间。在此期间信号状态值未定,或处于短暂时间。在此期间信号状态值未定,或处于0和和1。(3)表示无关紧要的信号。表示无关紧要的信号。信号状态值模型:信号状态值

20、模型:信号状态值模型:信号状态值模型:l高阻值高阻值Z常用在常用在CMOS电路中,晶体管截止时常出现高阻状态。电路中,晶体管截止时常出现高阻状态。三态门在控三态门在控制信号为制信号为0时其输出呈现高阻状态,它相当于把连线断开。时其输出呈现高阻状态,它相当于把连线断开。l在在CMOS电路中,常遇到两个或多个输出端直接连接在一起的情况,称为线电路中,常遇到两个或多个输出端直接连接在一起的情况,称为线连接连接(Wired Connection),如图所示。这种情况下,如图所示。这种情况下,通常只允许一个输出端通常只允许一个输出端为稳态值,其余端均应为为稳态值,其余端均应为Z。这时线或运算的最后结果就

21、等于该稳态值。这时线或运算的最后结果就等于该稳态值。由由0,1,X,Z组成的信号值模型称为四值模型,常用来实现对组成的信号值模型称为四值模型,常用来实现对MOS电路的模拟。电路的模拟。 u四值模型:四值模型:延迟模型:延迟模型:u每个信号在通过元件时都会有延迟。每个信号在通过元件时都会有延迟。延迟时间的计算是逻辑模拟的重延迟时间的计算是逻辑模拟的重要功能。要功能。通过计算延迟时间得到的波形可以更精确地反映实际电路的通过计算延迟时间得到的波形可以更精确地反映实际电路的情况,从而检查时序配合是否满足设计要求,是否能在规定的时间内情况,从而检查时序配合是否满足设计要求,是否能在规定的时间内完成规定的

22、操作。完成规定的操作。u根据需要对元件的延迟赋予不同的值,可以得到不同的延迟模型。根据需要对元件的延迟赋予不同的值,可以得到不同的延迟模型。延延迟模型一般支持传输延迟和惯性延迟。迟模型一般支持传输延迟和惯性延迟。延迟模型:延迟模型:l零延迟模型。零延迟模型。所有的元件其传输延迟均设定为所有的元件其传输延迟均设定为0。这种模型与实际电路相差很。这种模型与实际电路相差很大。使用这种模型可以检验组合逻辑电路的正确性,而不便于处理异步时序电大。使用这种模型可以检验组合逻辑电路的正确性,而不便于处理异步时序电路。路。l单位延迟模型。单位延迟模型。电路中所有元件都赋予相同的延迟值,并取值为电路中所有元件都

23、赋予相同的延迟值,并取值为1,称为单位,称为单位延迟模型。用这种模型可以模拟异步时序电路。但随着引入功能块作元件,其延迟模型。用这种模型可以模拟异步时序电路。但随着引入功能块作元件,其延迟与简单门的延迟相差甚远,不能正确体现时序关系,目前已很少使用。延迟与简单门的延迟相差甚远,不能正确体现时序关系,目前已很少使用。l标准延迟模型。标准延迟模型。根据元件特性,对每种元件规定一个标准延迟数值,通常按产根据元件特性,对每种元件规定一个标准延迟数值,通常按产品目录中给定的数据为依据。它不考虑同类元件的参数分散性,与真实情况仍品目录中给定的数据为依据。它不考虑同类元件的参数分散性,与真实情况仍有差别。但

24、由于在逻辑设计阶段还不能确定参数分散情况,因而标准延迟模型有差别。但由于在逻辑设计阶段还不能确定参数分散情况,因而标准延迟模型对于大多数电路已经足够精确。对于大多数电路已经足够精确。延迟模型:延迟模型:l上升上升/下降延迟模型。下降延迟模型。进一步区分信号在正跳变和负跳变的不同延迟时间。进一步区分信号在正跳变和负跳变的不同延迟时间。在对于某些元件上升、下降延迟区别较大的情况下,可以更加精确地反映在对于某些元件上升、下降延迟区别较大的情况下,可以更加精确地反映实际情况。实际情况。l模糊延迟模型。模糊延迟模型。为了反映参数的分散性,延迟时间不是给定一个值,而为了反映参数的分散性,延迟时间不是给定一

25、个值,而是给定一个范围,即给出延迟最小值和最大值。在这个范围内,其信号值是给定一个范围,即给出延迟最小值和最大值。在这个范围内,其信号值不定(用不定(用X 表示)。即有一个模糊区域,故称之为模糊延迟模型。这种表示)。即有一个模糊区域,故称之为模糊延迟模型。这种方式一般适用于小规模电路的精确模拟,也称为方式一般适用于小规模电路的精确模拟,也称为最坏情况模拟。最坏情况模拟。元件模型:元件模型:u元件模型给出元件模型给出各类元件的内部功能、参数及特性,各类元件的内部功能、参数及特性,如如输入输出端个数、延迟时输入输出端个数、延迟时间、扇入扇出系数间、扇入扇出系数等。等。u为了提高模拟效率,为了提高模

26、拟效率,常把电路中具有一定功能的部分电路网络作为一个模拟元常把电路中具有一定功能的部分电路网络作为一个模拟元件。这样的元件称为功能块件。这样的元件称为功能块(Functional Block)。功能块的模型用功能和行为功能块的模型用功能和行为来描述,而不关心其内部结构和组成。常见的来描述,而不关心其内部结构和组成。常见的寄存器、存储器、译码器、加法寄存器、存储器、译码器、加法器、器、PLA以及其它形式的电路网络以及其它形式的电路网络均可作为功能块。均可作为功能块。u事件驱动模拟算法事件驱动模拟算法(Event Driven Simulation Algorithm)建立在内部表示电建立在内部表

27、示电路结构的静态数据结构基础上,在外部激励信号的作用下,逐渐得到各级元路结构的静态数据结构基础上,在外部激励信号的作用下,逐渐得到各级元件的响应。件的响应。u节点信号的每一次变化称为一个事件节点信号的每一次变化称为一个事件(Event)。由事件驱动该信号的负载元。由事件驱动该信号的负载元件,根据元件的功能计算元件输出端的逻辑值,并且得到新的事件。这样逐件,根据元件的功能计算元件输出端的逻辑值,并且得到新的事件。这样逐级传播,直到不再存在新的事件,或者到达指定的结束时刻为止。级传播,直到不再存在新的事件,或者到达指定的结束时刻为止。 u事件驱动,其意义就是事件驱动,其意义就是当信号值变化时才去计

28、算该信号作为输入信号的元件当信号值变化时才去计算该信号作为输入信号的元件(即扇出元件)。(即扇出元件)。如果一个元件的输入端的值均未变化,则该元件没有必要如果一个元件的输入端的值均未变化,则该元件没有必要计算。计算。u为了表示信号波形和元件延迟的作用,模拟程序建立一个虚拟的模拟时钟为了表示信号波形和元件延迟的作用,模拟程序建立一个虚拟的模拟时钟(Simulation clock)。)。起始点是起始点是0时刻。时刻。 u模拟过程从零时刻开始。模拟过程从零时刻开始。首先把外部输入激励信号作为原始的事件,驱动相首先把外部输入激励信号作为原始的事件,驱动相关元件的功能计算。计算得到的元件输出端的信号值

29、并不是当前时刻的值,关元件的功能计算。计算得到的元件输出端的信号值并不是当前时刻的值,有一定的延迟,是将来时刻的值,我们称之为将来值。有一定的延迟,是将来时刻的值,我们称之为将来值。u模拟器需要把这些将来值的发生时刻和信号值记录下来。模拟器需要把这些将来值的发生时刻和信号值记录下来。 u事项处理三个要素:事项处理三个要素:信号节点指针、信号值、信号节点指针、信号值、事项处理发生时间事项处理发生时间,记为,记为 e = ( s, v, t )u其意义为:其意义为:信号信号s将要在将来的将要在将来的 t 时刻得到值时刻得到值v。在实际模拟程序中,时间在实际模拟程序中,时间t可以用绝对时间表示,可以

30、用绝对时间表示,也可以用相对时间表示也可以用相对时间表示。u记录和管理事项处理采用记录和管理事项处理采用时间映射的链表。时间映射的链表。u每一时刻的事项处理各排成一个链表,各个时每一时刻的事项处理各排成一个链表,各个时刻排成一个刻排成一个时间队列表时间队列表(TQ表表)。 模拟过程:模拟过程:开开始始模模拟拟处理处理激励激励信号信号事事项项处处理理表表结束结束模拟模拟活跃活跃元件元件集合集合处理事项处理处理事项处理接收信号值接收信号值激活负载元件激活负载元件元元件件计计算算无事件无事件模拟过程:模拟过程:l 当一个新的模拟时刻开始后,首先把当一个新的模拟时刻开始后,首先把当前事项处理表中记录的

31、各信号值接收到各当前事项处理表中记录的各信号值接收到各信号节点,信号节点,如果新的值与原来的值相同,表示该信号的值没有变化,如果新的值与原来的值相同,表示该信号的值没有变化,实际上不是一实际上不是一个真正的事件,则把该事项处理删除,不再对它进行处理。个真正的事件,则把该事项处理删除,不再对它进行处理。如果新值与老值不同,如果新值与老值不同,则新值构成一个事件,则则新值构成一个事件,则需要把新值记录在该信号节点的波形表中,同时查找该节需要把新值记录在该信号节点的波形表中,同时查找该节点的负载元件,安排这些元件的计算。点的负载元件,安排这些元件的计算。l需要计算的元件称为需要计算的元件称为活跃元件

32、。活跃元件。由于可能有多个信号驱动同一个元件计算,由于可能有多个信号驱动同一个元件计算,为了为了避免重复计算,把需要计算的元件放在一个集合中,称为活跃元件集合。避免重复计算,把需要计算的元件放在一个集合中,称为活跃元件集合。待到所有待到所有的信号都处理完毕之后,再集中对所有活跃元件进行计算。的信号都处理完毕之后,再集中对所有活跃元件进行计算。l计算之后又产生新的事项处理,再放到事项处理表中。计算之后又产生新的事项处理,再放到事项处理表中。对每个时刻都重复这个过对每个时刻都重复这个过程,形成模拟周期程,形成模拟周期(Simulation Cycle)。 事项处理冲突的处理:事项处理冲突的处理:l

33、举例举例:一个非门,其上升延迟为一个非门,其上升延迟为4,下降延迟为,下降延迟为2。当给定图。当给定图b所示的输入端的波形后,得到所示的输入端的波形后,得到正常的波形正常的波形(图图c)。当给出图。当给出图d的输入波形后,则在的输入波形后,则在9时刻安排事项处理时刻安排事项处理e11= ( b, 1, 11 )时发生时发生了事项处理冲突现象(图了事项处理冲突现象(图e)。这时需要把)。这时需要把8时刻安排的事项处理时刻安排的事项处理e12= ( a, 0, 12 ) 删去,但其删去,但其后的输入波形得到正常的输出波形。后的输入波形得到正常的输出波形。产生冲突的原因:产生冲突的原因:在处理上升在

34、处理上升/下降延迟时,由于出现了不同的延迟参数,有下降延迟时,由于出现了不同的延迟参数,有时会遇到事项处理冲突的情况。在功能块的计算中,由于各端口延迟时间不时会遇到事项处理冲突的情况。在功能块的计算中,由于各端口延迟时间不同,也常常会出现事项处理冲突现象。同,也常常会出现事项处理冲突现象。处理方法:处理方法:对于一个信号对于一个信号s, 设前面已安排了一个事项处理设前面已安排了一个事项处理e1= (s,v1,t1)尚未尚未处理,现在又安排了一个新事项处理处理,现在又安排了一个新事项处理e2= (s,v2,t2),且,且t1t2,则称发生了事,则称发生了事项处理冲突。处理方法:删去项处理冲突。处

35、理方法:删去e1,安排新事项处理,安排新事项处理e2。 总结:总结:惯性延迟冲突的处理:惯性延迟冲突的处理:产生冲突的原因:产生冲突的原因:对于一个信号对于一个信号s, 设前面已安排了一个事项处理设前面已安排了一个事项处理e1= ( s,v1,t1)尚未处理,现在又安排了一个新事项处理尚未处理,现在又安排了一个新事项处理e2= ( s,v2,t2),且,且t1 t2,v1v2 , 则则称发生了惯性延迟冲突。称发生了惯性延迟冲突。处理方法:处理方法:把前面安排的事项处理把前面安排的事项处理e1 删去,而安排新事项处理删去,而安排新事项处理e2 。模拟实例:模拟实例: 下面举一个简单的例子。对图下

36、面举一个简单的例子。对图 (a)所示的电路,用事件驱动算法进行模拟,求所示的电路,用事件驱动算法进行模拟,求出图中各点在出图中各点在t0- t30的波形。图的波形。图 (b)为输入激励波形。设延迟时间为:异或为输入激励波形。设延迟时间为:异或门门-4,与或非门,与或非门-3,非门,非门-2。 模拟实例:模拟实例:l 当当t = 0时,时,有外部输入的事项处理有外部输入的事项处理(a, 0, 0), (b, 0, 0),还有作为初始值,还有作为初始值其它各点的信号事项处理其它各点的信号事项处理(c, 0, 0), (d, 0, 0), (e, 0, 0), (f, 0, 0)。 各信号当各信号当

37、前值均为前值均为0。l事项处理事项处理(a, 0, 0), (b, 0, 0)引起引起C计算,得计算,得(c, 1, 3);l(b, 0, 0), 还引起还引起D计算,得计算,得(d, 1, 2);l(c, 0, 0), (d, 0, 0)引起引起E计算,得计算,得(e,0, 4);l(c, 0, 0), (e, 0, 0)引起引起F计算,得计算,得(f, 1 3)。l计算完毕,将当前事项处理删除(图中未做删除标志,但应认为已不存计算完毕,将当前事项处理删除(图中未做删除标志,但应认为已不存在)。在)。l 当当t = 1时,时,无外部输入事项处理,也无当前事项处理。于是时钟直接走到下一周期,无

38、外部输入事项处理,也无当前事项处理。于是时钟直接走到下一周期,t = 2。l 当当t = 2时,时,有当前事项处理有当前事项处理(d, 1, 2),接收状态值,接收状态值d = 1,其余信号值不变。,其余信号值不变。l 该事项处理引起该事项处理引起E计算,因此时计算,因此时c=0,故得新事项处理,故得新事项处理(e, 1,6)。注意此时事项处理表中存在。注意此时事项处理表中存在事项处理事项处理(e, 0, 4),属惯性延迟冲突,应将,属惯性延迟冲突,应将(e, 0, 4)删除,安排删除,安排(e, 1,6)。l 当当t = 3时,时,有有(c, 1, 3), (f, 1, 3)两个事项处理,接

39、收新状态值两个事项处理,接收新状态值c = 1, f = 1。c引起引起E, F的计的计算,得算,得(e,0, 7),(f, 1 , 6)。这时可看到。这时可看到(e, 1 6)属惯性延迟,删除属惯性延迟,删除(e, 1,6),安排,安排(e, 0, 7),(f, 1, 6)。l 当当t = 4时时, 无当前事项处理。无当前事项处理。l 当当t = 5时时, 有外部输入信号事项处理有外部输入信号事项处理(a, 1, 5),接收,接收a = 1,引起,引起C计算,得计算,得(c, 1,8)。l 当当t = 6时,时,有事项处理有事项处理(f, 1 , 6)。此时。此时f值未变,删除该事项处理。值

40、未变,删除该事项处理。l 当当t = 7时,时,有事项处理有事项处理(e, 0, 7),此时,此时e值未变,删除该事项处理。值未变,删除该事项处理。l 当当t = 8时时,有事项处理,有事项处理(c, 1 , 8)。此时。此时c值未变,删除该事项处理。值未变,删除该事项处理。l 当当t = 10时时, 有外部输入信号事项处理有外部输入信号事项处理(b, 1, 10),接收,接收b = 1,引起,引起C, D计算,得计算,得(c,0,13), (d,0,12)。l 当当t = 12时,时,有外部输入信号事项处理有外部输入信号事项处理(a, 0, 12),有事项处理,有事项处理(d, 0 , 12

41、),接收接收a = 0, d = 0,引起引起C, E计算,得计算,得(e, 1,16), (c, 1, 15)。这时。这时(c,0,13)属惯性延迟,删除属惯性延迟,删除(c,0,13)。l 当当t = 15时,时,有事项处理有事项处理(c, 1, 16)。c值未变,删除。值未变,删除。l 当当t = 16时,时,有事项处理有事项处理(e, 1,16)。接收。接收e = 1,引起,引起F计算,得计算,得(f, 0,19)。l 当当t = 18时时, 有外部输入信号事项处理有外部输入信号事项处理(a, 1, 18),接收,接收a = 1,引起,引起C计算,得计算,得(c, 0,21)。l 当当

42、t = 19时时, 有事项处理有事项处理(f, 0,19),接收,接收f = 0,无需要计算的元件。,无需要计算的元件。l 当当t = 20时时, 有外部输入信号事项处理有外部输入信号事项处理(b, 0, 20),接收,接收b = 0,引起,引起C, D计算,得计算,得(c,1,23), (d,1,22)。这时。这时(c,0,21)属惯性延迟,删除属惯性延迟,删除(c,0,21)。 当当t = 22时时, 有事项处理有事项处理(d, 1, 22),接收,接收d = 1,引起,引起E计算,得计算,得(e, 0,26)。 当当t = 23时,时,有事项处理有事项处理(c, 1 , 23)。此时。此

43、时c值未变,删除该事项处理。值未变,删除该事项处理。 当当t = 26时时, 有事项处理有事项处理(e, 0, 26),接收,接收e = 0,引起,引起F计算,得计算,得(f, 1,29)。 当当t = 29时时, 有事项处理有事项处理(f, 1,29),接收,接收f = 1 。此时,已无任何未处理事项处。此时,已无任何未处理事项处理,模拟结束。理,模拟结束。 1. VHDL模拟概述模拟概述 2. VHDL模拟系统的组成模拟系统的组成 3. VHDL模拟器的实现方法模拟器的实现方法4. VHDL内部模型内部模型l 高层次硬件描述是指比逻辑结构描述更抽象的描述方法高层次硬件描述是指比逻辑结构描述

44、更抽象的描述方法, 最主要的有最主要的有寄存器传输级寄存器传输级和和行为算法级。行为算法级。l 寄存器传输级寄存器传输级的基本描述对象是寄存器,包括触发器、存储器、加法器、计数器的基本描述对象是寄存器,包括触发器、存储器、加法器、计数器等。这些元器件的数据一般为由多个位组成的位串,也称为数组。寄存器传输级语言等。这些元器件的数据一般为由多个位组成的位串,也称为数组。寄存器传输级语言描述数据在这些元件中的传播过程和条件,描述状态的转换。描述数据在这些元件中的传播过程和条件,描述状态的转换。l 行为和算法级的描述行为和算法级的描述比寄存器传输级更为抽象。描述时不考虑具体电路元件,只有比寄存器传输级

45、更为抽象。描述时不考虑具体电路元件,只有一些抽象的信号和变量。这些信号和变量具有各种可能的数据结构。可以是二进制位一些抽象的信号和变量。这些信号和变量具有各种可能的数据结构。可以是二进制位和位串,也可以是任意枚举类型,整数和实数,甚至可以是记录和数组。描述时主要和位串,也可以是任意枚举类型,整数和实数,甚至可以是记录和数组。描述时主要考虑数字系统的行为和动作,描述各种操作,描述系统流程。考虑数字系统的行为和动作,描述各种操作,描述系统流程。l 硬件描述语言是高层次系统设计的主要描述方法。硬件描述语言是高层次系统设计的主要描述方法。VHDL 是覆盖多个级别的多级混是覆盖多个级别的多级混合的硬件描

46、述语言。本节以合的硬件描述语言。本节以VHDL语言为代表,介绍高层次模拟技术。语言为代表,介绍高层次模拟技术。 一个完整的一个完整的VHDL模拟系统包括模拟系统包括设计的输入、语言的编译、模拟数据的生成、模设计的输入、语言的编译、模拟数据的生成、模拟、模拟结果的波形显示,以及功能较强的高级图形调试器等部分。拟、模拟结果的波形显示,以及功能较强的高级图形调试器等部分。VHDL集成模拟集成模拟环境的示意图如下。环境的示意图如下。 VHDL模拟器有不同的实现方法。大致有以下两种方式。模拟器有不同的实现方法。大致有以下两种方式。(1) 解释型模拟方式解释型模拟方式(2) 编译型模拟方式编译型模拟方式

47、解释型:解释型:l基本保持描述风格,按内部的层次化结构模型,做成基本保持描述风格,按内部的层次化结构模型,做成内部静态数据结构。内部静态数据结构。l 整个电路系统由若干模块组成,模块可以嵌套,形成整个电路系统由若干模块组成,模块可以嵌套,形成类树型结构。类树型结构。l 每个基本模块(叶结点)为纯行为模型。每个基本模块(叶结点)为纯行为模型。l 需要预先做的工作是根据配置的指定将各模块组成一需要预先做的工作是根据配置的指定将各模块组成一个完整的电路描述。在模拟时,对这些数据分析、解释、个完整的电路描述。在模拟时,对这些数据分析、解释、执行,实现模拟。执行,实现模拟。 VHDL中各个实体中各个实体

48、(Entity)及其结构体及其结构体(Architecture)由一系列并行语句组成。从由一系列并行语句组成。从模拟实现的角度来看,并行语句可分为三类:模拟实现的角度来看,并行语句可分为三类: (1) 进程类语句:进程类语句:进程语句进程语句(Process)、并行信号赋值语句、并行信号赋值语句(=)、并行过程调用语、并行过程调用语句、并行断言语句句、并行断言语句(Assert)。后三种简单并行语句可看做简化的进程语句,在行为模。后三种简单并行语句可看做简化的进程语句,在行为模型中作为进程对待。型中作为进程对待。 (2) 模块调用类语句:模块调用类语句:元件例化语句、块语句元件例化语句、块语句

49、(Block)。 (3) 生成语句:生成语句:条件生成语句条件生成语句(If Generate)、循环生成语句、循环生成语句(For Generate)。 根据模拟算法的不同,可以将层次化描述的电路做成展开的平面化根据模拟算法的不同,可以将层次化描述的电路做成展开的平面化纯行为进纯行为进程模型程模型和和层次化的结构模型层次化的结构模型两种模型。两种模型。纯行为的进程模型:纯行为的进程模型:l由此可见,由此可见,一个电路系统实质上是进程的集合。一个电路系统实质上是进程的集合。每个进程定义一个完整的独立操每个进程定义一个完整的独立操作。作。一个数字系统由若干独立的、并行执行的进程组成。一个数字系统

50、由若干独立的、并行执行的进程组成。每个进程是由一组顺序语每个进程是由一组顺序语句组成的过程,相当于一段程序。句组成的过程,相当于一段程序。l 信号是协调各进程之间通讯机制的数据通路,由信号的值控制各进程的运行,并信号是协调各进程之间通讯机制的数据通路,由信号的值控制各进程的运行,并确定系统的输入和输出,得到各信号的新状态值,即得到新的信号事件。确定系统的输入和输出,得到各信号的新状态值,即得到新的信号事件。l 进程有进程有挂起挂起和和激活激活两种状态。设计者可以在进程中安排挂起和激活的位置和条件,两种状态。设计者可以在进程中安排挂起和激活的位置和条件,包括包括挂起时间、激活条件挂起时间、激活条

侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|