Instantiated gps module
diff --git a/verilog/rtl/user_proj_example.v b/verilog/rtl/user_proj_example.v
index b33e032..a027c93 100644
--- a/verilog/rtl/user_proj_example.v
+++ b/verilog/rtl/user_proj_example.v
@@ -89,83 +89,61 @@
wire [3:0] wstrb;
wire [31:0] la_write;
- // WB MI A
- assign valid = wbs_cyc_i && wbs_stb_i;
- assign wstrb = wbs_sel_i & {4{wbs_we_i}};
- assign wbs_dat_o = rdata;
- assign wdata = wbs_dat_i;
-
- // IO
- assign io_out = count;
- assign io_oeb = {(`MPRJ_IO_PADS-1){rst}};
+ wire gps_clk ;
+ wire [1:0] gps_data_i ;
+ wire [1:0] gps_data_q ;
+ wire dll_sel ;
+ wire select_qmaxim ;
+ wire codeout , epochrx ;
// IRQ
assign irq = 3'b000; // Unused
- // LA
- assign la_data_out = {{(127-BITS){1'b0}}, count};
- // Assuming LA probes [63:32] are for controlling the count register
- assign la_write = ~la_oenb[63:32] & ~{BITS{valid}};
- // Assuming LA probes [65:64] are for controlling the count clk & reset
- assign clk = (~la_oenb[64]) ? la_data_in[64]: wb_clk_i;
- assign rst = (~la_oenb[65]) ? la_data_in[65]: wb_rst_i;
- counter #(
- .BITS(BITS)
- ) counter(
- .clk(clk),
- .reset(rst),
- .ready(wbs_ack_o),
- .valid(valid),
- .rdata(rdata),
- .wdata(wbs_dat_i),
- .wstrb(wstrb),
- .la_write(la_write),
- .la_input(la_data_in[63:32]),
- .count(count)
- );
+ //io_oeb is active low signal
+
+ assign gps_clk = io_in[18] ; // IO[18]
+ assign io_oeb[18]= 1'b1;
+
+ assign gps_data_i[0] = io_in[19] ; // IO[19]
+ assign io_oeb[19]= 1'b1;
+
+ assign gps_data_i[1] = io_in[20] ; // IO[20]
+ assign io_oeb[20]= 1'b1;
+
+ assign gps_data_q[0] = io_in[21] ; // IO[21]
+ assign io_oeb[21]= 1'b1;
+
+ assign gps_data_q[1] = io_in[22] ; // IO[22]
+ assign io_oeb[22]= 1'b1;
+
+ assign dll_sel = la_data_in[0] ;
+ assign select_qmaxim = la_data_in[1] ;
+ assign la_data_out[2] = codeout ;
+ assign la_data_out[3] = epochrx ;
+
+ gps_multichannel gps_engine_i (
+
+ .mclr (wb_rst_i),
+ .mclk (gps_clk ),
+ .adc2bit_i (gps_data_i),
+ .adc2bit_q (gps_data_q),
+ .codeout(codeout),
+ .epochrx(epochrx),
+ .dll_sel (dll_sel),
+ .select_qmaxim (select_qmaxim),
+ .wb_clk_i (wb_clk_i),
+ .wb_rst_i (wb_rst_i),
+ .wb_adr_i (wbs_adr_i),
+ .wb_dat_i (wbs_dat_i),
+ .wb_dat_o (wbs_dat_o),
+ .wb_we_i (wbs_we_i),
+ .wb_stb_i (wbs_stb_i),
+ .wb_cyc_i (wbs_cyc_i),
+ .wb_ack_o (wbs_ack_o)
+
+ );
endmodule
-module counter #(
- parameter BITS = 32
-)(
- input clk,
- input reset,
- input valid,
- input [3:0] wstrb,
- input [BITS-1:0] wdata,
- input [BITS-1:0] la_write,
- input [BITS-1:0] la_input,
- output ready,
- output [BITS-1:0] rdata,
- output [BITS-1:0] count
-);
- reg ready;
- reg [BITS-1:0] count;
- reg [BITS-1:0] rdata;
-
- always @(posedge clk) begin
- if (reset) begin
- count <= 0;
- ready <= 0;
- end else begin
- ready <= 1'b0;
- if (~|la_write) begin
- count <= count + 1;
- end
- if (valid && !ready) begin
- ready <= 1'b1;
- rdata <= count;
- if (wstrb[0]) count[7:0] <= wdata[7:0];
- if (wstrb[1]) count[15:8] <= wdata[15:8];
- if (wstrb[2]) count[23:16] <= wdata[23:16];
- if (wstrb[3]) count[31:24] <= wdata[31:24];
- end else if (|la_write) begin
- count <= la_write & la_input;
- end
- end
- end
-
-endmodule
`default_nettype wire