Verilog时延单元是一种用于模拟电路设计的工具,它可以帮助电子工程师们更好地理解和分析电路的行为。Verilog时延单元可以帮助电子工程师们更好地理解和分析电路的行为,并且可以有效地减少开发时间。
Verilog时延单元是一种非常有效的工具,它可以帮助电子工程师们快速、准确地测量信号传递时间。它使用一个特定的语法来表示信号传递时间,这样就能够快速、准确地测量信号传递时间。此外,Verilog时延单元还能够有效地减少开发时间,因为它能够快速、准确地测量信号传递时间。
module delay_unit (input clk, input reset, input data_in, output data_out); reg [7:0] counter; always @(posedge clk) begin if (reset) begin counter <= 0; end else begin counter <= counter + 1; end end assign data_out = (counter == 8'hFF) ? data_in : 0; // 8'hFF is the maximum value of the counter. endmodule // delay_unit
连续赋值延时语句中的延时,用于控制任意操作数发生变化到语句左端赋予新值之间的时间延时。
时延一般是不可综合的。
寄存器的时延也是可以控制的,这部分在时序控制里加以说明。
连续赋值时延一般可分为普通赋值时延、隐式时延、声明时延。
下面 3 个例子实现的功能是等效的,分别对应 3 种不同连续赋值时延的写法。
//普通时延,A&B计算结果延时10个时间单位赋值给Z
wire Z, A, B ;
assign #10 Z = A & B ;
//隐式时延,声明一个wire型变量时对其进行包含一定时延的连续赋值。
wire A, B;
wire #10 Z = A & B;
//声明时延,声明一个wire型变量是指定一个时延。因此对该变量所有的连续赋值都会被推迟到指定的时间。除非门级建模中,一般不推荐使用此类方法建模。
wire A, B;
wire #10 Z ;
assign Z =A & B
在上述例子中,A 或 B 任意一个变量发生变化,那么在 Z 得到新的值之前,会有 10 个时间单位的时延。如果在这 10 个时间单位内,即在 Z 获取新的值之前,A 或 B 任意一个值又发生了变化,那么计算 Z 的新值时会取 A 或 B 当前的新值。所以称之为惯性时延,即信号脉冲宽度小于时延时,对输出没有影响。
因此仿真时,时延一定要合理设置,防止某些信号不能进行有效的延迟。
对一个有延迟的与门逻辑进行时延仿真。
module time_delay_module(
input ai, bi,
output so_lose, so_get, so_normal);
assign #20 so_lose = ai & bi ;
assign #5 so_get = ai & bi ;
assign so_normal = ai & bi ;
endmodule
testbench 参考如下:
`timescale 1ns/1ns
module test ;
reg ai, bi ;
wire so_lose, so_get, so_normal ;
initial begin
ai = 0 ;
#25 ; ai = 1 ;
#35 ; ai = 0 ; //60ns
#40 ; ai = 1 ; //100ns
#10 ; ai = 0 ; //110ns
end
initial begin
bi = 1 ;
#70 ; bi = 0 ;
#20 ; bi = 1 ;
end
time_delay_module u_wire_delay(
.ai (ai),
.bi (bi),
.so_lose (so_lose),
.so_get (so_get),
.so_normal (so_normal));
initial begin
forever begin
#100;
//$display("---gyc---%d", $time);
if ($time >= 1000) begin
$finish ;
end
end
end
endmodule
仿真结果如下:
信号 so_normal
为正常的与逻辑。
由于所有的时延均大于 5ns,所以信号 so_get
的结果为与操作后再延迟 5ns 的结果。
信号 so_lose
前一段是与操作后再延迟 20ns 的结果。
由于信号 ai 第二个高电平持续时间小于 20ns,so_lose
信号会因惯性时延而漏掉对这个脉冲的延时检测,所以后半段 so_lose
信号仍然为 0。
点击这里下载源码
欠费支付微信后台向业主方通知用户支付成功(支付失败时无通知)。1、请求参数参数名称类型必选备注appidstringY小程序appidmch_...
audio音频。属性名类型默认值说明idStringaudio 组件的唯一标识符srcString要播放音频的资源地址loopBooleanfalse是否循环播放co...
aria-component无障碍访问为了更好地满足视障人士对于小程序的访问需求,基础库自2.7.1起,支持部分ARIA标签。无障碍特性在读屏...
wx.compressVideo(Object object)基础库 2.11.0 开始支持,低版本需做兼容处理。压缩视频接口。开发者可指定压缩质量quality进行...