当前位置:   article > 正文

Verilog新手上路(实验报告)_verilog实验报告心得体会

verilog实验报告心得体会

实验报告目录


前言

本人Verilog新手上路,以下是一些基础模块,实验中肯定会出现差错,欢迎指正。


一、多路选择器

1.4选1MUX

代码如下:

  1. //选择器(mux4-1)的代码,
  2. module mux(
  3. IN0 , // input 1
  4. IN1 , // input 2
  5. IN2 , // input 3
  6. IN3 , // input 4
  7. SEL , // 选择
  8. OUT ); // 输出
  9. parameter WL = 16; // 输入输出数据信号位宽
  10. input [WL-1:0] IN0, IN1, IN2, IN3;// 选择器的两个输入数据信号
  11. input [1:0] SEL; // 通道选通的控制信号
  12. output[WL-1:0] OUT; // 选择器的输入数据信号
  13. reg [WL-1:0] OUT;
  14. // 生成组合逻辑的代码
  15. always @ (IN0 or IN1 or IN2 or IN3 or SEL) begin
  16. case(SEL)
  17. 2'b00: OUT = IN0;
  18. 2'b01: OUT = IN1;
  19. 2'b10: OUT = IN2;
  20. 2'b11: OUT = IN3;
  21. endcase
  22. end
  23. endmodule
  24. // endmodule mux

2.波形仿真

其中,资源消耗是2选1MUX的两倍。(编译报告显示:4选1MUX使用逻辑总元件数为32,2选1MUX使用逻辑总元件数为16)


二、交叉开关

1.4*4路交叉开关

代码如下:

  1. // module top, a 4x4 crossbar switch circuit
  2. module crossbar(
  3. IN0 , // input 1
  4. IN1 , // input 2
  5. IN2 , // input 3
  6. IN3 , // input 4
  7. SEL0 , // select the output0 source
  8. SEL1 , // select the output1 source
  9. SEL2 , // select the output2 sourse
  10. SEL3 , // select the output3 sourse
  11. OUT0 , // output data 0
  12. OUT1 , // output data 1
  13. OUT2 , // output data 2
  14. OUT3 ); // output data 3
  15. parameter WL = 2;
  16. input [WL-1:0] IN0, IN1, IN2, IN3;
  17. input [1:0]SEL0, SEL1, SEL2, SEL3;
  18. output[WL-1:0] OUT0, OUT1, OUT2, OUT3;
  19. reg [WL-1:0] OUT0, OUT1, OUT2, OUT3;
  20. // get the OUT0
  21. always @ (IN0 or IN1 or IN2 or IN3 or SEL0) begin
  22. case(SEL0)
  23. 2'b00: OUT0 = IN0;
  24. 2'b01: OUT0 = IN1;
  25. 2'b10: OUT0 = IN2;
  26. 2'b11: OUT0 = IN3;
  27. endcase
  28. end
  29. // get the OUT1
  30. always @ (IN0 or IN1 or IN2 or IN3 or SEL1) begin
  31. case(SEL1)
  32. 2'b00: OUT1 = IN0;
  33. 2'b01: OUT1 = IN1;
  34. 2'b10: OUT1 = IN2;
  35. 2'b11: OUT1 = IN3;
  36. endcase
  37. end
  38. // get the OUT2
  39. always @ (IN0 or IN1 or IN2 or IN3 or SEL2) begin
  40. case(SEL2)
  41. 2'b00: OUT2 = IN0;
  42. 2'b01: OUT2 = IN1;
  43. 2'b10: OUT2 = IN2;
  44. 2'b11: OUT2 = IN3;
  45. endcase
  46. end
  47. // get the OUT3
  48. always @ (IN0 or IN1 or IN2 or IN3 or SEL3) begin
  49. case(SEL3)
  50. 2'b00: OUT3 = IN0;
  51. 2'b01: OUT3 = IN1;
  52. 2'b10: OUT3 = IN2;
  53. 2'b11: OUT3 = IN3;
  54. endcase
  55. end
  56. endmodule
  57. // endmodule top

2.RTL图

4*4交叉开关:编译报告显示,使用16个逻辑总元件

2*2交叉

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

闽ICP备14008679号