[求助] 看看下面的语句

lzp961   2021-12-7 15:08 楼主

列语句:
    begin
       a <= 1;
    end
    begin
        b <= 2;
    end
它跟:

    begin
     a = 1;
     b = 2;

    end

    begin
     a <=1;
     b <=2;

    end
那组语义相同?

回复评论 (11)

是最下边那个吗

点赞  2021-12-7 15:30

和最下面那个,a=1和a<=1都不是一个意思。

点赞  2021-12-7 15:46
引用: wangerxian 发表于 2021-12-7 15:46 和最下面那个,a=1和a<=1都不是一个意思。

不是说

begin  end 和 begin end 之间顺序执行吗?

点赞  2021-12-7 16:13
引用: lzp961 发表于 2021-12-7 16:13 不是说 begin  end 和 begin end 之间顺序执行吗?

   begin
       a <= 1;
    end
    begin
        b <= 2;
    end

应该是先执行a<=1再执行b<=2。最下面那个也是这个顺序执行的。

点赞  2021-12-7 16:18
引用: wangerxian 发表于 2021-12-7 16:18    begin        a <= 1;     end     begin ...

begin

   a <= 1;

   b <= 2;

end

这里的a和b不是同时赋值?

点赞  2021-12-7 16:21
引用: lzp961 发表于 2021-12-7 16:21 begin    a <= 1;    b <= 2; end 这里的a和b不是同时赋值?

不是,你这是C语言吗?如果是的话【<=】是一个判断语句。

点赞  2021-12-7 17:26
wangerxian 发表于 2021-12-7 17:26 不是,你这是C语言吗?如果是的话【<=】是一个判断语句。

这是verilog hdl, 非阻塞赋值

坐而言不如起而行
点赞  2021-12-8 10:19
1和3相同,都是非阻塞赋值语句,begin end和C语言里的( )一样,2是阻塞赋值语句。
点赞  2021-12-8 12:23

这是和非阻塞的意思。

其实这些语句无法看出来

应该是

    begin

        a<= 1;

        b <= a;

end

    

    begin

        a<= 1;

        b <= a;

end

才能看出来。

一般在always语句中建议使用 <=

点赞  2021-12-11 10:40

我也刚学了点,这两个用法不太好理解,要反复学习下.

点赞  2022-1-24 19:04

阻塞赋值语句和非阻塞赋值语句, 时序逻辑和组合逻辑间区别

点赞  2022-5-9 15:49
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复