zoukankan      html  css  js  c++  java
  • verilog中阻塞复制,非阻塞复制,顺序块,并行块之间的关系

    这几个概念是不一样的
    顺序块:顺序块中的语句是按顺序执行的,每条语句中的延迟值是与其前一条语句执行的仿真时间有关。
    并行块:并行块语句是并行执行的,它里面的每条语句中指定的延迟值都是相对于语句块开始执行的时候。
    所以顺序块和并行块的区别是,里面每条语句执行的仿真时间,而非具体的阻塞,非阻塞语句。
    阻塞赋值:在一下条语句执行前,这条赋值语句必须已经完成。
    非阻塞赋值:当非阻塞性过程赋值语句执行时,计算右侧的表达式,然后在预定时刻将右侧的值赋给的目标。最快的输出也要在当前时刻结束前的最后时刻。它计算出右侧的值后,并不阻塞,后面的语句正常运行,而真正的赋值发生在当前或者延迟结束的时刻。 不阻塞后面语句执行,在当前或者延迟结束时刻赋值是它的特点。而后面语句内部延迟,它只是说明赋值延迟时刻而已,而不关注赋值的时机。它们是不同的概念。

    下面是我写的例子,使用Synplify_pro综合:

    module test(
               d1,
               clk,
               q1,
               q2
               );
        input d1,clk;     
        output q1;
        output q2;
        reg q1,q2;
       
        always @  (posedge clk)
           begin
            q1 = d1;
            q2 = q1;
           end
    endmodule
    综合后只有一个DFF。


    module test(
               d1,
               clk,
               q1,
               q2
               );
        input d1,clk;     
        output q1;
        output q2;
        reg q1,q2;
       
        always @  (posedge clk)
           fork
            q1 = d1;
            q2 = q1;
           join
    endmodule

    综合后有两个DFF。

    module test(
               d1,
               clk,
               q1,
               q2
               );
        input d1,clk;     
        output q1;
        output q2;
        reg q1,q2;
       
        always @  (posedge clk)
           begin
            q1 <= d1;
            q2 <= q1;
           end
    endmodule
    综合后有两个DFF。

    module test(
               d1,
               clk,
               q1,
               q2
               );
        input d1,clk;     
        output q1;
        output q2;
        reg q1,q2;
       
        always @  (posedge clk)
           fork
            q1 <= d1;
            q2 <= q1;
           join
    endmodule

    综合后有两个DFF。

  • 相关阅读:
    bzoj 3456 城市规划 —— 分治FFT / 多项式求逆 / 指数型生成函数(多项式求ln)
    洛谷 P4721 [模板]分治FFT —— 分治FFT / 多项式求逆
    CF 438 E & bzoj 3625 小朋友和二叉树 —— 多项式开方
    Codeforces 447
    Codeforces 1099
    Codeforces 991
    Codeforces 994
    Codeforces 989
    Codeforces 1084
    xj膜你赛(n-1)
  • 原文地址:https://www.cnblogs.com/rednodel/p/4053744.html
Copyright © 2011-2022 走看看