aboutsummaryrefslogtreecommitdiffstats
path: root/fpga/usrp1/common/fpga_regs_common.v
diff options
context:
space:
mode:
authorJosh Blum <josh@joshknows.com>2011-09-28 13:27:33 -0700
committerJosh Blum <josh@joshknows.com>2011-09-28 13:27:33 -0700
commit4226748ddda610eafaf5c6c32be206c336232b80 (patch)
tree93795f42993ba85ffe4b1d4b539bc72eccd638d5 /fpga/usrp1/common/fpga_regs_common.v
parentc2122833e25ffe6e8e6918874afe7a3c9a92bc87 (diff)
parent24b07e1b0dbe8ab9d72c46f65c14c34e84347554 (diff)
downloaduhd-4226748ddda610eafaf5c6c32be206c336232b80.tar.gz
uhd-4226748ddda610eafaf5c6c32be206c336232b80.tar.bz2
uhd-4226748ddda610eafaf5c6c32be206c336232b80.zip
Merge branch 'fpga_master' into uhd_master
Conflicts: fpga/usrp1/toplevel/usrp_std/usrp_std.v
Diffstat (limited to 'fpga/usrp1/common/fpga_regs_common.v')
-rw-r--r--fpga/usrp1/common/fpga_regs_common.v117
1 files changed, 117 insertions, 0 deletions
diff --git a/fpga/usrp1/common/fpga_regs_common.v b/fpga/usrp1/common/fpga_regs_common.v
new file mode 100644
index 000000000..8035d8565
--- /dev/null
+++ b/fpga/usrp1/common/fpga_regs_common.v
@@ -0,0 +1,117 @@
+//
+// This file is machine generated from ./fpga_regs_common.h
+// Do not edit by hand; your edits will be overwritten.
+//
+
+// This file defines registers common to all FPGA configurations.
+// Registers 0 to 31 are reserved for use in this file.
+
+
+// The FPGA needs to know the rate that samples are coming from and
+// going to the A/D's and D/A's. div = 128e6 / sample_rate
+
+`define FR_TX_SAMPLE_RATE_DIV 7'd0
+`define FR_RX_SAMPLE_RATE_DIV 7'd1
+
+// 2 and 3 are defined in the ATR section
+
+`define FR_MASTER_CTRL 7'd4 // master enable and reset controls
+
+// i/o direction registers for pins that go to daughterboards.
+// Setting the bit makes it an output from the FPGA to the d'board.
+// top 16 is mask, low 16 is value
+
+`define FR_OE_0 7'd5 // slot 0
+`define FR_OE_1 7'd6
+`define FR_OE_2 7'd7
+`define FR_OE_3 7'd8
+
+// i/o registers for pins that go to daughterboards.
+// top 16 is a mask, low 16 is value
+
+`define FR_IO_0 7'd9 // slot 0
+`define FR_IO_1 7'd10
+`define FR_IO_2 7'd11
+`define FR_IO_3 7'd12
+
+`define FR_MODE 7'd13
+
+
+// If the corresponding bit is set, internal FPGA debug circuitry
+// controls the i/o pins for the associated bank of daughterboard
+// i/o pins. Typically used for debugging FPGA designs.
+
+`define FR_DEBUG_EN 7'd14
+
+
+// If the corresponding bit is set, enable the automatic DC
+// offset correction control loop.
+//
+// The 4 low bits are significant:
+//
+// ADC0 = (1 << 0)
+// ADC1 = (1 << 1)
+// ADC2 = (1 << 2)
+// ADC3 = (1 << 3)
+//
+// This control loop works if the attached daugherboard blocks DC.
+// Currently all daughterboards do block DC. This includes:
+// basic rx, dbs_rx, tv_rx, flex_xxx_rx.
+
+`define FR_DC_OFFSET_CL_EN 7'd15 // DC Offset Control Loop Enable
+
+
+// offset corrections for ADC's and DAC's (2's complement)
+
+`define FR_ADC_OFFSET_0 7'd16
+`define FR_ADC_OFFSET_1 7'd17
+`define FR_ADC_OFFSET_2 7'd18
+`define FR_ADC_OFFSET_3 7'd19
+
+
+// ------------------------------------------------------------------------
+// Automatic Transmit/Receive switching
+//
+// If automatic transmit/receive (ATR) switching is enabled in the
+// FR_ATR_CTL register, the presence or absence of data in the FPGA
+// transmit fifo selects between two sets of values for each of the 4
+// banks of daughterboard i/o pins.
+//
+// Each daughterboard slot has 3 16-bit registers associated with it:
+// FR_ATR_MASK_*, FR_ATR_TXVAL_* and FR_ATR_RXVAL_*
+//
+// FR_ATR_MASK_{0,1,2,3}:
+//
+// These registers determine which of the daugherboard i/o pins are
+// affected by ATR switching. If a bit in the mask is set, the
+// corresponding i/o bit is controlled by ATR, else it's output
+// value comes from the normal i/o pin output register:
+// FR_IO_{0,1,2,3}.
+//
+// FR_ATR_TXVAL_{0,1,2,3}:
+// FR_ATR_RXVAL_{0,1,2,3}:
+//
+// If the Tx fifo contains data, then the bits from TXVAL that are
+// selected by MASK are output. Otherwise, the bits from RXVAL that
+// are selected by MASK are output.
+
+`define FR_ATR_MASK_0 7'd20 // slot 0
+`define FR_ATR_TXVAL_0 7'd21
+`define FR_ATR_RXVAL_0 7'd22
+
+`define FR_ATR_MASK_1 7'd23 // slot 1
+`define FR_ATR_TXVAL_1 7'd24
+`define FR_ATR_RXVAL_1 7'd25
+
+`define FR_ATR_MASK_2 7'd26 // slot 2
+`define FR_ATR_TXVAL_2 7'd27
+`define FR_ATR_RXVAL_2 7'd28
+
+`define FR_ATR_MASK_3 7'd29 // slot 3
+`define FR_ATR_TXVAL_3 7'd30
+`define FR_ATR_RXVAL_3 7'd31
+
+// Clock ticks to delay rising and falling edge of T/R signal
+`define FR_ATR_TX_DELAY 7'd2
+`define FR_ATR_RX_DELAY 7'd3
+