Advertisement
Guest User

Untitled

a guest
Feb 24th, 2019
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //////////////////////////////////////////////////////////////////////////////////
  2. // Data pattern injector for reducing edges rate
  3. //////////////////////////////////////////////////////////////////////////////////
  4.  
  5. module restreamer(clk, reset, in, out);
  6.  
  7. input clk;              //Counter clock, must be 3*input data clock
  8. input reset;            //Reset input active high
  9. input wire in;    //Input data
  10. output logic [3:0] out;       //Output data
  11.    
  12. logic [2:0] data_in_counter;
  13.  
  14. logic [6:0] data_temp;
  15. logic [6:0] data;
  16.  
  17.  
  18. //////////////////////////////////////////////////////////////////////////////////
  19. always @ (posedge clk) begin
  20.     data_temp <= {data_temp[5:0], in};
  21.         if(data_in_counter == 3) begin
  22.             data <= data_temp;
  23.             data_in_counter <= 3'b0;
  24.         end else begin
  25.             data_in_counter <= data_in_counter + 1'b1;
  26.         end
  27. end
  28.  
  29. restreamer_retransmiter retrans0(
  30. .clk(clk),
  31. .reset(1'b0),
  32. .data(data[3:0]),
  33. .out(out[0]),
  34. .data_in_counter(data_in_counter)
  35. );
  36.  
  37. restreamer_retransmiter retrans1(
  38. .clk(clk),
  39. .reset(1'b0),
  40. .data(data[4:1]),
  41. .out(out[1]),
  42. .data_in_counter(data_in_counter)
  43. );
  44.  
  45. restreamer_retransmiter retrans2(
  46. .clk(clk),
  47. .reset(1'b0),
  48. .data(data[5:2]),
  49. .out(out[2]),
  50. .data_in_counter(data_in_counter)
  51. );
  52.  
  53. restreamer_retransmiter retrans3(
  54. .clk(clk),
  55. .reset(1'b0),
  56. .data(data[6:3]),
  57. .out(out[3]),
  58. .data_in_counter(data_in_counter)
  59. );
  60.  
  61. endmodule
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement