Verilog赋值间延迟语句与赋值内延迟语句比较
module full_adder(a,b,sum);
input a,b;
output reg sum;
always @(a,b) #13 sum = (a & b) ; 或者 always @(a,b) sum = #13 (a & b) ;
endmodule
注意到两个always语句的延迟语句的位置不同,后一个语句称为内部指定延迟。
第一个always语句说明在a或b变化后,先阻塞运行,延迟13ns,再根据当前的a,b的值,计算sum的值。这就导致计算得到的sum值可能与13ns之前的不一样。
第二个always语句表示的是a或b变化后,立即计算当前的sum值,13ns后将该值赋给sum,得到的是13ns之前的值。
在相同的Testbench下仿真
module test_fulladder;
// Inputs
reg a;
reg b;
// Outputs
wire sum;
// Instantiate the Unit Under Test (UUT)
full_adder uut (.a(a), .b(b), .sum(sum) );
initial begin
// Initialize Inputs
a = 0;
b = 0;
// Wait 100 ns for global reset to finish
#10 a =1;
#11 b =1;
#11 a =0;
#25 a = 1;
// Add stimulus here
end
endmodule
结果如下:
第一个always语句对应的图
第二个always语句对应的图
由图可知,在21ns时刻,b变化,此时a=1,b=1,sum=a&b=1,,而第一个图的结果在13ns后即34ns时刻的值却是0,第二个图则是1,。说明第一图是将34ns的计算结果值赋给了sum,而第二图是将21ns的sum计算结果延迟13ns到34ns时刻再赋给sum。因此,两种延迟结构的特点很显而易见了。
Verilog赋值间延迟语句与赋值内延迟语句比较相关推荐
- input 赋值_FPGA基础设计:Verilog行为级建模(过程赋值)
来源:CSDN文章 使用逻辑门和连续赋值对电路建模,是相对详细的描述硬件的方法.使用过程块可以从更高层次的角度描述一个系统,称作行为级建模(behavirol modeling). 1. 过程赋值 阻 ...
- FPGA基础设计(10)Verilog行为级建模(过程赋值)
目录 1.过程赋值 1.1 特性1 1.2 特性2 2.过程连续赋值 3.case语句 3.1 do-not-cares 3.2 常数case 4.循环语句 5. 过程块 5.1 零延迟无限循环 5. ...
- 【Verilog HDL】赋值语句之阻塞赋值方式与非阻塞赋值方式
刚开始接触Verilog HDL语言时,这种硬件描述语言有一点与软件的程序设计语言直观上的最大区别大概就是这个赋值语句了(这里只是强调直观上的最大区别,事实上的最大区别并非如此). Verilog H ...
- java if 赋值语句_Java中有一种特殊的赋值运算叫做三元运算,它和if-else语句类似....
Java中有一种特殊的赋值运算叫做三元运算,它和if-else语句类似. 答:√ 顺序阀在液压系统中起___作用 答:压力开关 断电后,机器人关节轴发生了位移,不需要更新转速计数器 答:× " ...
- SQL语句--关于赋值
SQL语句–关于赋值 DECLARE 参数 SELECT 参数=- 这种是给参数赋值,赋了一个结果集 DECLARE @Name VARCHAR(200) SELECT @Name = CASE WH ...
- Verilog参数Parameter使用、参数化赋值
1.参数化Parameter使用 方便后期重用,主要用于位宽.计数器大小.延时大小等的定义. 先说Parameters的三大分类分别是,Module Parameter, Local Paramete ...
- System Verilog 线程间的通信——事件,信箱与旗语
本文参考绿皮书第七章节,主要介绍System Verilog线程间通信的方式与基本的使用.包括事件,mailbox,semaphore.简而言之,事件可以实现线程间的通信,mailbox用于线程间的数 ...
- Python 2.7 学习笔记 内置语句、函数、标准库
使用任何开发语言进行软件开发,都离不开语言提供的内置库(或Api),甚至说内置库的强大及使用是否方便都会影响大家对开发语言的选择. python语言,一样提供了很多内置的功能,可供开发时使用.主要有如 ...
- vb.net 同时给多个属性赋值_C++程序入门之——赋值操作符
赋值语句 前面已经说明,要访问内存,就需要相应的地址以表明访问哪块内存,而变量是一个映射,因此变量名就相当于一个地址.对于内存的操作,在一般情况下就只有读取内存中的数值和将数值写入内存(不考虑分配和释 ...
最新文章
- 董明珠:别嫌工资少,满足这些条件!多高都给你
- SQL Server 2008使用扩展事件进行高级故障排除
- linux之history和!命令联合使用
- 安装python37路径报错_解决pycharm安装python库报错问题
- lt;SCRIPT src=quot;../scripts/LoadWebOffice.jsquot;gt;lt;/SCRIPTgt;
- 【实例分割论文】SOLOv2: Dynamic, Faster and Stronger
- 如何开发一个完整的JavaScript组件
- 【AlphaGo论文学习】Mastering the game of Go without human knowledge翻译及心得
- LinkLib例子之十五:本地文件回放,支持暂停,seek等
- oppo怎么广告接入_oppo搜索广告投放操作指南
- twitter注册不了_如何阻止Twitter重点阻止不相关的通知
- html表格填充空白单元格,快速填充数据表格中的空白单元格
- 一个平凡的人--简介
- 锐目对讲机的使用方法详解
- 安阳工学院计算机专业宿舍,安阳工学院宿舍条件,宿舍环境图片(10篇)
- 基于淘宝评价的采集与产品爆款挖掘分析
- 百度和360的关键词提交
- “你当然是个胆小鬼。”昆仑叶哲华骄傲地说道
- 汇通达港交所上市:市值超240亿港元 阿里与顺为是股东
- Win10我的电脑图标怎么调出来?1分钟解决!
热门文章
- 基于RT-Thread开发智能视觉组智能车 - 温州大学 - 春华秋实
- 电抗电路的串并联的转换
- 微波人体感应模块 24G 24.125g 感应开关微波传感器模块
- 时雨月五| AI机器学习实战の电磁导航智能车中神经网络应用的问题与思考
- zabbix nginx php postgresql,debian10安装zabbix4.2+nginx+postgresql
- flutter 键盘遮挡输入框问题_flutter插件推荐之 keyboard_avoider - 解决输入时的键盘遮挡问题...
- linux内核经常用到的 一个概念“原子操作“
- oracle 提取当天日志,powershell提取日志内容
- HDLBits 系列(5)让三元条件运算符(?:)在你的设计中发挥作用
- 【 C 】动态内存分配实用案例(二)之复制字符串