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赋值间延迟语句与赋值内延迟语句比较相关推荐

  1. input 赋值_FPGA基础设计:Verilog行为级建模(过程赋值)

    来源:CSDN文章 使用逻辑门和连续赋值对电路建模,是相对详细的描述硬件的方法.使用过程块可以从更高层次的角度描述一个系统,称作行为级建模(behavirol modeling). 1. 过程赋值 阻 ...

  2. 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. ...

  3. 【Verilog HDL】赋值语句之阻塞赋值方式与非阻塞赋值方式

    刚开始接触Verilog HDL语言时,这种硬件描述语言有一点与软件的程序设计语言直观上的最大区别大概就是这个赋值语句了(这里只是强调直观上的最大区别,事实上的最大区别并非如此). Verilog H ...

  4. java if 赋值语句_Java中有一种特殊的赋值运算叫做三元运算,它和if-else语句类似....

    Java中有一种特殊的赋值运算叫做三元运算,它和if-else语句类似. 答:√ 顺序阀在液压系统中起___作用 答:压力开关 断电后,机器人关节轴发生了位移,不需要更新转速计数器 答:× " ...

  5. SQL语句--关于赋值

    SQL语句–关于赋值 DECLARE 参数 SELECT 参数=- 这种是给参数赋值,赋了一个结果集 DECLARE @Name VARCHAR(200) SELECT @Name = CASE WH ...

  6. Verilog参数Parameter使用、参数化赋值

    1.参数化Parameter使用 方便后期重用,主要用于位宽.计数器大小.延时大小等的定义. 先说Parameters的三大分类分别是,Module Parameter, Local Paramete ...

  7. System Verilog 线程间的通信——事件,信箱与旗语

    本文参考绿皮书第七章节,主要介绍System Verilog线程间通信的方式与基本的使用.包括事件,mailbox,semaphore.简而言之,事件可以实现线程间的通信,mailbox用于线程间的数 ...

  8. Python 2.7 学习笔记 内置语句、函数、标准库

    使用任何开发语言进行软件开发,都离不开语言提供的内置库(或Api),甚至说内置库的强大及使用是否方便都会影响大家对开发语言的选择. python语言,一样提供了很多内置的功能,可供开发时使用.主要有如 ...

  9. vb.net 同时给多个属性赋值_C++程序入门之——赋值操作符

    赋值语句 前面已经说明,要访问内存,就需要相应的地址以表明访问哪块内存,而变量是一个映射,因此变量名就相当于一个地址.对于内存的操作,在一般情况下就只有读取内存中的数值和将数值写入内存(不考虑分配和释 ...

最新文章

  1. 基于Python的BPSK音频的波形和频谱
  2. java线程池【转】
  3. ios学习记录 UITextField输入return键监听
  4. 2020计算机考研初试考试先后顺序,【图片】2020考研,老学长教你如何规划!【计算机考研吧】_百度贴吧...
  5. 设计模式在Netty中的应用-装饰者模式源码举例
  6. 具有链接资源的Spring RestTemplate
  7. java desktop mailto,mailto在Java?
  8. C++|Qt工作笔记-C++获取当前系统时间,Qt获取当前系统时间及各标准间转化
  9. LeetCode - Remove Nth Node From End of List
  10. c++ opencv 识别车牌_python利用百度云接口实现车牌识别
  11. 一次完整的react hooks实践
  12. JVM 新生代,老年代,永久代
  13. Setup Factory制作程序exe安装包-软件打包360浏览器及串口驱动
  14. linux下ssh工具自动登录的实现
  15. 问道怎么找回以前的服务器,问道服务器盘点“北京古都”传奇之地
  16. 自然语言处理-jieba
  17. 分布式、高并发、高性能场景(抢购、秒杀、抢票、限时竞答)数据一致性解决方案
  18. hibernate lazy属性参数说明
  19. 《算法导论》习题5.3-1 ~ 5.3-7
  20. 职教云助手手机版_职教云app下载安装_职教云最新版本下载网址

热门文章

  1. 关于山东大学(威海)全向组海韵三队提交的 RT-Thread 技术报告中的若干疑点
  2. 基于 RT-Thread智能车控制算法开发-河南科技大学ROCKET
  3. 调试机械臂一体化控制电路:STM32F103控制器初步调试
  4. 双轴机械臂建模分析数据
  5. 历届智能车哪个组别最难,哪个竞争最激烈?
  6. 交互式讲解傅里叶变换
  7. Mac中使用svn命令行更换svn服务器IP地址
  8. pointcloud 转ptr_ROS学习笔记(三)sensor_msgs::LaserScan转pcl::PointCloud
  9. 知识图谱在信息检索中的应用_如何使用知识图谱增强信息检索模型?
  10. Java 二叉树 前序_java实现二叉树前序中序后序层次遍历