|
| 1 | +`timescale 1ns / 1ps |
| 2 | + |
| 3 | +module Top( |
| 4 | + Clk_p , |
| 5 | + Clk_n , |
| 6 | + //Rx and Tx |
| 7 | + In_rx , |
| 8 | + Out_tx |
| 9 | + ); |
| 10 | +//--------------------------------------------------------------------------------------- |
| 11 | +// Parameter |
| 12 | +//--------------------------------------------------------------------------------------- |
| 13 | +parameter TCQ = 1 ; |
| 14 | + |
| 15 | +//--------------------------------------------------------------------------------------- |
| 16 | +// Port Define |
| 17 | +//--------------------------------------------------------------------------------------- |
| 18 | +input wire Clk_p ; |
| 19 | +input wire Clk_n ; |
| 20 | +//Rx and Tx |
| 21 | +input wire In_rx ; |
| 22 | +output wire Out_tx ; |
| 23 | + |
| 24 | +//--------------------------------------------------------------------------------------- |
| 25 | +// Signals |
| 26 | +//--------------------------------------------------------------------------------------- |
| 27 | +//ClkWid |
| 28 | +wire clk200m ; |
| 29 | +wire clk100m ; |
| 30 | +wire clk50m ; |
| 31 | +wire locked ; |
| 32 | +//RcvFifo |
| 33 | +wire [7:0] rcv_din ; |
| 34 | +wire rcv_wr_en ; |
| 35 | +wire rcv_full ; |
| 36 | +wire [5:0] rcv_wr_data_count ; |
| 37 | +wire [31:0] rcv_dout ; |
| 38 | +wire rcv_rd_en ; |
| 39 | +wire rcv_empty ; |
| 40 | +wire [3:0] rcv_rd_data_count ; |
| 41 | +//SndFifo |
| 42 | +wire [31:0] snd_din ; |
| 43 | +wire snd_wr_en ; |
| 44 | +wire snd_full ; |
| 45 | +wire [3:0] snd_wr_data_count ; |
| 46 | +wire [7:0] snd_dout ; |
| 47 | +wire snd_rd_en ; |
| 48 | +wire snd_empty ; |
| 49 | +wire [5:0] snd_rd_data_count ; |
| 50 | +//Computation |
| 51 | +wire comp_enable ; |
| 52 | +wire comp_done ; |
| 53 | + |
| 54 | +//--------------------------------------------------------------------------------------- |
| 55 | +// Instance |
| 56 | +//--------------------------------------------------------------------------------------- |
| 57 | +IBUFGDS InstClkTrans |
| 58 | +( |
| 59 | + .O(clk200m), |
| 60 | + .I(Clk_p), |
| 61 | + .IB(Clk_n) |
| 62 | +); |
| 63 | + |
| 64 | +ClkWiz InstClkWiz( |
| 65 | + .clk_out100m (clk100m ), // output clk_out100m |
| 66 | + .clk_out50m (clk50m ), // output clk_out50m |
| 67 | + .clk_in200m (clk200m ), // input clk_in100m |
| 68 | + .locked (locked ) |
| 69 | +); |
| 70 | + |
| 71 | +Uart InstUart( |
| 72 | + .Clk (clk100m ), |
| 73 | + .Rst (!locked ), |
| 74 | + //Rx and Tx |
| 75 | + .In_rx (In_rx ), |
| 76 | + .Out_tx (Out_tx ), |
| 77 | + //FIFO |
| 78 | + .In_rcv_wr_data_count (rcv_wr_data_count ), |
| 79 | + .In_rcv_full (rcv_full ), |
| 80 | + .Out_rcv_wr_en (rcv_wr_en ), |
| 81 | + .Out_rcv_din (rcv_din ), |
| 82 | + .In_snd_rd_data_count (snd_rd_data_count ), |
| 83 | + .In_snd_empty (snd_empty ), |
| 84 | + .Out_snd_rd_en (snd_rd_en ), |
| 85 | + .In_snd_dout (snd_dout ), |
| 86 | + //Computation |
| 87 | + .In_comp_done (comp_done ), |
| 88 | + .Out_comp_enable (comp_enable ) |
| 89 | +); |
| 90 | + |
| 91 | +RcvFifo InstRcvFifo( |
| 92 | + .rst (!locked ), // input wire rst |
| 93 | + .wr_clk (clk100m ), // input wire wr_clk |
| 94 | + .rd_clk (clk50m ), // input wire rd_clk |
| 95 | + .din (rcv_din ), // input wire [7 : 0] din |
| 96 | + .wr_en (rcv_wr_en ), // input wire wr_en |
| 97 | + .rd_en (rcv_rd_en ), // input wire rd_en |
| 98 | + .dout (rcv_dout ), // output wire [31 : 0] dout |
| 99 | + .full (rcv_full ), // output wire full |
| 100 | + .empty (rcv_empty ), // output wire empty |
| 101 | + .rd_data_count (rcv_rd_data_count ), // output wire [3 : 0] rd_data_count |
| 102 | + .wr_data_count (rcv_wr_data_count ) // output wire [5 : 0] wr_data_count |
| 103 | +); |
| 104 | + |
| 105 | +SndFifo InstSndFifo( |
| 106 | + .rst (!locked ), // input wire rst |
| 107 | + .wr_clk (clk50m ), // input wire wr_clk |
| 108 | + .rd_clk (clk100m ), // input wire rd_clk |
| 109 | + .din (snd_din ), // input wire [31 : 0] din |
| 110 | + .wr_en (snd_wr_en ), // input wire wr_en |
| 111 | + .rd_en (snd_rd_en ), // input wire rd_en |
| 112 | + .dout (snd_dout ), // output wire [7 : 0] dout |
| 113 | + .full (snd_full ), // output wire full |
| 114 | + .empty (snd_empty ), // output wire empty |
| 115 | + .rd_data_count (snd_rd_data_count ), // output wire [5 : 0] rd_data_count |
| 116 | + .wr_data_count (snd_wr_data_count ) // output wire [3 : 0] wr_data_count |
| 117 | +); |
| 118 | + |
| 119 | +Computation InstComputation( |
| 120 | + .Clk (clk50m ), |
| 121 | + .Rst (!locked ), |
| 122 | + .In_enable (comp_enable ), |
| 123 | + .Out_done (comp_done ), |
| 124 | + //FIFO |
| 125 | + .In_rcv_dout (rcv_dout ), |
| 126 | + .Out_rcv_rd_en (rcv_rd_en ), |
| 127 | + .Out_snd_din (snd_din ), |
| 128 | + .Out_snd_wr_en (snd_wr_en ) |
| 129 | +); |
| 130 | +//ILA |
| 131 | +TopIla InstTopIla( |
| 132 | + .clk (clk100m ), // input wire clk |
| 133 | + .probe0 (comp_enable ), // input wire [0:0] probe0 |
| 134 | + .probe1 (comp_done ), // input wire [0:0] probe1 |
| 135 | + .probe2 (rcv_dout ), // input wire [31:0] probe2 |
| 136 | + .probe3 (rcv_rd_en ), // input wire [0:0] probe3 |
| 137 | + .probe4 (snd_din ), // input wire [31:0] probe4 |
| 138 | + .probe5 (snd_wr_en ), // input wire [0:0] probe5 |
| 139 | + .probe6 (snd_empty ), // input wire [0:0] probe6 |
| 140 | + .probe7 (snd_rd_data_count ) // input wire [5:0] probe7 |
| 141 | + //.probe8 ( ), // input wire [0:0] probe8 |
| 142 | + //.probe9 ( ), // input wire [0:0] probe9 |
| 143 | + //.probe10 ( ), // input wire [0:0] probe10 |
| 144 | + //.probe11 ( ), // input wire [0:0] probe11 |
| 145 | + //.probe12 ( ), // input wire [0:0] probe12 |
| 146 | + //.probe13 ( ), // input wire [0:0] probe13 |
| 147 | + //.probe14 ( ), // input wire [0:0] probe14 |
| 148 | + //.probe15 ( ) // input wire [0:0] probe15 |
| 149 | +); |
| 150 | +//--------------------------------------------------------------------------------------- |
| 151 | +// Function Codes |
| 152 | +//--------------------------------------------------------------------------------------- |
| 153 | + |
| 154 | + |
| 155 | +//--------------------------------------------------------------------------------------- |
| 156 | +// FSM |
| 157 | +//--------------------------------------------------------------------------------------- |
| 158 | + |
| 159 | + |
| 160 | +endmodule |
| 161 | + |
0 commit comments