00001 00036 module Top 00037 #( 00038 parameter ID_CONFIG = 8'h00, 00039 parameter RV_CONFIG = 8'h01 00040 ) 00041 ( 00042 input logic ck, 00043 input logic reset_N, 00044 output logic[31:0] result 00045 ); 00046 00047 logic[7:0] counter; 00048 logic[15:0] encoded; 00049 logic coderenable; 00050 logic ckhalf; 00051 00054 logic syncHigh; 00055 logic syncLow; 00056 00057 00058 00059 `include "Top_Parameters.sv" 00060 00061 always_ff @ (posedge ck or negedge reset_N) begin: enable_encoding 00062 if (~reset_N) 00063 coderenable <= 0; 00064 else 00065 coderenable <= 1; 00066 end : enable_encoding 00067 00068 00069 00074 Gateclock u_Gateclock( 00075 .ckin (ck), 00076 .reset_N (reset_N), 00077 .ckout (ckhalf) 00078 ); 00079 00080 Counter u_Counter( 00081 .count (counter), 00082 .ck (ckhalf), 00083 .reset_N (reset_N) 00084 ); 00085 00086 Decoder u_decoderLow( 00087 .result (result[15:0]), 00088 .in (counter[3:0]), 00089 .enable (coderenable), 00090 .sync (syncLow) 00091 ); 00092 00093 Decoder u_decoderHigh( 00094 .result (result[31:16]), 00095 .in (counter[7:4]), 00096 .enable (coderenable), 00097 .sync (syncHigh) 00098 ); 00099 00100 endmodule : Top 00101 00102 00103