FPGA_阻塞赋值与非阻塞赋值

一 阻塞赋值

特点:
         依次执行。

rtl代码:

          a=1,b=2,c=3,

          begin

                  a=b+1;

                  b=a+2;

                  c=a-1;

         end

         易得,a=3,b=5,c=2;

verilog代码:

                   module blocking

                   (

                      input wire         sys_clk,        //时钟信号

                      input wire         sys_rst_n,    // 复位信号

                      input wire [1:0] in,                //in信号位宽为2bit

                     output reg [1:0] out

                   );

                                reg          in_reg;

                  always@(posedge sys_clk or negedge sys_rst_n)

                  if(sys_rst_n=1'b0)                    //异步易位     

                      begin 

                              in_reg=2'b0;

                              out     =2'b0;

                       end

                  else

                      begin 

                           in_reg=in;

                           out     =in_reg;

                        end

                endmodule

二 非阻塞赋值

特点:
         并行执行。

rtl代码:

          a=1,b=2,c=3,

          begin

                  a<=b+1;

                  b<=a+2;

                  c<=a-1;

         end

         易得,a=3,b=3,c=0;

非阻塞赋值只可对reg型变量进行操作,不可对wire型变量进行操作。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值