diff options
| -rw-r--r-- | usrp2/top/u1e/u1e.ucf | 10 | ||||
| -rw-r--r-- | usrp2/top/u1e/u1e.v | 4 | ||||
| -rw-r--r-- | usrp2/top/u1e/u1e_core.v | 20 | 
3 files changed, 26 insertions, 8 deletions
diff --git a/usrp2/top/u1e/u1e.ucf b/usrp2/top/u1e/u1e.ucf index 27f507c6b..c39759d0b 100644 --- a/usrp2/top/u1e/u1e.ucf +++ b/usrp2/top/u1e/u1e.ucf @@ -105,11 +105,11 @@ NET "cgen_sclk"  LOC = "R5"  ;  NET "cgen_sen_b"  LOC = "T1"  ;  ## Clock gen control -#NET "cgen_st_status"  LOC = "D4"  ; -#NET "cgen_st_ld"  LOC = "D1"  ; -#NET "cgen_st_refmon"  LOC = "E1"  ; -#NET "cgen_sync_b"  LOC = "M1"  ; -#NET "cgen_ref_sel"  LOC = "J1"  ; +NET "cgen_st_status"  LOC = "D4"  ; +NET "cgen_st_ld"  LOC = "D1"  ; +NET "cgen_st_refmon"  LOC = "E1"  ; +NET "cgen_sync_b"  LOC = "M1"  ; +NET "cgen_ref_sel"  LOC = "J1"  ;  ## Debug pins  NET "debug_led<2>"  LOC = "T5"  ; diff --git a/usrp2/top/u1e/u1e.v b/usrp2/top/u1e/u1e.v index f1f491a97..ab270879c 100644 --- a/usrp2/top/u1e/u1e.v +++ b/usrp2/top/u1e/u1e.v @@ -16,6 +16,8 @@ module u1e     output db_sclk_rx, output db_sen_rx, output db_mosi_rx, input db_miso_rx,   // DB TX SPI     output sclk_codec, output sen_codec, output mosi_codec, input miso_codec,   // AD9862 main SPI     output cgen_sclk, output cgen_sen_b, output cgen_mosi, input cgen_miso,     // Clock gen SPI + +   input cgen_st_status, input cgen_st_ld, input cgen_st_refmon, output cgen_sync_b, output cgen_ref_sel,     output overo_gpio144, output overo_gpio145, output overo_gpio146, output overo_gpio147,  // Fifo controls     inout [15:0] io_tx, inout [15:0] io_rx @@ -44,6 +46,8 @@ module u1e  		     .EM_NWE(EM_NWE), .EM_NOE(EM_NOE),  		     .db_sda(db_sda), .db_scl(db_scl),  		     .sclk(sclk), .sen({cgen_sen_b,sen_codec,db_sen_tx,db_sen_rx}), .mosi(mosi), .miso(miso), +		     .cgen_st_status(cgen_st_status), .cgen_st_ld(cgen_st_ld),.cgen_st_refmon(cgen_st_refmon),  +		     .cgen_sync_b(cgen_sync_b), .cgen_ref_sel(cgen_ref_sel),  		     .tx_have_space(overo_gpio144), .tx_underrun(overo_gpio145),  		     .rx_have_data(overo_gpio146), .rx_overrun(overo_gpio147),  		     .io_tx(io_tx), .io_rx(io_rx) ); diff --git a/usrp2/top/u1e/u1e_core.v b/usrp2/top/u1e/u1e_core.v index c74d385ee..4f0227dfd 100644 --- a/usrp2/top/u1e/u1e_core.v +++ b/usrp2/top/u1e/u1e_core.v @@ -10,7 +10,8 @@ module u1e_core     inout db_sda, inout db_scl,     output sclk, output [7:0] sen, output mosi, input miso, -    + +   input cgen_st_status, input cgen_st_ld, input cgen_st_refmon, output cgen_sync_b, output cgen_ref_sel,        output tx_have_space, output tx_underrun, output rx_have_data, output rx_overrun,     inout [15:0] io_tx, inout [15:0] io_rx     ); @@ -151,13 +152,15 @@ module u1e_core     assign sc_ack = 0;   assign sd_ack = 0;   assign se_ack = 0;   assign sf_ack = 0;     // ///////////////////////////////////////////////////////////////////////////////////// -   // Slave 0, LEDs and Switches +   // Slave 0, Misc LEDs, Switches, controls     reg [15:0] 	 reg_fast, reg_slow;     localparam REG_FAST = 7'd4;     localparam REG_SWITCHES = 7'd6;     localparam REG_GPIOS = 7'd8; - +   localparam REG_CGEN_ST = 7'd9; +   localparam REG_CGEN_CTRL = 7'd10; +        reg [3:0] 	 reg_gpios;     always @(posedge wb_clk) @@ -168,8 +171,19 @@ module u1e_core       if(s0_cyc & s0_stb & s0_we & (s0_adr[6:0] == REG_GPIOS))         reg_gpios <= s0_dat_mosi; +   reg [1:0] 	 reg_cgen_ctrls; +    +   always @(posedge wb_clk) +     if(wb_rst) +       reg_cgen_ctrls <= 2'b11; +     else if(s0_cyc & s0_stb & s0_we & (s0_adr[6:0] == REG_CGEN_CTRL)) +       reg_cgen_ctrls <= s0_dat_mosi; +    +   assign {cgen_sync_b, cgen_ref_sel} = reg_cgen_ctrls; +        assign s0_dat_miso = (s0_adr[6:0] == REG_FAST) ? reg_fast :   			(s0_adr[6:0] == REG_SWITCHES) ? {5'b0,debug_pb[2:0],dip_sw[7:0]} : +			(s0_adr[6:0] == REG_CGEN_ST) ? {13'b0,cgen_st_status,cgen_st_ld,cgen_st_refmon} :  			16'hBEEF;     assign s0_ack = s0_stb & s0_cyc;  | 
