0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Verilog的块语句fork...join 和 begin...end

FPGA之家 来源:FPGA之家 作者:FPGA之家 2022-06-09 10:30 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

1. 块语句有两种,一种是 begin-end 语句, 通常用来标志()执行的语句;一种是 fork-join 语句,通常用来标志()执行的语句。

答案:顺序,并行

解析:

(1)begin_end顺序块,用于将多条语句组成顺序块,语句按顺序一条一条执行(除了带有内嵌延迟控制的非阻塞赋值语句),每条语句的延迟时间是相对于由上一条语句的仿真时间而言;

(2)fork-join并行块,块内语句同时执行。

2. 块语句,下面这段语句中,第 40 时刻上,A、B 的值各是多少?


reg A;reg B;initial begin    fork        begin            A = 1;            #20 A = 0;    #30A=1;            #50 A = 0;        end        begin            B = 1;            #20 B = 0;            #30 B = 1;            #50 B = 0;        end    joinend

答案:A = 0,B = 0

解析:

块语句有两种,begin...end 和 fork...join,其中 fork...join 是并行块,begin...end 是顺序执行块,可以相互嵌套

上面,两个 begin...end 之间是并行的,而各自 begin...end 内部是顺序执行,A 和 B 的赋值逻辑是一样的,所以要么都是 1,要么都是 0。

按照顺序执行,A 前 20 个时间单位是 1,然后持续 30 个时间单位的 0,所以 40 时刻是 0,同理 B 也是 0

228548d8-e784-11ec-ba43-dac502259ad0.png

审核编辑 :李倩


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Verilog
    +关注

    关注

    30

    文章

    1370

    浏览量

    114126
  • 顺序
    +关注

    关注

    0

    文章

    14

    浏览量

    22297

原文标题:Verilog 的块语句 fork...join 和 begin...end

文章出处:【微信号:zhuyandz,微信公众号:FPGA之家】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    【道生物联TKB-623评估板试用】——3.TKB-623评估板连接STM32发送数据

    -----------------------------------------------------------/ / USER CODE BEGIN PTD */ /* USER CODE END PTD */ /* Private define
    发表于 11-17 14:44

    蜂鸟例程的编译与程序的加载

    仿真的过程中,会首先将前文编译生成的(.verilog)文件通过tb_top.v文件里initial过程中的readmemh函数读进来,存放在ITCM中: initial begin
    发表于 10-24 13:34

    NICE协处理器demo分析及测试

    begin_instret, end_instret, instret_normal, instret_nice;unsigned int begin_cycle,end_cycle
    发表于 10-23 07:05

    Unicore标准NEMA语句GSA及说明

    本文介绍和芯星通的NEMA语句说明。
    的头像 发表于 07-16 11:39 483次阅读
    Unicore标准NEMA<b class='flag-5'>语句</b>GSA及说明

    基础篇3:掌握Python中的条件语句与循环

    不同的条件执行不同的代码。Python中的条件语句主要使用if、elif(else if的缩写)和else关键字。 if语句 最简单的条件语句是if
    发表于 07-03 16:13

    详解TIA Portal SCL编程语言中的IF语句

    IF 语句是编程中最基本和最重要的控制结构之一,它的主要作用是根据条件决定程序的执行路径,IF 语句是编程中实现逻辑判断和决策的基础。
    的头像 发表于 05-24 15:01 1437次阅读
    详解TIA Portal SCL编程语言中的IF<b class='flag-5'>语句</b>

    STM32U5 IWDG的提前唤醒中断无法在STOP模式下触发怎么解决?

    * @retval int*/int main(void){/* USER CODE BEGIN 1 *//* USER CODE END 1 *//* MCU
    发表于 04-22 08:14

    FPGA Verilog HDL语法之编译预处理

    语句)。Verilog HDL编译系统通常先对这些特殊的命令进行“预处理”,然后将预处理的结果和源程序一起在进行通常的编译处理。
    的头像 发表于 03-27 13:30 1086次阅读
    FPGA <b class='flag-5'>Verilog</b> HDL语法之编译预处理

    寻找verilog高手,有报酬

    我采集了一电路板正常工作时的数据,基于这些数据我想用EPM7128slc84-15(sys_clk:50Mhz)测试电路板,寻求一位verilog高手,有偿
    发表于 03-08 16:31

    【RA-Eco-RA4E2-64PIN开发板试用】I2C与I3C通信协议的应用

    or negedge rst_n)begin if(!rst_n) begin Dri_clk <=1\'b0; Clk_cnt<= 10\'d0: end else
    发表于 01-21 10:40

    RA-Eco-RA4E2-64PIN开发板试用+I2c与I3C通信协议的应用。

    or negedge rst_n)begin if(!rst_n) begin Dri_clk <=1\'b0; Clk_cnt<= 10\'d0: end else
    发表于 01-11 15:06

    Verilog 电路仿真常见问题 Verilog 在芯片设计中的应用

    在现代电子设计自动化(EDA)领域,Verilog作为一种硬件描述语言,已经成为数字电路设计和验证的标准工具。它允许设计师以高级抽象的方式定义电路的行为和结构,从而简化了从概念到硅片的整个设计流程
    的头像 发表于 12-17 09:53 1601次阅读

    Verilog 与 ASIC 设计的关系 Verilog 代码优化技巧

    Verilog与ASIC设计的关系 Verilog作为一种硬件描述语言(HDL),在ASIC设计中扮演着至关重要的角色。ASIC(Application Specific Integrated
    的头像 发表于 12-17 09:52 1438次阅读

    Verilog 测试平台设计方法 Verilog FPGA开发指南

    Verilog测试平台设计方法是Verilog FPGA开发中的重要环节,它用于验证Verilog设计的正确性和性能。以下是一个详细的Verilog测试平台设计方法及
    的头像 发表于 12-17 09:50 1558次阅读

    Verilog与VHDL的比较 Verilog HDL编程技巧

    Verilog 与 VHDL 比较 1. 语法和风格 VerilogVerilog 的语法更接近于 C 语言,对于有 C 语言背景的工程师来说,学习曲线较平缓。它支持结构化编程,代码更直观,易于
    的头像 发表于 12-17 09:44 2688次阅读