首先说说结构化过程语句,在verilog中有两种结构化的过程语句:initial语句和always语句,他们是行为级建模的两种基本语句。其他所有的行为语句只能出现在这两种语句里

与C语言不通,verilog在本质上是并发而非顺序的。verilog中的各个执行流程(进程)并发执行,而不是顺序执行的。每个initial语句和always语句代表一个独立的执行过程,每个执行过程从仿真时间0开始执行并且两种语句不能嵌套使用。下面举例解释之:

initial语句

所有的initial语句内的语句构成了一个initial块。initial块从仿真0时刻开始执行,在整个仿真过程中只执行一次。如果一个模块中包括了若干个initial块,则这些initial块从仿真0时刻开始并发执行,且每个块的执行是各自独立的。如果在块内包含了多条行为语句,那么需要将这些语句组成一组,一般式使用关键字begin和end将他们组合在一个块语句;如果块内只有一条语句,则不必使用begin和end.下面给出了initial语句的例子:

module stimulus
reg x,y, a,b, m
initial
m = 1'b0;
initial
begin
#5 a = 1'b1;
#25 b = 1'b0;
end
initial
begin
#10 x = 1'b0;
#25 y = 1'b1;
end
initial
#50 $finish;
endmodule

在上面例子中,三条initial语句在仿真0时刻开始并行执行。如果在某一条语句前面存在延迟#<delay>,那么这条initial语句的仿真将会停顿下来,在经过指定的延迟时间之后再继续执行。因此上面的initial语句执行顺序为:

时间               所执行的语句
0                   m = 1'b0;
5                   a = 1'b1;
10                  x = 1'b0;
30                  b = 1'b0;
35                  y = 1'b1;
50                  $finish;

摘自《VerilogHDL数字设计与综合(第二版)》夏宇闻译

verilog中的initial语句相关推荐

  1. Verilog初级教程(11)Verilog中的initial块

    文章目录 前言 正文 语法格式 initial块是用来干什么的? initial块何时开始又何时结束? 一个模块中允许有多少个initial块? 参考资料 写在最后 前言 仿真中通常会依次执行一组Ve ...

  2. (64)FPGA面试题-在Verilog中,$display语句可以使用哪些不同的选项?

    1.1 FPGA面试题-在Verilog中,$display语句可以使用哪些不同的选项? 1.1.1 本节目录 1)本节目录: 2)本节引言: 3)FPGA简介: 4)FPGA面试题-在Verilog ...

  3. verilog中的initial块、always块详细解释

    一.两者的关系 一个程序块可以有多个initial和always过程块.每个initial和always说明语句在 仿真的一开始同时立即开始执行 initial语句只执行一次,而always语句则不断 ...

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

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

  5. Verilog中关于case语句的优先级

    对于这样的组合逻辑电路 always@(X) case(X) X1: X2: -- endcase 如果分支项包含变量X的所有取值情况,并且互相不重复,那么这样的情况,其实没有必要使用综合指令. (一 ...

  6. 关于Verilog 中的for语句的探讨

    在C语言中,经常用到for循环语句,但在硬件描述语言中for语句的使用较C语言等软件描述语言有较大的区别. 在Verilog中除了在Testbench(仿真测试激励)中使用for循环语句外,在Test ...

  7. 关于Verilog中begin···end语句执行顺序

    Verilog中分阻塞赋值和非阻塞赋值两种,组合逻辑多用阻塞赋值,此时使用begin···end语句,将一条执行完再执行下一句,即顺序执行. 而时序逻辑多是并行执行,多用非阻塞赋值,begin···e ...

  8. verilog 中if....else语句以及case语句详细理解

    1.if else: (1)if(表达式)语句: (2)if(表达式) 语句一else语句二 (3)if(表达式1) 语句一:else if(表达式2) 语句2:else if(表达式3) 语句3:e ...

  9. Verilog中if- else if语句和case语句用法:

    一.if语句: 1.两种情况 if(条件语句)begin-- end else begin-- end 2.多种情况 if(条件语句)begin-- end else if(条件语句)begin-- ...

最新文章

  1. java二维码生成与解析代码实现
  2. java数组怎样插入元素,Java如何在给定位置将元素插入数组?
  3. 更新Docker中的Jenkins版本
  4. php 反射类 解析注释,php反射获取类和方法中的注释
  5. python制作u盘病毒_十行代码--用Python写一个USB病毒!
  6. 操作系统和绿色软件下载网址
  7. PyTorch:模型训练和预测
  8. 浅析阿里数据技术架构(下)大规模分布式知识图谱
  9. SQL:postgresql中实现查询某字段总数量和该字段不同值各自的数量
  10. 查看Tensorflow 是使用GPU or CPU运行
  11. 500 G JAVA视频网盘分享(JEECG开源社区)
  12. 毫米波雷达,超声波雷达,激光雷达,摄像雷达比较
  13. CSS基础的文字样式
  14. linux编译lilo,linux中LILO及GRUB配置实例
  15. 计算机专业知识教学,2016计算机专业知识:计算机的分类(一)
  16. 网易MuMu模拟器 更改模拟器大小(iphone5为例)
  17. 单片机入门学习五 STM32单片机学习二 跑马灯程序衍生出的stm32编程基础
  18. Symantec BESR备份操作系统
  19. 公众号榜单 | 2020·8月公众号行业排行榜重磅发布
  20. 三天搞定射频识别技术(二)2.4 S50卡原理

热门文章

  1. os模块创建多级目录
  2. React styled-components TypeScript 的最佳实践
  3. VS2019安装和使用(C语言)
  4. Google的几个特别搜索功能(转)
  5. vue+Element中append-to-body的使用
  6. 5.4 控制器的功能和工作原理
  7. 微型计算机控制器主要功能,微型计算机控制器的基本功能有哪些
  8. 计算机汉字字模信息怎么算,汉字字模库字模.PPT
  9. python统计元音字母个数_计算Python中的元音(Counting vowels in python)
  10. @iptables防火墙详解