diff options
Diffstat (limited to 'fpga/docs/usrp2/customize_signal_chain.md')
-rw-r--r-- | fpga/docs/usrp2/customize_signal_chain.md | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/fpga/docs/usrp2/customize_signal_chain.md b/fpga/docs/usrp2/customize_signal_chain.md new file mode 100644 index 000000000..dfd28b3cc --- /dev/null +++ b/fpga/docs/usrp2/customize_signal_chain.md @@ -0,0 +1,49 @@ +# Customizing the Signal Chain in Generation 2 products + +## Adding DSP logic to Generation 2 products + +As part of the USRP FPGA build-framework, there are several convenient places +for users to insert custom DSP modules into the transmit and receive chains. + +- Before the DDC module +- After the DDC module +- Replace the DDC module +- Before the DUC module +- After the DUC module +- Replace the DUC module +- As an RX packet engine +- As an TX packet engine + +### Customizing the top level makefile + +Each USRP device has a makefile associated with it. This makefile contains all +of the necessary build rules. When making a customized FPGA design, start by +copying the current makefile for your device. Makefiles can be found in +`usrp2/top/{product}/Makefile` + +Edit your new makefile: +- Set BUILD_DIR to a unique directory name +- Set CUSTOM_SRCS for your verilog sources +- Set CUSTOM_DEFS (see section below) + +### Inserting custom modules + +CUSTOM_DEFS is a string of space-separate key-value pairs. Set the CUSTOM_DEFS +variable so the FPGA fabric glue will substitute your custom modules into the +DSP chain. + +Example: + + CUSTOM_DEFS = "TX_ENG0_MODULE=my_tx_engine RX_ENG0_MODULE=my_rx_engine" + +Where `my_tx_engine` and `my_rx_engine` are the names of custom verilog modules. + +The following module definition keys are possible (X is a DSP number): + +- `TX_ENG<X>_MODULE`: Set the module for the transmit chain engine. +- `RX_ENG<X>_MODULE`: Set the module for the receive chain engine. +- `RX_DSP<X>_MODULE`: Set the module for the transmit dsp chain. +- `TX_DSP<X>_MODULE`: Set the module for the receive dsp chain. + +Examples of custom modules can be found in the Verilog files in `usrp2/custom/`. + |