Guest User

Untitled

a guest
Jun 24th, 2018
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.56 KB | None | 0 0
  1. `timescale 1ns / 1ps
  2. module Drive_74595(Clock, Data_In, Shift, Latch, Data_Out);
  3. //----------------------------CONTROL SIGNALS-----------------------------------
  4. input Clock;
  5. input [7:0] Data_In; // 8-bit input data
  6. output Shift; // Register CLK, pushes the FIFO data to the driver outputs
  7. output Latch; // Positive Edge Triggered Shift Register CLK
  8. output Data_Out; // The serial data output
  9. reg [7:0] Clk_Count;
  10. reg R_Shift, R_Latch, R_DataO;
  11. //=====================================================
  12. always @ ( posedge Clock )
  13. begin
  14. Clk_Count <= Clk_Count + 1;
  15. if( Clk_Count > 20 ) begin
  16. Clk_Count <= 0;
  17. end
  18. //----------------------------------------------
  19. if(Clk_Count == 0) begin
  20. R_Shift <= 0;
  21. R_Latch <= 0;
  22. R_DataO <= Data_In[0];
  23. end
  24. if(Clk_Count == 1) begin
  25. R_Shift <= 1;
  26. R_Latch <= 0;
  27. R_DataO <= Data_In[0];
  28. end
  29. //----------------------------------------------
  30. if(Clk_Count == 2) begin
  31. R_Shift <= 0;
  32. R_Latch <= 0;
  33. R_DataO <= Data_In[1];
  34. end
  35. if(Clk_Count == 3) begin
  36. R_Shift <= 1;
  37. R_Latch <= 0;
  38. R_DataO <= Data_In[1];
  39. end
  40. //----------------------------------------------
  41. if(Clk_Count == 4) begin
  42. R_Shift <= 0;
  43. R_Latch <= 0;
  44. R_DataO <= Data_In[2];
  45. end
  46. if(Clk_Count == 5) begin
  47. R_Shift <= 1;
  48. R_Latch <= 0;
  49. R_DataO <= Data_In[2];
  50. end
  51. //----------------------------------------------
  52. if(Clk_Count == 6) begin
  53. R_Shift <= 0;
  54. R_Latch <= 0;
  55. R_DataO <= Data_In[3];
  56. end
  57. if(Clk_Count == 7) begin
  58. R_Shift <= 1;
  59. R_Latch <= 0;
  60. R_DataO <= Data_In[3];
  61. end
  62. //----------------------------------------------
  63. if(Clk_Count == 8) begin
  64. R_Shift <= 0;
  65. R_Latch <= 0;
  66. R_DataO <= Data_In[4];
  67. end
  68. if(Clk_Count == 9) begin
  69. R_Shift <= 1;
  70. R_Latch <= 0;
  71. R_DataO <= Data_In[4];
  72. end
  73. //----------------------------------------------
  74. if(Clk_Count == 10) begin
  75. R_Shift <= 0;
  76. R_Latch <= 0;
  77. R_DataO <= Data_In[5];
  78. end
  79. if(Clk_Count == 11) begin
  80. R_Shift <= 1;
  81. R_Latch <= 0;
  82. R_DataO <= Data_In[5];
  83. end
  84. //----------------------------------------------
  85. if(Clk_Count == 12) begin
  86. R_Shift <= 0;
  87. R_Latch <= 0;
  88. R_DataO <= Data_In[6];
  89. end
  90. if(Clk_Count == 13) begin
  91. R_Shift <= 1;
  92. R_Latch <= 0;
  93. R_DataO <= Data_In[6];
  94. end
  95. //----------------------------------------------
  96. if(Clk_Count == 14) begin
  97. R_Shift <= 0;
  98. R_Latch <= 0;
  99. R_DataO <= Data_In[7];
  100. end
  101. if(Clk_Count == 15) begin
  102. R_Shift <= 1;
  103. R_Latch <= 0;
  104. R_DataO <= Data_In[7];
  105. end
  106. //----------------------------------------------
  107. if(Clk_Count == 16) begin
  108. R_Shift <= 0;
  109. R_Latch <= 0;
  110. R_DataO <= 0;
  111. end
  112. if(Clk_Count == 17) begin
  113. R_Shift <= 0;
  114. R_Latch <= 1;
  115. R_DataO <= 0;
  116. end
  117. //----------------------------------------------
  118. end
  119. assign Shift = R_Shift;
  120. assign Latch = R_Latch;
  121. assign Data_Out = R_DataO;
  122. endmodule
Add Comment
Please, Sign In to add comment