diff options
author | Martin Braun <martin.braun@ettus.com> | 2014-10-07 11:25:20 +0200 |
---|---|---|
committer | Martin Braun <martin.braun@ettus.com> | 2014-10-07 11:25:20 +0200 |
commit | fd3e84941de463fa1a7ebab0a69515b4bf2614cd (patch) | |
tree | 3fa721a13d41d2c0451d663a59a220a38fd5e614 /fpga/usrp3/top/b200/b200.v | |
parent | 3b66804e41891e358c790b453a7a59ec7462dba4 (diff) | |
download | uhd-fd3e84941de463fa1a7ebab0a69515b4bf2614cd.tar.gz uhd-fd3e84941de463fa1a7ebab0a69515b4bf2614cd.tar.bz2 uhd-fd3e84941de463fa1a7ebab0a69515b4bf2614cd.zip |
Removed copy of FPGA source files.
Diffstat (limited to 'fpga/usrp3/top/b200/b200.v')
-rw-r--r-- | fpga/usrp3/top/b200/b200.v | 285 |
1 files changed, 0 insertions, 285 deletions
diff --git a/fpga/usrp3/top/b200/b200.v b/fpga/usrp3/top/b200/b200.v deleted file mode 100644 index 585d5030e..000000000 --- a/fpga/usrp3/top/b200/b200.v +++ /dev/null @@ -1,285 +0,0 @@ -// -// Copyright 2013 Ettus Research LLC -// - - -/*********************************************************** - * B200 Module Declaration - **********************************************************/ -module b200 ( - // SPI Interfaces - output cat_ce, - input cat_miso, - output cat_mosi, - output cat_sclk, - - input fx3_ce, - output fx3_miso, - input fx3_mosi, - input fx3_sclk, - - output pll_ce, - output pll_mosi, - output pll_sclk, - - // UART - input FPGA_RXD0, // These pins goto 3 pin 0.1" header on B2x0 and - output FPGA_TXD0, // carry FX3 UART. - - // Catalina Controls - output codec_enable, - output codec_en_agc, - output codec_reset, - output codec_sync, - output codec_txrx, - output [3:0] codec_ctrl_in, // These should be outputs - input [7:0] codec_ctrl_out, // MUST BE INPUT - - // Catalina Data - input codec_data_clk_p, // Clock from CAT (RX) - output codec_fb_clk_p, // Clock to CAT (TX) - input [11:0] rx_codec_d, - output [11:0] tx_codec_d, - input rx_frame_p, - output tx_frame_p, - - input cat_clkout_fpga, - - //always on 40MHz clock - input codec_main_clk_p, - input codec_main_clk_n, - - // Debug Bus - output [31:0] debug, - output [1:0] debug_clk, - - // GPIF, FX3 Slave FIFO - output IFCLK, // pclk - input FX3_EXTINT, - output GPIF_CTL0, // n_slcs - output GPIF_CTL1, // n_slwr - output GPIF_CTL2, // n_sloe - output GPIF_CTL3, // n_slrd - output GPIF_CTL7, // n_pktend - input GPIF_CTL4, // slfifo_flags[0] - input GPIF_CTL5, // slfifo_flags[1] - input GPIF_CTL6, // Serial settings bus from FX3. SDA - input GPIF_CTL8, // Serial settings bus from FX3. SCL - output GPIF_CTL11, // slfifo_addr[1] - output GPIF_CTL12, // slfifo_addr[0] - inout [31:0] GPIF_D, - input GPIF_CTL9, // global_reset - - // GPS - input gps_lock, - output gps_rxd, - input gps_txd, - input gps_txd_nmea, - - // LEDS - output LED_RX1, - output LED_RX2, - output LED_TXRX1_RX, - output LED_TXRX1_TX, - output LED_TXRX2_RX, - output LED_TXRX2_TX, - - // Misc Hardware Control - output ref_sel, - input pll_lock, - input FPGA_CFG_CS, // Driven by FX3 gpio. - input AUX_PWR_ON, // Driven by FX3 gpio. - - // PPS - input PPS_IN_EXT, - input PPS_IN_INT, - - // RF Hardware Control - output SFDX1_RX, - output SFDX1_TX, - output SFDX2_RX, - output SFDX2_TX, - output SRX1_RX, - output SRX1_TX, - output SRX2_RX, - output SRX2_TX, - output tx_bandsel_a, - output tx_bandsel_b, - output tx_enable1, - output tx_enable2, - output rx_bandsel_a, - output rx_bandsel_b, - output rx_bandsel_c - ); - - wire reset_global = GPIF_CTL9; - - /////////////////////////////////////////////////////////////////////// - // generate clocks from always on codec main clk - /////////////////////////////////////////////////////////////////////// - wire bus_clk, gpif_clk, radio_clk; - wire locked; - b200_clk_gen gen_clks - ( - .CLK_IN1_40_P(codec_main_clk_p), .CLK_IN1_40_N(codec_main_clk_n), - .CLK_OUT1_40_int(), .CLK_OUT2_100_gpif(gpif_clk), .CLK_OUT3_100_bus(), - .RESET(reset_global), .LOCKED(locked) - ); - - // Bus Clock and GPIF Clock both same 100MHz clock. - assign bus_clk = gpif_clk; - - - //hold-off logic for clocks ready - reg [15:0] clocks_ready_count; - reg clocks_ready; - always @(posedge bus_clk or posedge reset_global or negedge locked) begin - if (reset_global | !locked) begin - clocks_ready_count <= 16'b0; - clocks_ready <= 1'b0; - end - else if (!clocks_ready) begin - clocks_ready_count <= clocks_ready_count + 1'b1; - clocks_ready <= (clocks_ready_count == 16'hffff); - end - end - - /////////////////////////////////////////////////////////////////////// - // drive output clocks - /////////////////////////////////////////////////////////////////////// - wire [1:0] debug_clk_int; - //S6CLK2PIN S6CLK2PIN_dbg0 (.I(debug_clk_int[0]), .O(debug_clk[0])); - //S6CLK2PIN S6CLK2PIN_dbg1 (.I(debug_clk_int[1]), .O(debug_clk[1])); - assign debug_clk[1:0] = 2'b0; - S6CLK2PIN S6CLK2PIN_gpif (.I(gpif_clk), .O(IFCLK)); - - /////////////////////////////////////////////////////////////////////// - // Create sync reset signals - /////////////////////////////////////////////////////////////////////// - wire gpif_rst, bus_rst, radio_rst; - reset_sync gpif_sync(.clk(gpif_clk), .reset_in(!clocks_ready), .reset_out(gpif_rst)); - reset_sync bus_sync(.clk(bus_clk), .reset_in(!clocks_ready), .reset_out(bus_rst)); - reset_sync radio_sync(.clk(radio_clk), .reset_in(!clocks_ready), .reset_out(radio_rst)); - - /////////////////////////////////////////////////////////////////////// - // CODEC capture/gen - /////////////////////////////////////////////////////////////////////// - wire [31:0] rx_data1, rx_data2; - wire [31:0] tx_data1, tx_data2; - wire mimo, codec_arst; - - catcodec_ddr_cmos catcodec - ( - .radio_clk(radio_clk), .arst(codec_arst), .mimo(mimo), - .rx1(rx_data1), .rx2(rx_data2), .tx1(tx_data1), .tx2(tx_data2), - .rx_clk(codec_data_clk_p), .rx_frame(rx_frame_p), .rx_d(rx_codec_d), - .tx_clk(codec_fb_clk_p), .tx_frame(tx_frame_p), .tx_d(tx_codec_d) - ); - - /////////////////////////////////////////////////////////////////////// - // SPI connections - /////////////////////////////////////////////////////////////////////// - wire mosi, miso, sclk; - wire [7:0] sen; - - //AD9361 Slave - assign cat_ce = sen[0]; - assign cat_mosi = ~sen[0] & mosi; - assign cat_sclk = ~sen[0] & sclk; - assign miso = cat_miso; //PLL does not have a miso - - //ADF4001 Slave - assign pll_ce = sen[1]; - assign pll_mosi = ~sen[1] & mosi; - assign pll_sclk = ~sen[1] & sclk; - - //FX3 Master - //The following signals are routed to the FX3 and were used by an obsolete - //bit-banging SPI engine. - // fx3_ce, fx3_sclk, fx3_mosi <Unused> - assign fx3_miso = 1'bZ; //Safe state because we cannot guarantee the - //direction of this pin in the FX3 - - /////////////////////////////////////////////////////////////////////// - // bus signals - /////////////////////////////////////////////////////////////////////// - wire [63:0] ctrl_tdata, resp_tdata, rx_tdata, tx_tdata; - wire ctrl_tlast, resp_tlast, rx_tlast, tx_tlast; - wire ctrl_tvalid, resp_tvalid, rx_tvalid, tx_tvalid; - wire ctrl_tready, resp_tready, rx_tready, tx_tready; - - - /////////////////////////////////////////////////////////////////////// - // frontend assignments - /////////////////////////////////////////////////////////////////////// - wire [31:0] fe_atr1, fe_atr2; - assign {tx_enable1, SFDX1_RX, SFDX1_TX, SRX1_RX, SRX1_TX, LED_RX1, LED_TXRX1_RX, LED_TXRX1_TX} = fe_atr1[7:0]; - assign {tx_enable2, SFDX2_RX, SFDX2_TX, SRX2_RX, SRX2_TX, LED_RX2, LED_TXRX2_RX, LED_TXRX2_TX} = fe_atr2[7:0]; - - wire [31:0] misc_outs; reg [31:0] misc_outs_r; - always @(posedge bus_clk) misc_outs_r <= misc_outs; //register misc ios to ease routing to flop - assign { tx_bandsel_a, tx_bandsel_b, rx_bandsel_a, rx_bandsel_b, rx_bandsel_c, codec_arst, mimo, ref_sel } = misc_outs_r[7:0]; - - assign codec_ctrl_in = 4'b1; - assign codec_en_agc = 1'b1; - assign codec_txrx = 1'b1; - assign codec_enable = 1'b1; - assign codec_reset = !reset_global; // Codec Reset // RESETB // Operates active-low - assign codec_sync = 1'b0; - - /////////////////////////////////////////////////////////////////////// - // b200 core - /////////////////////////////////////////////////////////////////////// - - b200_core #(.EXTRA_BUFF_SIZE(12)) b200_core - ( - .bus_clk(bus_clk), .bus_rst(bus_rst), - .tx_tdata(tx_tdata), .tx_tlast(tx_tlast), .tx_tvalid(tx_tvalid), .tx_tready(tx_tready), - .rx_tdata(rx_tdata), .rx_tlast(rx_tlast), .rx_tvalid(rx_tvalid), .rx_tready(rx_tready), - .ctrl_tdata(ctrl_tdata), .ctrl_tlast(ctrl_tlast), .ctrl_tvalid(ctrl_tvalid), .ctrl_tready(ctrl_tready), - .resp_tdata(resp_tdata), .resp_tlast(resp_tlast), .resp_tvalid(resp_tvalid), .resp_tready(resp_tready), - - .radio_clk(radio_clk), .radio_rst(radio_rst), - .rx0(rx_data2), .rx1(rx_data1), - .tx0(tx_data2), .tx1(tx_data1), - .fe_atr0(fe_atr2), .fe_atr1(fe_atr1), - .pps_int(PPS_IN_INT), .pps_ext(PPS_IN_EXT), - - .rxd(gps_txd), .txd(gps_rxd), - .sclk(sclk), .sen(sen), .mosi(mosi), .miso(miso), - .rb_misc({31'b0, pll_lock}), .misc_outs(misc_outs), - - .debug_scl(GPIF_CTL8), .debug_sda(GPIF_CTL6), - .debug_txd(FPGA_TXD0), .debug_rxd(FPGA_RXD0), - - .debug() - ); - - - - /////////////////////////////////////////////////////////////////////// - // GPIF2 - /////////////////////////////////////////////////////////////////////// - - gpif2_slave_fifo32 #(.DATA_RX_FIFO_SIZE(14), .DATA_TX_FIFO_SIZE(14)) slave_fifo32 - ( - .gpif_clk(gpif_clk), .gpif_rst(gpif_rst), .gpif_enb(1'b1), - .gpif_ctl({GPIF_CTL8, GPIF_CTL6, GPIF_CTL5, GPIF_CTL4}), .fifoadr({GPIF_CTL11,GPIF_CTL12}), - .slwr(GPIF_CTL1), .sloe(GPIF_CTL2), .slcs(GPIF_CTL0), .slrd(GPIF_CTL3), .pktend(GPIF_CTL7), - .gpif_d(GPIF_D), - - .fifo_clk(bus_clk), .fifo_rst(bus_rst), - .tx_tdata(tx_tdata), .tx_tlast(tx_tlast), .tx_tvalid(tx_tvalid), .tx_tready(tx_tready), - .rx_tdata(rx_tdata), .rx_tlast(rx_tlast), .rx_tvalid(rx_tvalid), .rx_tready(rx_tready), - .ctrl_tdata(ctrl_tdata), .ctrl_tlast(ctrl_tlast), .ctrl_tvalid(ctrl_tvalid), .ctrl_tready(ctrl_tready), - .resp_tdata(resp_tdata), .resp_tlast(resp_tlast), .resp_tvalid(resp_tvalid), .resp_tready(resp_tready), - - .debug() - ); - - /////////////////////////////////////////////////////////////////////// - // Debug port - /////////////////////////////////////////////////////////////////////// - assign debug = 0; - -endmodule // B200 |