diff options
| -rw-r--r-- | usrp2/control_lib/fifo_to_wb.v | 34 | ||||
| -rw-r--r-- | usrp2/gpif/gpif.v | 9 | ||||
| -rw-r--r-- | usrp2/top/u1plus/u1plus_core.v | 14 | 
3 files changed, 50 insertions, 7 deletions
| diff --git a/usrp2/control_lib/fifo_to_wb.v b/usrp2/control_lib/fifo_to_wb.v new file mode 100644 index 000000000..fdc76f89e --- /dev/null +++ b/usrp2/control_lib/fifo_to_wb.v @@ -0,0 +1,34 @@ + +module fifo_to_wb +  (input clk, input reset, input clear, +   input [35:0] data_i, input src_rdy_i, output dst_rdy_o, +   output [35:0] data_o, output src_rdy_o, input dst_rdy_i, +   output [10:0] wb_adr_o, output [15:0] wb_dat_mosi, input [15:0] wb_dat_miso, +   output wb_sel_o, output wb_cyc_o, output wb_stb_o, output wb_we_o, input wb_ack_i, +   output [31:0] debug0, output [31:0] debug1); + +   wire [35:0] 	 ctrl_data, resp_data; +   wire 	 ctrl_src_rdy, ctrl_dst_rdy, resp_src_rdy, resp_dst_rdy; +    +   fifo_short #(.WIDTH(36)) ctrl_sfifo +     (.clk(clk), .reset(reset), .clear(clear), +      .datain(data_i), .src_rdy_i(src_rdy_i), .dst_rdy_o(dst_rdy_o), +      .dataout(ctrl_data), .src_rdy_o(ctrl_src_rdy), .dst_rdy_i(ctrl_dst_rdy)); + +   fifo_short #(.WIDTH(36)) resp_sfifo +     (.clk(clk), .reset(reset), .clear(clear), +      .datain(resp_data), .src_rdy_i(resp_src_rdy), .dst_rdy_o(resp_dst_rdy), +      .dataout(data_o), .src_rdy_o(src_rdy_o), .dst_rdy_i(dst_rdy_i)); +    +   // Loopback control packets +    +   assign resp_data = ctrl_data; +   assign resp_src_rdy = ctrl_src_rdy; +   assign ctrl_dst_rdy = resp_dst_rdy; + +   assign debug0 = ctrl_data[31:0]; +   assign debug1 = { ctrl_src_rdy, ctrl_dst_rdy, resp_src_rdy, resp_dst_rdy, ctrl_data[35:31] }; +   		   +endmodule // fifo_to_wb + +    diff --git a/usrp2/gpif/gpif.v b/usrp2/gpif/gpif.v index bd813126f..9697a7f8b 100644 --- a/usrp2/gpif/gpif.v +++ b/usrp2/gpif/gpif.v @@ -17,7 +17,7 @@ module gpif      output [35:0] tx_data_o, output tx_src_rdy_o, input tx_dst_rdy_i,      input [35:0] rx_data_i, input rx_src_rdy_i, output rx_dst_rdy_o, -    output [31:0] debug +    output [31:0] debug0, output [31:0] debug1      );     wire 	  WR = gpif_ctl[0]; @@ -105,5 +105,12 @@ module gpif     // ////////////////////////////////////////////////////////////////////     // FIFO to Wishbone interface +   fifo_to_wb fifo_to_wb +     (.clk(fifo_clk), .reset(fifo_rst), .clear(0), +      .data_i(ctrl_data), .src_rdy_i(ctrl_src_rdy), .dst_rdy_o(ctrl_dst_rdy), +      .data_o(resp_data), .src_rdy_o(resp_src_rdy), .dst_rdy_i(resp_dst_rdy), +      .wb_adr_o(), .wb_dat_mosi(), .wb_dat_miso(), +      .wb_sel_o(), .wb_cyc_o(), .wb_stb_o(), .wb_we_o(), .wb_ack_i(), +      .debug0(), .debug1());  endmodule // gpif diff --git a/usrp2/top/u1plus/u1plus_core.v b/usrp2/top/u1plus/u1plus_core.v index 3cdc74835..97064a561 100644 --- a/usrp2/top/u1plus/u1plus_core.v +++ b/usrp2/top/u1plus/u1plus_core.v @@ -54,7 +54,7 @@ module u1plus_core     wire [sw-1:0] m0_sel;     wire 	 m0_cyc, m0_stb, m0_we, m0_ack, m0_err, m0_rty; -   wire [31:0] 	 debug_gpmc; +   wire [31:0] 	 debug_gpmc, debug0, debug1;     wire [35:0] 	 tx_data, rx_data;     wire 	 tx_src_rdy, tx_dst_rdy, rx_src_rdy, rx_dst_rdy; @@ -75,7 +75,7 @@ module u1plus_core  	 .tx_data_o(tx_data), .tx_src_rdy_o(tx_src_rdy), .tx_dst_rdy_i(tx_dst_rdy),  	 .rx_data_i(rx_data), .rx_src_rdy_i(rx_src_rdy), .rx_dst_rdy_o(rx_dst_rdy), -	 .debug(debug_gpmc)); +	 .debug0(debug0), .debug1(debug1));     wire 	 rx_sof = rx_data[32];     wire 	 rx_eof = rx_data[33]; @@ -366,14 +366,14 @@ module u1plus_core     wire [31:0] 	atr_lines;     wire [31:0] 	debug_gpio_0, debug_gpio_1; -    +/*        nsgpio16LE        nsgpio16LE(.clk_i(wb_clk),.rst_i(wb_rst),  		.cyc_i(s4_cyc),.stb_i(s4_stb),.adr_i(s4_adr[3:0]),.we_i(s4_we),  		.dat_i(s4_dat_mosi),.dat_o(s4_dat_miso),.ack_o(s4_ack),  		.atr(atr_lines),.debug_0(debug_gpio_0),.debug_1(debug_gpio_1),  		.gpio( {io_tx,io_rx} ) ); - +*/     // /////////////////////////////////////////////////////////////////////////     // Settings Bus -- Slave #5 @@ -403,9 +403,11 @@ module u1plus_core     // /////////////////////////////////////////////////////////////////////////////////////     // Debug circuitry -   assign debug_clk = { 1'b0, clk_fpga }; -   assign debug = 0; +   assign debug_clk = { gpif_clk, clk_fpga }; +   assign debug = debug0;     assign debug_gpio_0 = 0;     assign debug_gpio_1 = 0; + +   assign {io_tx,io_rx} = debug1;  endmodule // u1plus_core | 
