Advertisement
Guest User

Untitled

a guest
Jan 3rd, 2024
30
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.68 KB | None | 0 0
  1. module test(
  2. in wire clk,
  3.  
  4. in wire read_strobe,
  5.  
  6. out reg [3:0] addr,
  7. out reg read_enable,
  8. in wire [7:0] data
  9. );
  10.  
  11. localparam IDLE = 1'd 0;
  12. localparam READ = 1'd 1;
  13.  
  14. reg state;
  15.  
  16. reg [31:0] buffer;
  17. reg [1:0] read_counter;
  18.  
  19. always @(posedge clk) begin
  20. addr <= 4'b 0;
  21. read_counter <= 2'b 0;
  22.  
  23. case (state)
  24. IDLE: begin
  25. if (!read_strobe)
  26. state <= READ;
  27. end
  28.  
  29. READ: begin
  30. buffer <= {buffer[31:8], data};
  31. read_counter <= read_counter + 2'b 1;
  32. if (&read_counter)
  33. state <= IDLE;
  34. end
  35. endcase
  36. end
  37.  
  38. always @(*) begin
  39. read_enable = 1'b 0;
  40.  
  41. case (state)
  42. IDLE: begin
  43. end
  44.  
  45. READ: begin
  46. read_enable = 1'b 1;
  47. end
  48. endcase
  49. end
  50.  
  51. endmodule
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement