Verilog 时延
连续赋值延时语句中的延时,用于控制任意操作数发生变化到语句左端赋予新值之间的时间延时。时延一般是不可综合的。寄存器的时延也是可以控制的,这部分在时序控制里加以说明。连续赋值时延一般可分为普通赋值时延、隐式时延、声明时延。
下面 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 时延相关推荐
- Verilog语言菜鸟教程知识关键点记录
Verilog语言菜鸟教程知识关键点记录 1.两类数据类型:线网数据类型与寄存器数据类型,线网表示物理元件之间的连线,寄存器表示抽象的数据存储元件. 2.Verilog 作为硬件描述语言,主要用来生成 ...
- Verilog语言- 和c语言的区别
1.Verilog基础 1.1 特别的数值种类 x 或 X:未知 z 或 Z:高阻 (Z 常见于信号(input, reg)没有驱动时的逻辑结果.例如一个 pad 的 input 呈现高阻状态时,其逻 ...
- 记一下终于用iverilog搭建好仿真环境
动机 一开始准备在linux系统里仿真的,看了非常多的教程,写的已经非常详细了,但是我这脑子还招架不住啊,最后转向在windows进行仿真,过程跟linux中其实是一样的,但是我电脑的linux系统始 ...
- FPGA之道(35)Verilog中的并行与串行语句
文章目录 前言 Verilog的并行语句 Verilog连续赋值语句 普通连续赋值语句 条件连续赋值语句 Verilog程序块语句 沿事件 纯组合always 纯时序always 具有同步复位的alw ...
- Verilog中的条件编译语句 `ifdef、`else、`endif 等
今天在参考大佬的RS232 Receiver的时候,用到了`ifdef指令,我虽知道它是条件编译指令,但是内容已经忘了差不多了,也不敢胡乱猜测.今天趁此机会总结一下: 一般情况下,Verilog HD ...
- verilog编译指令
编译指令 以`(反引号)开始的某些标识符是编译器指令.在Verilog 语言编译时,特定的编译器指令在整个编译过程中有效(编译过程可跨越多个文件),直到遇到其它的不同编译程序指令.完整的标准编译器指令 ...
- 3.初识Verilog HDL
FPGA教程目录 MATLAB教程目录 -------------------------------------------------------------------------------- ...
- [转]常用数字处理算法的Verilog实现
2.6.3 常用数字处理算法的Verilog实现 1.加法器的Verilog实现 串行加法器 组合逻辑的加法器可以利用真值表,通过与门和非门简单地实现.假设 和 表示两个加数, 表示和, 表示来自 ...
- verilog经验谈
规范很重要 工作过的朋友肯定知道,公司里是很强调规范的,特别是对于大的设计(无论软件 还是硬件),不按照规范走几乎是不可实现的.逻辑设计也是这样:如果不按规范做的 话,过一个月后调试时发现有错,回头再 ...
最新文章
- 32岁程序员,补偿N+2:“谢谢裁我,让我翻倍!” 网友:榜样!
- eclipse安装反编译插件(附jad下载)
- 【Network Security!】Ubuntu18.04切换到root权限和sudo
- ubuntu下eclipse打开window下的java文件,注释内容为乱码,解决方法
- 【Windows 逆向】内存地址分析 ( 内存条 | 虚拟内存 | 内存地址及寻址范围 | 内存地址与数据的关系 )
- hdu 5199 map或二分或哈希
- 节选—Android 视频直播 ( 从快播到直播,从高清到无码 )十年视频开发项目
- Linux之防火墙开通端口
- PHP - 5.4 Array dereferencing 数组值
- weblogic多次连接后tcp服务堵塞_网络编程——服务器篇
- java循环1000000000_Java11比Java8快多少,不是测试人员一眼也能看懂
- SQL Server数据库连续集成(CI)最佳实践以及如何实现它们–测试,处理和自动化
- 蓝桥杯 ALGO-143 算法训练 字符串变换
- Spark中sortByKey和sortBy对(key,value)数据分别 根据key和value排序
- Newton形式的Hermite插值多项式
- 集成电路--封装种类
- poj 1436 Horizontally Visible Segments(线段树)
- 将CAD图纸转换为黑白的PDF文件要怎么操作
- react组件书写规范
- AMBA之AHB总线
热门文章
- utorrent 2.04 Firewall拒绝访问解决办法
- SpringBoot2.0学习 (一)
- 解决vs6.0出现Compiling... error spawning cl.exe 的问题
- ANSYS软件调用出错问题
- 通达信欧奈尔RPS指标公式详解
- Codeforces Round #739 (Div. 3)题解A-E
- matlab yahoodata,目前 pandas_datareader 提示yahoo 无法下载数据的解决方法
- 一开机就提示脱机工作_【电脑开机总是提示脱机工作资讯】电脑开机总是提示脱机工作足球知识与常识 - 足球百科 - 599比分...
- 网络通信基础 - 多路复用技术(频分多路复用、时分多路复用、波分多路复用)
- JS+CSS3人物奔跑动画