jofrfu /
tinyTPU
Implementation of a Tensor Processing Unit for embedded systems and the IoT.
76/100 healthLoading repository data…
adithyan-va / repository
Implementation of a radix-2 4-point Decimation in Time (DIT) FFT in Verilog with a pipelined architecture for efficient and accurate frequency domain analysis.
A transparent discovery signal based on current public GitHub metadata.
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
The Fast Fourier Transform (FFT) is a fundamental algorithm in digital signal processing, enabling efficient computation of the Discrete Fourier Transform (DFT). The FFT reduces the complexity of calculating the DFT from 𝑂(𝑁^2) to 𝑂(𝑁*log𝑁), making it highly suitable for applications involving large datasets or real-time signal processing.
The aim of this project is to implement a radix-2 4-point Decimation in Time (DIT) FFT in a pipelined architecture using Verilog HDL in Vivado.
- bfly_stage1 is used to perform the butterfly computation for the first stage.
- The butterflies operate on inputs in1, in3 and in2, in4.
- Outputs from this stage are denoted as da1, da1i, da2, da2i, etc., which are 33-bit signed intermediate results from the first butterfly stage.
- These outputs are passed through a D flip-flop stage (dff1) to store the intermediate results before moving to the next pipeline stage.
- In this stage, the twiddle factors (wa1, wa1i, wa2, wa2i) are assigned:
- wa1 = 1 and wa1i = 0 correspond to no rotation (identity).
- wa2 = 0 and wa2i = -1 correspond to a rotation by -90 degrees (or multiplying by -j).
- The second set of butterflies, bfly_stage2, computes the FFT with the twiddle factors applied.
- The intermediate results are stored in signals db1, db1i, db2, db2i, etc., which are then passed through another D flip-flop stage (dff2).
After the second stage of D flip-flops, the final FFT output is generated and assigned to out1, out1i, out2, out2i, out3, out3i, and out4, out4i.
Butterfly Stages (bfly_stage1 and bfly_stage2): These modules implement the butterfly operations, which are the core computations in FFT algorithms. They take pairs of inputs (real and imaginary parts) and perform additions, subtractions, and twiddle factor multiplications.
D Flip-Flop Stages (dff1 and dff2): These are sequential elements that store intermediate data between the pipeline stages, ensuring proper synchronization and allowing the pipelined architecture to process data in a sequential manner.
A Verilog testbench was used to simulate the design with various input signals to verify its functionality. Initially, a reset signal was asserted and then de-asserted after one clock period. The testbench fed three different sets of inputs: {0,1,2,3}, {1,1,0,0}, and {1,0,-1,0}.
The Decimation in Time (DIT) FFT algorithm was successfully implemented in Verilog. Correct frequency domain results were obtained for each input test case. The pipelined implementation of the radix-2 4-point DIT FFT achieved faster computation, leveraging the parallelism introduced by the pipeline.
Selected from shared topics, language and repository description—not editorial ratings.
jofrfu /
Implementation of a Tensor Processing Unit for embedded systems and the IoT.
76/100 healthtommythorn /
FPGA Haskell machine with game changing performance. Reduceron is Matthew Naylor, Colin Runciman and Jason Reich's high performance FPGA softcore for running lazy functional programs, including hardware garbage collection. Reduceron has been implemented on various FPGAs with clock frequency ranging from 60 to 150 MHz depending on the FPGA. A high degree of parallelism allows Reduceron to implement graph evaluation very efficiently. This fork aims to continue development on this, with a view to practical applications. Comments, questions, etc are welcome.
72/100 healthsecworks /
Verilog implementation of the symmetric block cipher AES (Advanced Encryption Standard) as specified in NIST FIPS 197. This implementation supports 128 and 256 bit keys.
86/100 healthalfikpl /
The ao486 is an x86 compatible Verilog core implementing all features of a 486 SX.
68/100 healthabdelazeem201 /
IC implementation of Systolic Array for TPU
85/100 healthhamsternz /
A Verilog implementation of DisplayPort protocol for FPGAs
77/100 health