Cores are generated from Confluence; a modern logic design language. Confluence is a simple, yet highly expressive language that compiles into Verilog, VHDL, and C. See Confluent for more info. Memory interleavers are common components often found in signal processing applications. They are useful for buffering and reordering data and typically form the separation between design stages. Interleavers can be used for: - Transposing Images for Image Processing - Buffering Noncontinuous Input Data - Data Shuffling Between FFT Ranks
The memory interleaver consists of 2 interleaving memories: one memory loads input data, while the other dumps output data -- On a swap signal the 2 memories switch roles.
The interface to an interleaver is:
- Inputs
- clock : Main clock.
- swap : Pulse to swap memories (input become output, output becomes input).
- write : Write enable to input memory.
- addr : Address to input memory.
- data : Data to input memory.
- Outputs
- sync_primary : Pulse to indicate an interleaver swap.
- sync_secondary : Pulse to indicate address 0 is output.
- data : Data dumped from output memory.
Input data to the interleaver is addressable. Output data is dumped one memory location after another starting at address 0.
Each file is stand-alone and represents a specific configuration.
The 2 configuration parameters are:
- Address Width (Memory Depth)
- Data Width
The configuration parameters are coded in the file names: cf_interleaver_8_32.v
- 8 : Address Width
- 32 : Data Width
Current configurations:
- cf_interleaver_6_8
- cf_interleaver_7_8
- cf_interleaver_8_8
- cf_interleaver_9_8
- cf_interleaver_10_8
- cf_interleaver_11_8
- cf_interleaver_12_8
- cf_interleaver_6_16
- cf_interleaver_7_16
- cf_interleaver_8_16
- cf_interleaver_9_16
- cf_interleaver_10_16
- cf_interleaver_11_16
- cf_interleaver_12_16
- cf_interleaver_6_32
- cf_interleaver_7_32
- cf_interleaver_8_32
- cf_interleaver_9_32
- cf_interleaver_10_32
- cf_interleaver_11_32
- cf_interleaver_12_32
- cf_interleaver_6_64
- cf_interleaver_7_64
- cf_interleaver_8_64
- cf_interleaver_9_64
- cf_interleaver_10_64
- cf_interleaver_11_64
- cf_interleaver_12_64