连续赋值延时语句中的延时,用于控制任意操作数发生变化到语句左端赋予新值之间的时间延时。时延一般是不可综合的。寄存器的时延也是可以控制的,这部分在时序控制里加以说明。连续赋值时延一般可分为普通赋值时延、隐式时延、声明时延。

下面 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
`timescale 1ns/1nsmodule test ;reg  ai, bi ;wire so_lose, so_get, so_normal ;initial beginai        = 0 ;#25 ;      ai        = 1 ;#35 ;      ai        = 0 ;        //60ns#40 ;      ai        = 1 ;        //100ns#10 ;      ai        = 0 ;        //110nsendinitial beginbi        = 1 ;#70 ;      bi        = 0 ;#20 ;      bi        = 1 ;endtime_delay_module  u_wire_delay(.ai              (ai),.bi              (bi),.so_lose         (so_lose),.so_get          (so_get),.so_normal       (so_normal));initial beginforever begin#100;//$display("---gyc---%d", $time);if ($time >= 1000) begin$finish ;endendendendmodule

Verilog 时延相关推荐

  1. Verilog语言菜鸟教程知识关键点记录

    Verilog语言菜鸟教程知识关键点记录 1.两类数据类型:线网数据类型与寄存器数据类型,线网表示物理元件之间的连线,寄存器表示抽象的数据存储元件. 2.Verilog 作为硬件描述语言,主要用来生成 ...

  2. Verilog语言- 和c语言的区别

    1.Verilog基础 1.1 特别的数值种类 x 或 X:未知 z 或 Z:高阻 (Z 常见于信号(input, reg)没有驱动时的逻辑结果.例如一个 pad 的 input 呈现高阻状态时,其逻 ...

  3. 记一下终于用iverilog搭建好仿真环境

    动机 一开始准备在linux系统里仿真的,看了非常多的教程,写的已经非常详细了,但是我这脑子还招架不住啊,最后转向在windows进行仿真,过程跟linux中其实是一样的,但是我电脑的linux系统始 ...

  4. FPGA之道(35)Verilog中的并行与串行语句

    文章目录 前言 Verilog的并行语句 Verilog连续赋值语句 普通连续赋值语句 条件连续赋值语句 Verilog程序块语句 沿事件 纯组合always 纯时序always 具有同步复位的alw ...

  5. Verilog中的条件编译语句 `ifdef、`else、`endif 等

    今天在参考大佬的RS232 Receiver的时候,用到了`ifdef指令,我虽知道它是条件编译指令,但是内容已经忘了差不多了,也不敢胡乱猜测.今天趁此机会总结一下: 一般情况下,Verilog HD ...

  6. verilog编译指令

    编译指令 以`(反引号)开始的某些标识符是编译器指令.在Verilog 语言编译时,特定的编译器指令在整个编译过程中有效(编译过程可跨越多个文件),直到遇到其它的不同编译程序指令.完整的标准编译器指令 ...

  7. 3.初识Verilog HDL

    FPGA教程目录 MATLAB教程目录 -------------------------------------------------------------------------------- ...

  8. [转]常用数字处理算法的Verilog实现

      2.6.3 常用数字处理算法的Verilog实现 1.加法器的Verilog实现 串行加法器 组合逻辑的加法器可以利用真值表,通过与门和非门简单地实现.假设 和 表示两个加数, 表示和, 表示来自 ...

  9. verilog经验谈

    规范很重要 工作过的朋友肯定知道,公司里是很强调规范的,特别是对于大的设计(无论软件 还是硬件),不按照规范走几乎是不可实现的.逻辑设计也是这样:如果不按规范做的 话,过一个月后调试时发现有错,回头再 ...

最新文章

  1. 32岁程序员,补偿N+2:“谢谢裁我,让我翻倍!” 网友:榜样!
  2. eclipse安装反编译插件(附jad下载)
  3. 【Network Security!】Ubuntu18.04切换到root权限和sudo
  4. ubuntu下eclipse打开window下的java文件,注释内容为乱码,解决方法
  5. 【Windows 逆向】内存地址分析 ( 内存条 | 虚拟内存 | 内存地址及寻址范围 | 内存地址与数据的关系 )
  6. hdu 5199 map或二分或哈希
  7. 节选—Android 视频直播 ( 从快播到直播,从高清到无码 )十年视频开发项目
  8. Linux之防火墙开通端口
  9. PHP - 5.4 Array dereferencing 数组值
  10. weblogic多次连接后tcp服务堵塞_网络编程——服务器篇
  11. java循环1000000000_Java11比Java8快多少,不是测试人员一眼也能看懂
  12. SQL Server数据库连续集成(CI)最佳实践以及如何实现它们–测试,处理和自动化
  13. 蓝桥杯 ALGO-143 算法训练 字符串变换
  14. Spark中sortByKey和sortBy对(key,value)数据分别 根据key和value排序
  15. Newton形式的Hermite插值多项式
  16. 集成电路--封装种类
  17. poj 1436 Horizontally Visible Segments(线段树)
  18. 将CAD图纸转换为黑白的PDF文件要怎么操作
  19. react组件书写规范
  20. AMBA之AHB总线

热门文章

  1. utorrent 2.04 Firewall拒绝访问解决办法
  2. SpringBoot2.0学习 (一)
  3. 解决vs6.0出现Compiling... error spawning cl.exe 的问题
  4. ANSYS软件调用出错问题
  5. 通达信欧奈尔RPS指标公式详解
  6. Codeforces Round #739 (Div. 3)题解A-E
  7. matlab yahoodata,目前 pandas_datareader 提示yahoo 无法下载数据的解决方法
  8. 一开机就提示脱机工作_【电脑开机总是提示脱机工作资讯】电脑开机总是提示脱机工作足球知识与常识 - 足球百科 - 599比分...
  9. 网络通信基础 - 多路复用技术(频分多路复用、时分多路复用、波分多路复用)
  10. JS+CSS3人物奔跑动画