当前位置:   article > 正文

8.Verilog中的always语句_always @(*) begin

always @(*) begin
  1. 顾名思义,always翻译成汉语就是总是、一直,永远,和代码中的循环类似。
  2. 具体语法结构如下:
  3. always@(*) begin
  4. end
  5. 1.首先要有关键字 always,表示一直执行
  6. 2.@ 表示等待,等待什么,等待()后面小括号里面的变量
  7. 3.()小括号里面放的是敏感变量,具体来说就是只要里面的信号发生变化,就可以叫做敏感变量,只要有任何一个触发always块,都会触发这个always块
  8. 4.begin end用来封装,表示一个always块的具体逻辑
  9. reg out1;
  10. always@(*) begin
  11. if(sel == 1'b0)
  12. out1 = a;
  13. else
  14. out1 = b;
  15. end
  16. //这是组合逻辑电路,组合逻辑常用阻塞赋值,=号
  17. 首先*表示通配符,这里的敏感变量包括sel,a,b这里,这里直接用*号代表所有的敏感变变量,
  18. 当然写成@(sel,a,b)也可以,为了省事可以直接写成*
  19. 再次强调,always语句块中=等号左边必须是reg类型!!!
  20. 下面给一个时序逻辑电路举例:
  21. reg out1;
  22. always@(posedge clk or negedge rst_n)begin
  23. if(!rst_n)
  24. out1 <= 0;
  25. else if(sel == 1'b0)
  26. out1 <= a;
  27. else
  28. out1 <= b;
  29. end
  30. 时序逻辑常用非阻塞赋值,也就是<=号;
  31. 阻塞赋值和非阻塞赋值的具体区别以后会讲,这个超级无敌重要。。。。。。。。。。。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/441361
推荐阅读
相关标签
  

闽ICP备14008679号