收藏 分享(赏)

VHDL行为模型的执行过程1.ppt

上传人:yjrm16270 文档编号:10269094 上传时间:2019-10-26 格式:PPT 页数:40 大小:573KB
下载 相关 举报
VHDL行为模型的执行过程1.ppt_第1页
第1页 / 共40页
VHDL行为模型的执行过程1.ppt_第2页
第2页 / 共40页
VHDL行为模型的执行过程1.ppt_第3页
第3页 / 共40页
VHDL行为模型的执行过程1.ppt_第4页
第4页 / 共40页
VHDL行为模型的执行过程1.ppt_第5页
第5页 / 共40页
点击查看更多>>
资源描述

1、,2.1硬件描述 2.2VHDL的基本结构 2.3VHDL层次化结构模型 2.4VHDL的顺序行为描述 2.5VHDL的并行行为描述 2.6VHDL行为模型的执行过程 2.7VHDL的复合并行语句,一、断言语句(并行、顺序),意义: 当不满足条件时输出指定信息和错误级别 当严重级别是Failure时,模拟过程停止 用途: 添加限制条件 (例:检测时间限制条件)。 输出状态信息或出错报告。 添加调试断点。,assert 条件表达式 report 输出信息字符串 severity 严重级别; type Severity _Level is (Note, Warning,Error, Failure

2、);,例,assert not (S= 1 and R = 1)report “Both S and R are High.”Severity Error; 正常情况下不应同时 S= 1 , R = 1assert Enable /= X report “Unknown value on Enable”severity warning;,断言语句的简单形式-Report,Report语句标号: report 表达式 severity 严重级别 ; 例: report “Entering process P”;report “Setup or Hold violation; Outputs dr

3、iven to X” severity WARNING;,二、决断信号(resolved signal),驱动源 若某信号在一个进程(包括等价进程)中被赋值,该进程为该信号的一个驱动源 一般情况下,一个信号只能有一个驱动源 一个进程可以为若干个信号的驱动源 特殊情况下一个信号可以有多个驱动源,必须特别声明,特别处理 决断信号: 具有多个驱动源、需要判断其最后结果的信号。,信号驱动源,信号驱动源是指对信号赋值的进程,或信号与输出端口的联结。 在并行语句中,一个并行赋值语句即为一个信号驱动源 architecture Archi of Exam is beginSource_1: F = tran

4、sport 1 after 1 ns;Source_2: F = transport 2 after 2 ns; end Archi; F有2个信号源,若F不是决断信号,则非法。,在进程中,对某个信号只能有1个信号源,architecture Archi2 of Exam is beginprocessbeginF = transport 1 after 1 ns;F = transport 2 after 2 ns; wait; end process; end Archi2; 此例中,F仅为1个信号源,相当于下面的语句:F = transport 1 after 1 ns,2 after

5、2 ns;,决断信号的指定,决断类型:决断信号的类型 (含决断函数) 决断函数:用来决定决断函数的值的函数 Package Resolved_Bit4 istype Bit4 is (X, 0, 1, Z);type Bit4_Vector is array(Integer range ) of Bit4;function Wired_Or (Input: Bit4_Vector)return Bit4;subtype Resolved_Wire is Wired_Or Bit4; signal Resolved_Signal: Resolved_Wire; end Resolved_Bit4

6、;,决断函数例,function Wired_Or (Input: Bit4_Vector)return Bit4 isvariable result: Bit4 := 0;beginfor I in InputRange loopif Input(I) = 1 then Result := 1; exit;elsif Input(I)= X then Result := X;else null;end if;end loop;return Result; end Wired_Or;,决断信号描述例,entity Exam isport(A, B, C, D: in Bit4; F: out

7、Wired_Or Bit4); end Exam;architecture Archi of Exam is beginSource_1: F = A and B;Source_2: F = C and D; end Archi;,三、行为描述的执行过程,需要处理的几个问题: 模块与进程的并行性 信号驱动 进程激活与挂起 延迟的处理 模拟: 记录波形模拟时钟 并行操作事项与事件 信号驱动事件驱动模拟方法,1. 事项与事件,事项(transaction) 记录将来值 一个进程产生信号的一个将来值,称为一个事项。 用“值-相对时间对”(波形元素)表示,例(2, 2ns)信号驱动器(driver):

8、 信号驱动器是该信号的事项的集合。事件(event) 已得到的波形的性质 信号值的一次变化(当前值与老值不同),称为一个事件,信号的执行机制,模拟过程动态数据结构事项表,信号与时间队列的交叉链表,信 号 表,有关事项与事件的信号属性,事项: SActive, Boolean型值, 表示当前时刻有事项, 即该信号活跃, SQuiet(T), Boolean类型的信号,信号S在之后时间内没有事项 STransaction, Bit类型的信号,若当前时刻有事项,则反转一次 事件: SEvent, Boolean型值, 表示当前时刻有事件 SStable(T), Boolean类型的信号,信号S在之前

