Advertisement
Guest User

Untitled

a guest
Jun 19th, 2018
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.04 KB | None | 0 0
  1. `timescale 1ms / 1us
  2.  
  3. ////////////////////////////////////////////////////////////////////////////////
  4. // Company:
  5. // Engineer:
  6. //
  7. // Create Date: 17:09:08 06/09/2018
  8. // Design Name: sterowanie
  9. // Module Name: /home/ise/Desktop/fpga/zbiorniczek/symulacja.v
  10. // Project Name: zbiorniczek
  11. // Target Device:
  12. // Tool versions:
  13. // Description:
  14. //
  15. // Verilog Test Fixture created by ISE for module: sterowanie
  16. //
  17. // Dependencies:
  18. //
  19. // Revision:
  20. // Revision 0.01 - File Created
  21. // Additional Comments:
  22. //
  23. ////////////////////////////////////////////////////////////////////////////////
  24.  
  25. module symulacja;
  26.  
  27. // Inputs
  28. reg CLK;
  29. reg RST;
  30. reg X1;
  31. reg X2;
  32.  
  33. // Outputs
  34. wire Z1;
  35. wire Z2;
  36. wire Z3;
  37. wire M;
  38. wire [2:0] _ST;
  39. wire [2:0] _ST_previous;
  40. wire [7:0] _tim1;
  41. wire [7:0] _tim2;
  42.  
  43. // Instantiate the Unit Under Test (UUT)
  44. sterowanie uut (
  45. .CLK(CLK),
  46. .RST(RST),
  47. .X1(X1),
  48. .X2(X2),
  49. .Z1(Z1),
  50. .Z2(Z2),
  51. .Z3(Z3),
  52. .M(M),
  53. ._ST(_ST),
  54. ._ST_previous(_ST_previous),
  55. ._tim1(_tim1),
  56. ._tim2(_tim2)
  57. );
  58.  
  59. always #50 CLK=~CLK;
  60.  
  61. initial begin
  62. // Initialize Inputs
  63. CLK = 0;
  64. RST = 0;
  65. X1 = 0;
  66. X2 = 0;
  67.  
  68. #1000;
  69. RST = 1;
  70. #5000;
  71. X1 = 1;
  72. #1000;
  73. X2 = 1;
  74. #11000;
  75. X2 = 0;
  76. #3000;
  77. X1=0;
  78. #1000;
  79. X1=1;
  80. #1000;
  81. X2=1;
  82. #12000;
  83. X2 = 0;
  84. #2000;
  85. X1 = 0;
  86.  
  87. end
  88.  
  89. endmodule
  90.  
  91. -------
  92.  
  93. `timescale 1ns / 1ps
  94. //////////////////////////////////////////////////////////////////////////////////
  95. // Company:
  96. // Engineer:
  97. //
  98. // Create Date: 16:42:41 06/09/2018
  99. // Design Name:
  100. // Module Name: sterowanie
  101. // Project Name:
  102. // Target Devices:
  103. // Tool versions:
  104. // Description:
  105. //
  106. // Dependencies:
  107. //
  108. // Revision:
  109. // Revision 0.01 - File Created
  110. // Additional Comments:
  111. //
  112. //////////////////////////////////////////////////////////////////////////////////
  113. module sterowanie(input CLK, RST, X1, X2,
  114. output reg Z1, Z2, Z3, M,
  115. output [2:0] _ST,
  116. output [2:0] _ST_previous,
  117. output [7:0] _tim1,
  118. output [7:0] _tim2
  119. );
  120.  
  121. reg [2:0] ST;
  122. reg [2:0] ST_previous;
  123. reg [7:0] tim1;
  124. reg [7:0] tim2;
  125.  
  126. always@(posedge CLK)
  127. if(~RST)
  128. begin ST<=0; Z1<=0; Z2<=0; Z3<=0; M<=0; tim1=30; end
  129. else
  130. begin
  131. case(ST)
  132. 0: begin Z1<=1; Z2<=0; Z3<=0; M<=0;
  133. if(!tim1) begin tim1=10; ST_previous<=0; ST<=1; end
  134. else
  135. if(X2) begin tim1=10; tim2=100; ST<=3; end
  136. end
  137. 1: begin Z1<=0; Z2<=0; Z3<=0; M<=0;
  138. if(!tim1 && ST_previous==0) begin tim1=30; ST<=2; ST_previous=1; end
  139. else
  140. if(!tim1 && ST_previous==2) begin tim1=30; ST<=0; ST_previous=1; end
  141. end
  142. 2: begin Z1<=0; Z2<=1; Z3<=0; M<=0;
  143. if(!tim1) begin tim1=10; ST_previous<=2; ST<=1; end
  144. else
  145. if(X2) begin tim1=10; tim2=100; ST<=3; end
  146. end
  147. 3: begin Z1<=0; Z2<=0; Z3<=0; M<=1;
  148. if(!tim1) begin tim1=10; ST_previous<=3; ST<=4; end
  149. else
  150. if(!tim2) begin tim1=20; ST_previous<=4; ST<=5; end
  151. end
  152. 4: begin Z1<=0; Z2<=0; Z3<=0; M<=0;
  153. if(!tim1) begin tim1=10; ST_previous<=4; ST<=3; end
  154. else
  155. if(!tim2) begin tim1=20; ST_previous<=4; ST<=5; end
  156. end
  157. 5: begin Z1<=0; Z2<=0; Z3<=1; M<=0;
  158. if(!tim1) begin tim1=10; ST_previous<=5; ST<=6; end
  159. else
  160. if(!X1) begin tim1=30; ST_previous<=5; ST<=0; end
  161. end
  162. 6: begin Z1<=0; Z2<=0; Z3<=0; M<=0;
  163. if(!tim1) begin tim1=20; ST_previous<=6; ST<=5; end
  164. end
  165. endcase
  166.  
  167. if(tim1) tim1=tim1-1;
  168. if(tim2) tim2=tim2-1;
  169. end
  170.  
  171. assign _ST=ST;
  172. assign _ST_previous=ST_previous;
  173. assign _tim1=tim1;
  174. assign _tim2=tim2;
  175.  
  176. endmodule
  177.  
  178. -----------
  179.  
  180. NET "X1" LOC = "V8" | IOSTANDARD = LVTTL | PULLUP ;
  181. NET "X2" LOC = "U10" | IOSTANDARD = LVTTL | PULLUP ;
  182.  
  183. NET "Z1" LOC = "U19" | IOSTANDARD = LVTTL | SLEW = QUIETIO | DRIVE = 4 ;
  184. NET "Z2" LOC = "U20" | IOSTANDARD = LVTTL | SLEW = QUIETIO | DRIVE = 4 ;
  185. NET "Z3" LOC = "T19" | IOSTANDARD = LVTTL | SLEW = QUIETIO | DRIVE = 4 ;
  186. NET "M" LOC = "R20" | IOSTANDARD = LVTTL | SLEW = QUIETIO | DRIVE = 4 ;
  187.  
  188. NET "CLK" LOC = "E12" | IOSTANDARD = LVCMOS33 ;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement