diff options
Diffstat (limited to 'usrp2')
| -rw-r--r-- | usrp2/gpmc/gpmc_async.v | 8 | ||||
| -rw-r--r-- | usrp2/top/u1e/u1e_core.v | 20 | 
2 files changed, 18 insertions, 10 deletions
diff --git a/usrp2/gpmc/gpmc_async.v b/usrp2/gpmc/gpmc_async.v index 22e56cc89..b1a545907 100644 --- a/usrp2/gpmc/gpmc_async.v +++ b/usrp2/gpmc/gpmc_async.v @@ -19,6 +19,8 @@ module gpmc_async     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, +   input [15:0] tx_frame_len, output [15:0] rx_frame_len, +        output [31:0] debug     ); @@ -40,9 +42,7 @@ module gpmc_async     wire [17:0] 	tx18_data, tx18b_data;     wire 	tx18_src_rdy, tx18_dst_rdy, tx18b_src_rdy, tx18b_dst_rdy; -   wire [15:0] 	tx_fifo_space, tx_frame_len; -    -   assign tx_frame_len = 10; +   wire [15:0] 	tx_fifo_space;     gpmc_to_fifo_async gpmc_to_fifo_async       (.EM_D(EM_D), .EM_NBE(EM_NBE), .EM_NCS(EM_NCS4), .EM_NWE(EM_NWE), @@ -66,7 +66,7 @@ module gpmc_async     wire [17:0] 	rx18_data, rx18b_data;     wire 	rx18_src_rdy, rx18_dst_rdy, rx18b_src_rdy, rx18b_dst_rdy; -   wire [15:0] 	rx_fifo_space, rx_frame_len; +   wire [15:0] 	rx_fifo_space;     fifo36_to_fifo18 f18_to_f36       (.clk(fifo_clk), .reset(fifo_rst), .clear(0), diff --git a/usrp2/top/u1e/u1e_core.v b/usrp2/top/u1e/u1e_core.v index 40950bf82..30396de3a 100644 --- a/usrp2/top/u1e/u1e_core.v +++ b/usrp2/top/u1e/u1e_core.v @@ -34,6 +34,8 @@ module u1e_core     wire [35:0] 	 tx_data, rx_data;     wire 	 tx_src_rdy, tx_dst_rdy, rx_src_rdy, rx_dst_rdy; +   reg [15:0] 	 tx_frame_len; +   wire [15:0] 	 rx_frame_len;     gpmc_async gpmc (.arst(wb_rst),  		    .EM_CLK(EM_CLK), .EM_D(EM_D), .EM_A(EM_A), .EM_NBE(EM_NBE), @@ -51,7 +53,8 @@ module u1e_core  		    .fifo_clk(wb_clk), .fifo_rst(wb_rst),  		    .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), -		     + +		    .tx_frame_len(tx_frame_len), .rx_frame_len(rx_frame_len),  		    .debug(debug_gpmc));     fifo_cascade #(.WIDTH(36), .SIZE(9)) loopback_fifo @@ -133,11 +136,13 @@ module u1e_core     reg [15:0] 	 reg_leds, reg_cgen_ctrl, reg_test; -   localparam REG_LEDS = 7'd0;      // out -   localparam REG_SWITCHES = 7'd2;  // in -   localparam REG_CGEN_CTRL = 7'd4; // out -   localparam REG_CGEN_ST = 7'd6;   // in -   localparam REG_TEST = 7'd8;      // out +   localparam REG_LEDS = 7'd0;         // out +   localparam REG_SWITCHES = 7'd2;     // in +   localparam REG_CGEN_CTRL = 7'd4;    // out +   localparam REG_CGEN_ST = 7'd6;      // in +   localparam REG_TEST = 7'd8;         // out +   localparam REG_RX_FRAMELEN = 7'd10; // out +   localparam REG_TX_FRAMELEN = 7'd12; // in     always @(posedge wb_clk)       if(wb_rst) @@ -155,6 +160,8 @@ module u1e_core  	     reg_cgen_ctrl <= s0_dat_mosi;  	   REG_TEST :  	     reg_test <= s0_dat_mosi; +	   REG_TX_FRAMELEN : +	     tx_frame_len <= s0_dat_mosi;  	 endcase // case (s0_adr[6:0])     assign { debug_led[2],debug_led[0],debug_led[1] } = reg_leds;  // LEDs are arranged funny on board @@ -166,6 +173,7 @@ module u1e_core  			(s0_adr[6:0] == REG_CGEN_CTRL) ? reg_cgen_ctrl :  			(s0_adr[6:0] == REG_CGEN_ST) ? {13'b0,cgen_st_status,cgen_st_ld,cgen_st_refmon} :  			(s0_adr[6:0] == REG_TEST) ? reg_test : +			(s0_adr[6:0] == REG_RX_FRAMELEN) ? rx_frame_len :  			16'hBEEF;     assign s0_ack = s0_stb & s0_cyc;  | 