9、时间内没有事件,信号的延时赋值,2种延迟模式: transport:传输延迟 inertial: 惯性延迟 (默认) 信号的延时赋值 A = B after 5 ns; B = A after 5 ns; 当前:A=0, B=1; 5 ns 后,A=1, B=0; 被赋值:将来值。右边信号值:当前值;,无延迟指定 延迟,VHDL中的延迟模型,惯性延迟当元件的输入信号宽度太窄(小于指定的惯性阈值时),元件的输出端可能没有响应。这样的延迟特性称为惯性延迟(Inertial Delay )。 默认的延迟模型 适合于描述电路单元,像与非门等的延迟传输延迟任何宽度的脉冲波形都能从元件的输入端传播到输出端

10、的延迟特性称为传输延迟特性(Transport Delay)。 适合于描述具有非常小惯性的物理器件,像连线的延迟 全部的输入事件(event)都传输到输出信号上Delta延迟 VHDL仿真器为了保证事件的正确执行顺序而自动插入的无穷小延迟,传输延迟模型,Transport Delay Model for Signals Assume that the output will change after the propagation delay Applies to wires, but it is unrealistic for gatesExample:sum = transport (A

11、and B) after 2 ns;- sum gets the result after 2 ns.- sum must have been initialized as a signalGeneral form:sum = transport value-expression after time-expression;Note that 该模型不是 VHDL默认的模型,其默认模型是惯性模型,VHDL中的延迟模型:惯性延迟,Inertial Delay Model for Signals (default mode) Signal changes that stay at a value

12、for less than rejection time are filtered out (ignored) Signal changes affect the output after the propagation delay More realistic: can be applied to gatesExample: - NOT PART of VHDL-87, so may not be synthesized!sum = reject 1 ns inertial (A and B) after 2 ns;- complex assignment (see next slide t

13、o see what happens)!- assumes that: - rejection time = 1ns- propagation delay time = 2ns- inertial delay model is applied to decide outputGeneral form:sum = reject time-expression inertial value-expression after time-expr;,Inertial Delay Example for AND Gate,Two More Examples of Signal Assignment,Ex

14、ample 2:sum = A and B after 2 ns; - assumes that: - rejection time = 2 ns- propagation delay time = 2 ns- inertial delay model is applied to decide outputExample 3:sum = A and B; - assumes that: - rejection time = Delta Time (internal constant)- propagation delay time = Delta Time- inertial delay mo

15、del is applied to decide outputThis is the most common and default mode of operation!,VHDL中的延迟模型:delta延迟,VHDL中的延迟模型:delta延迟,VHDL中的延迟模型:总结,延迟模型惯性延迟 针对电路门的信号延迟传输延迟 保证信号的全部事件的传输 针对电路连线上的信号传输delta延迟 为了保证没有定义时序的VHDL代码正确执行而自动插入的无限小延迟 保证了VHDL代码所定义的数据相关性。,2. 信号赋值中的延迟处理,传输延迟的处理例(续),传输延迟的处理例(续),惯性延迟处理,惯性延迟处理例

16、(续),3.多个波形元素的惯性延迟赋值语句,惯性延迟处理例(续),例4等价于例7,最后结果等价,4. 行为模型的执行过程,模拟周期:1. 开始模拟:建立初始值,激活所有进程,并行执行所有进程,直到所有进程都挂起。2. 接受信号值:模拟时钟向前进,若当前有事项处理,处理决断信号。然后将所有新值与老值不同者(发生事件)更新所有信号值。3. 执行激活的进程:根据各进程的等待条件,激活有关进程。执行这些进程,直到它们都挂起。4. 循环:若还存在事项处理,且未到达规定时间,则转2,否则结束。,实例一位计数器,输入激励信号波形值描述例,Clock= 0, 1 after 1 ns, 0 after 2 n

17、s, 1 after 3 ns, 0 after 4 ns, 1 after 5 ns, 0 after 6 ns, 1 after 7 ns, 0 after 8 ns, 1 after 9 ns, 0 after 10 ns, 1 after 11 ns,0 after 12 ns, 1 after 13 ns;Cin= 0, 1 after 2 ns, 0 after 4 ns, 1 after 6 ns, 0 after 8 ns, 1 after 10 ns, 0 after 12 ns;,输入信号波形图,执行过程,L1: Bout = DffOut;L2: ExorOut = DffOut xor Cin;L3: Cout = DffOut and Cin;L4: process(Clock)beginif Clock = 1 then DffOut= ExorOut end if;end process;,L1: Bout = DffOut;L2: ExorOut = DffOut xor Cin;L3: Cout = DffOut and Cin;L4: process(Clock)beginif Clock = 1 then DffOut= ExorOut end if;end process;,信号波形图,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报