Skip to content

Commit

Permalink
updated links to learning materials
Browse files Browse the repository at this point in the history
  • Loading branch information
JennySmith888 committed Jul 15, 2022
1 parent 1b16f1d commit 5bf331c
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ This project creates a polyphase channelizer capable of migrating 4 GHz of incom
This project version demonstrates the OPFB operating in streaming mode and uses the integrated RF Data converter to generate and sample the data in hardware loopback. The OPFB block is the same except the filter is now 4 taps per branch instead of 8 which halves the core LUTRAM utilization. The design involves multiple blocks made using Vitis HLS 2020.1 and one block exported from System Generator version 2019.2. The remaining blocks can be found in the Xilinx blockset in Vivado Design Suite 2021.2. Data is generated in a Jupyter Notebook hosted on the embedded CPU before being written to device URAM as a waveform look-up-table. Two RFSoC DACs output the waveform which is then sampled by two RFSoC ADCs (all running at 4.096 GSPS). The data freely streams through the OPFB channelizer. At the user's request, the output channels are captured to the PL DDR4 and visualized in a Jupyter Notebook using the PYNQ framework.

## What is an OPFB?
If you're wondering what an OPFB is, how it works, or why you should use it, I suggest looking through the materials in the `learning` directory. `Polyphase_Explanation.pdf` is a summary note I made to document key takeaways and figures and includes an explanation of the differences between Polyphase Filter Banks (PFBs) and Oversampled Polyphase Filter Banks (OPFBs). This note is largly based off of work done by Fred Harris. `OPFB_Learning.ipynb` is an interactive Jupyter Notebook capable of arbitrary oversampling, channel-size, etc. and includes cells demonstrating how the filter is designed and characterized. For more information on how to efficiently implement an OPFB on an FPGA, please read [the paper](https://ieeexplore.ieee.org/document/9336352).
If you're wondering what an OPFB is, how it works, or why you should use it, I suggest looking through the materials in the `learning` directory. [Polyphase\_Explanation.pdf](https://github.com/MazinLab/RFSoC_OPFB/blob/master/learning/Polyphase_Explanantion.pdf) is a summary note I made to document key takeaways and figures and includes an explanation of the differences between Polyphase Filter Banks (PFBs) and Oversampled Polyphase Filter Banks (OPFBs). This note is largly based off of work done by Fred Harris. [OPFB\_Exploration.ipynb](https://github.com/MazinLab/RFSoC_OPFB/blob/master/learning/OPFB_Exploration.ipynb) is an interactive Jupyter Notebook capable of arbitrary oversampling, channel-size, etc. and includes cells demonstrating how the filter is designed and characterized. For more information on how to efficiently implement an OPFB on an FPGA, please read [the paper](https://ieeexplore.ieee.org/document/9336352).

## Project Structure
This project is built using Vivado Design Suite 2021.2 + Vitis HLS 2020.1 + System Generator 2019.2.
Expand Down

0 comments on commit 5bf331c

Please sign in to comment.