当前位置:   article > 正文

Verilog 38译码器

38译码器

#学习记录#

38译码器概述

38译码器:输入的3位二进制代码共有8种状态,译码器将每个输入代码翻译成对应的一根输出线上的高低电平信号。38译码器的框图如图1所示,真值表如图2所示。

图1  38译码器框图

图2  38译码器真值表

2  Verilog 描述38译码器

2.1  代码示例

  1. `timescale 1ns / 1ps
  2. //
  3. // Company:
  4. // Engineer: Mr-pn-junction
  5. //
  6. // Create Date: 2023/09/22 08:07:42
  7. // Design Name:
  8. // Module Name: decoder_38
  9. // Project Name:
  10. // Target Devices:
  11. // Tool Versions:
  12. // Description:
  13. //
  14. // Dependencies:
  15. //
  16. // Revision:
  17. // Revision 0.01 - File Created
  18. // Additional Comments:
  19. //
  20. //
  21. module decoder_38(
  22. input wire [2:0] data_in,
  23. input wire [2:0] en,
  24. output reg [7:0] data_out
  25. );
  26. always @(*) begin
  27. if(en[0]||en[1]||!en[2])
  28. data_out = 8'b11111111;
  29. else
  30. case(data_in)
  31. 3'b000 : data_out=8'b11111110;
  32. 3'b001 : data_out=8'b11111101;
  33. 3'b010 : data_out=8'b11111011;
  34. 3'b011 : data_out=8'b11110111;
  35. 3'b100 : data_out=8'b11101111;
  36. 3'b101 : data_out=8'b11011111;
  37. 3'b110 : data_out=8'b10111111;
  38. 3'b111 : data_out=8'b01111111;
  39. endcase
  40. end
  41. endmodule

2.2  testbench

  1. `timescale 1ns / 1ps
  2. //
  3. // Company:
  4. // Engineer: Mr-pn-junction
  5. //
  6. // Create Date: 2023/09/22 10:31:12
  7. // Design Name:
  8. // Module Name: de_tb
  9. // Project Name:
  10. // Target Devices:
  11. // Tool Versions:
  12. // Description:
  13. //
  14. // Dependencies:
  15. //
  16. // Revision:
  17. // Revision 0.01 - File Created
  18. // Additional Comments:
  19. //
  20. //
  21. module de_tb();
  22. reg [2:0] data_in;
  23. reg [2:0] en;
  24. wire [7:0] data_out;
  25. decoder_38 tb(
  26. .data_in(data_in),
  27. .en (en),
  28. .data_out (data_out)
  29. );
  30. initial begin
  31. en = 3'b100; data_in = 000;
  32. #5
  33. en = 3'b100; data_in = 001;
  34. #5
  35. en = 3'b100; data_in = 010;
  36. #5
  37. en = 3'b100; data_in = 011;
  38. #5
  39. en = 3'b100; data_in = 100;
  40. #5
  41. en = 3'b100; data_in = 101;
  42. #5
  43. en = 3'b100; data_in = 110;
  44. #5
  45. en = 3'b100; data_in = 111;
  46. #5
  47. en = 3'b101; data_in = 000;
  48. end
  49. endmodule

3  仿真结果

图3  仿真结果

参考文献

[1]  数字电子技术第六版. 清华大学电子学教研组.高等教育出版社. 2016-04.

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

闽ICP备14008679号