当前位置:   article > 正文

使用Verilog语言实现三-八译码器与八位全加器_用if语句和case语句描述3:8译码器

用if语句和case语句描述3:8译码器

【1】三-八译码器

(1)三八译码器真值表

 这张真值表看着复杂,其实采用条件判断语句就能轻松解决,但也得用到“{}”的知识,例如“{}”可以将多个二进制数组合成一个,下面的方法也要用到。

(2)if..else语法
  1. module _38(
  2. input wire a,b,c,
  3. output reg [7:0] out
  4. );
  5. always@(*)
  6. if({a, b, c}==3'b000)
  7. out=8'b0000_0001;
  8. else if( {a, b, c} ==3'b001)
  9. out=8'b0000_0010;
  10. else if( {a, b, c} ==3'b010)
  11. out=8'b0000_0100;
  12. else if( {a, b, c} ==3'b011)
  13. out=8'b0000_1000;
  14. else if( {a, b, c} ==3'b100)
  15. out=8'b0001_0000;
  16. else if( {a, b, c} ==3'b101)
  17. out=8'b0010_0000;
  18. else if( {a, b, c} ==3'b110)
  19. out=8'b0100_0000;
  20. else if( {a, b, c} ==3'b111)
  21. out=8'b1000_0000;
  22. endmodule

 以上的是。

(3)case语法
  1. module _38(
  2. input wire a,b,c,
  3. output reg [7:0] out
  4. );
  5. always@(*)
  6. case({a,b,c})
  7. 3'b000: out=8'b0000_0001;
  8. 3'b001: out=8'b0000_0010;
  9. 3'b010: out=8'b0000_0100;
  10. 3'b011: out=8'b0000_1000;
  11. 3'b100: out=8'b0001_0000;
  12. 3'b101: out=8'b0010_0000;
  13. 3'b110: out=8'b0100_0000;
  14. 3'b111: out=8'b1000_0000;
  15. endcase
  16. endmodule

 以上的是。

【2】八位全加器

(1)一位全加器

实现一位全加器有很多种方法,例如门电路法;不过我们这儿采用简化法,用自己对电路的了解来写代码。

  1. module one_add(
  2. input a,b,c,
  3. output wire ben,jin
  4. );
  5. assign ben=a^b^c;
  6. assign jin=(a&b)|(a&c)|(b&c);
  7. endmodule

其中的“ben”是全加器中的本位,“jin”是全加器中的进位,“a,b,c”是三个输入。 

(2)模块使用

用一位全加器模块组合实现八位全加器

  1. module _8add(
  2. input [7:0] a,b,
  3. input cin,
  4. output [7:0] c,
  5. output out
  6. );
  7. wire [7:1] tem;
  8. one_add (a[0],b[0],cin,c[0],tem[1]),
  9. (a[1],b[1],tem[1],c[1],tem[2]),
  10. (a[2],b[2],tem[2],c[2],tem[3]),
  11. (a[3],b[3],tem[3],c[3],tem[4]),
  12. (a[4],b[4],tem[4],c[4],tem[5]),
  13. (a[5],b[5],tem[5],c[5],tem[6]),
  14. (a[6],b[6],tem[6],c[6],tem[7]),
  15. (a[7],b[7],tem[7],c[7],out);
  16. endmodule

“a,b”为8位二进制输入,也就是相加的俩个二进制数;“cin”为从下进位的一位二进制数;“c”为相加结果输出;“out”为相加后的一位二进制进位;“tem”是为了继承每次计算后的进位并反馈给下一次的计算。

这种方法可以大幅度减少代码的篇幅,也很容易方便理解。

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

闽ICP备14008679号