8.Verilog中的always语句

顾名思义,always翻译成汉语就是总是、一直,永远,和代码中的循环类似。
具体语法结构如下:

always@(*) begin


end


1.首先要有关键字  always,表示一直执行
2.@ 表示等待,等待什么,等待()后面小括号里面的变量
3.()小括号里面放的是敏感变量,具体来说就是只要里面的信号发生变化,就可以叫做敏感变量,只要有任何一个触发always块,都会触发这个always块
4.begin  end用来封装,表示一个always块的具体逻辑

reg  out1;

always@(*)  begin

    if(sel == 1'b0)
       out1 = a;
    else 

       out1 = b;

end   
//这是组合逻辑电路,组合逻辑常用阻塞赋值,=号

首先*表示通配符,这里的敏感变量包括sel,a,b这里,这里直接用*号代表所有的敏感变变量,
当然写成@(sel,a,b)也可以,为了省事可以直接写成*
再次强调,always语句块中=等号左边必须是reg类型!!!

下面给一个时序逻辑电路举例:
reg   out1;

always@(posedge clk or negedge rst_n)begin
   if(!rst_n)
     out1  <= 0;
   else if(sel == 1'b0)
     out1  <= a;
   else
     out1  <= b;
end

时序逻辑常用非阻塞赋值,也就是<=号;
阻塞赋值和非阻塞赋值的具体区别以后会讲,这个超级无敌重要。。。。。。。。。。。

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值