(转)VHDL的延时理解

1。VHDL中的delta延时大于零,但小于任何指定的延时(指定的延时包括after指定的惯性延时和transport指定的传输延时)。因此,在一个确定的仿真时刻t,开启有限多个仿真周期(即一个delta延时)不会使仿真时刻向前推进,就是说不论有多少个delta延时,都认为是在t时刻。为什么能够这样认为呢,请看2。

2。在具体硬件中,进程是并行发生的,也就是说,数据总是不断的流进各个模块,模块间不会有先来后到。因此在一个时刻t,会同时有多个事件发生。但是仿真软件是在PC机上用C语言之类的串行机制实现的,所以就必须在串行机制下尽可能准确地仿真并行事件的发生。怎么办呢,就出现了delta延时的模型。在一个仿真周期(即一个delta延时)里,仿真器串行的处理各个事件,但我们把这个仿真周期看成一个整体认为这些事件宏观上是并行的。既然是并行的,就理所当然地认为还是在t时刻了。

3。一个process只要在时刻t它的敏感表中有事件发生,就开启一个仿真周期。一个仿真周期里,可以同时有多个process被激活,就看敏感表中是不是有事件。但是对于一个进程,不管它有多长,只要其中没有after 之类的具体时间延时,就认为需要花费一个delta延时完成,也就是说它的结果是在delta之后才更新的(可以理解成立刻算出来,但是等到delta之后才更新)。如果它的输出在delta后更新完又触发了另外一个process,那么就再开一个仿真周期,再花费delta执行。由1可知,不管开了多少个delta&#x

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值