61,Verilog-2005标准篇:时序式UDP的初始化

时序式UDP 的输出reg端口初始值可通过initial语句指定,该语句提供了一个初始化过程赋值,且initial语句是可选的。module中的初始化语句也以关键字initial开头,但与UDP的过程赋值有一些区别,下表1列出了这两类初始语句的区别:

UDP中的初始语句

module中的初始语句

仅限于初始化1条过程赋值语句

可以是1条任何类型的过程语句,也可以是1条包含多条过程语句的块语句

过程赋值的reg信号为端口列表的输出信号

过程赋值语句的reg信号可以不是端口列表信号

过程赋值语句的赋值只能为:1'b1、1'b0、1'bx、1、0

过程赋值语句可赋值任意的位宽和数值大小

1:UDPmodule初始语句对比

例 1:下面的示例为一个包含初始语句的时序式UDP:

primitive  srff (q, s, r);
output  q;  reg  q;
input  s, r;
initial  q = 1'b1;
table
//   s  r   q  q+
    1  0 :  ? : 1 ;
    f  0 :  1 : - ;
    0  r :  ? : 0 ;
    0  f :  0 : - ;
    1  1 :  ? : 0 ;
endtable
endprimitive

输出q在仿真开始时的初始值为1;对UDP例化的延迟指定不会延迟初始值分配给输出的时间;仿真启动时,该值就是状态表中的当前状态;UDP初始语句中不允许延迟指定。

例2:下面的示例和图1展示了如何在模块module中使用初始语句例化时序式UDP:

UDP dff1 包含一条初始语句,将其输出的初始值设为 1。模块 dff 例化了一个 UDP dff1。

图1显示了上面的module原理图和仿真结果,UDP输出 qi 的扇出包括网络信号 q 和 qb。在仿真时间0时,qi的值变为1。qi 的初始值直到仿真时间3才传播到网络q,直到仿真时间5才传播到网络qb。

图1:module原理图和初始值传播仿真时间

点赞加关注博主(ID:FPGA小飞)的博文,咱们一起系统学习verilog最终标准IEEE Std 1364-2005吧!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值