zoukankan      html  css  js  c++  java
  • Verilog学习笔记基本语法篇(四)·········块语句

    块语句是指将两条或者两条以上的语句组合在一起,使其在格式上更像一条语句。块语句分为两种:

    1)用begin_end语句,通常用来标识顺序执行的语句,用它标识的块称作顺序块;

    2)用fork_join语句,通常用来标识并行执行的语句,用它标识的块称作并行块。

    A)顺序块

    begin

        语句1;

        语句2;

       ....

        语句n;

    end

    begin:块名

        块内声明语句

        语句1;

        语句2;

       ....

        语句n;

    end

    特点:

    1)块内的语句是按照顺序执行的,即只有上面一条语句执行完后下面的语句才能执行;

    2)每条语句的延迟时间都是相对于前一条语句的仿真时间而言的;

    3)直到最后一条语句执行完,程序流程控制才跳出该语句块。

    在begin-end语句块中,begin-end和fork-join块可以相互嵌套,也可以自我嵌套。如果begin-end中包含有局部声明,则他必须被命名(必须有一个标志)。如果要禁止一个begin-end块,那么被禁止的begin-end必须有名字。

    B)并行块

    fork

        语句1;

        语句2;

       ....

        语句n;

    join

    fork:块名

        块内声明语句

        语句1;

        语句2;

       ....

        语句n;

    join

    特点:

    1)块内语句是同时执行的,即程序流程控制进入该块时刻,块内语句则开始同时并行执行;

    2)块内每条语句的延迟时间都是相对于程序流程进入到块内的时刻。

    3)延迟时间是用来给赋值语句提供执行时序的;

    4)当按时间排序在最后的语句执行完成后,或者一个disable语句执行时,程序流程控制跳出该模块。

    块名:

    1)可以在块内定义局部变量,即只在块内使用的变量;

    2)可以允许被其他的语句调用,也可以通过层次名进行调用

    3)在Verilog中,所有的变量都是静态的,即所有的变量都只有一个唯一的存储地址,因此进入或者跳出块并不影响储存在变量内的值。

    4)命令块可以被禁用,关键词为disable,可以用disable跳出循环,处理错误条件以及根据控制信号来控制某些代码是否执行。

    顺序块和并行块的性质对比

    对比性质 顺序块 并行块
    块内声明语句变量类型 parameter、reg、integer、real parameter、reg、integer、real、time、event
    开始时间 第一条语句开始执行的时间 流程控制进入该块的时间
    结束时间 最后一条语句结束执行时间 按时间排在最后的语句执行结束时间

    举例:(程序功能相同的顺序块和并行块)

    parameter  d=50;

    reg   [7:0] r;

    begin

        #d   r='h35;

        #d   r='hE2;

        #d   r='h00;

        #d   r='hF7;

        #d   ->end_wave;                   //->表示触发事件end_wave使其翻转

    end

     (如果d=0,则这个顺序块的执行不需要时间。若d=50,则块语句完成的时间为250,因为每个语句都要等待50个时间单位)

    fork

        #250  ->end_wave; 

        #200   r='hF7;

        #150   r='h00;

        #100   r='hE2;

        #50     r='h35;

    join

    (在并行块中,所有语句都是在程序流程进入并行块时同时开始的,因此这个语句结束的时间为250)

  • 相关阅读:
    K
    A
    C
    E
    2020/9/14
    hdu5306 hdu3954 cf438D
    2020/9/10-9/11
    题解
    2020/8/31
    2020/8/30
  • 原文地址:https://www.cnblogs.com/SYoong/p/5852128.html
Copyright © 2011-2022 走看看