ALFFT FAST FOURIER Transform Core Application Notes



Similar documents
DDS. 16-bit Direct Digital Synthesizer / Periodic waveform generator Rev Key Design Features. Block Diagram. Generic Parameters.

FFT Algorithms. Chapter 6. Contents 6.1

Performing the Fast Fourier Transform with Microchip s dspic30f Series Digital Signal Controllers

Non-Data Aided Carrier Offset Compensation for SDR Implementation

ANALYZER BASICS WHAT IS AN FFT SPECTRUM ANALYZER? 2-1

The string of digits in the binary number system represents the quantity

Department of Electrical and Computer Engineering Ben-Gurion University of the Negev. LAB 1 - Introduction to USRP

The continuous and discrete Fourier transforms

Analysis/resynthesis with the short time Fourier transform

Binary Numbering Systems

Counters and Decoders

Design and Implementation of Fast Fourier Transform Algorithm in FPGA

MP3 Player CSEE 4840 SPRING 2010 PROJECT DESIGN.

Let s put together a Manual Processor

Image Compression through DCT and Huffman Coding Technique

Final Year Project Progress Report. Frequency-Domain Adaptive Filtering. Myles Friel. Supervisor: Dr.Edward Jones

Acoustic Processor of the MCM Sonar

RF Measurements Using a Modular Digitizer

Implementation of Modified Booth Algorithm (Radix 4) and its Comparison with Booth Algorithm (Radix-2)

Spectrum Level and Band Level

Graphs of Polar Equations

MIMO detector algorithms and their implementations for LTE/LTE-A

(Refer Slide Time: 01:11-01:27)


Floating Point Fused Add-Subtract and Fused Dot-Product Units

Qsys and IP Core Integration

Coding and decoding with convolutional codes. The Viterbi Algor

1.4 Fast Fourier Transform (FFT) Algorithm

DSPDemo. By Moe Wheatley MoeTronix.

SIGNAL PROCESSING & SIMULATION NEWSLETTER

Frequency Response of FIR Filters

FPGAs for High-Performance DSP Applications

Introduction to Xilinx System Generator Part II. Evan Everett and Michael Wu ELEC Spring 2013

Fast Fourier Transform: Theory and Algorithms

ETEC 2301 Programmable Logic Devices. Chapter 10 Counters. Shawnee State University Department of Industrial and Engineering Technologies

The Fourier Analysis Tool in Microsoft Excel

A /1536 POINT FFT HARDWARE IMPLEMENTATION WITH OUTPUT PRUNING. {tuba.ayhan, wim.dehaene,

T = 1 f. Phase. Measure of relative position in time within a single period of a signal For a periodic signal f(t), phase is fractional part t p

LMS is a simple but powerful algorithm and can be implemented to take advantage of the Lattice FPGA architecture.

Big Ideas in Mathematics

Hardware Implementations of RSA Using Fast Montgomery Multiplications. ECE 645 Prof. Gaj Mike Koontz and Ryon Sumner

Lesson 7: SYSTEM-ON. SoC) AND USE OF VLSI CIRCUIT DESIGN TECHNOLOGY. Chapter-1L07: "Embedded Systems - ", Raj Kamal, Publs.: McGraw-Hill Education

In mathematics, there are four attainment targets: using and applying mathematics; number and algebra; shape, space and measures, and handling data.

Digital Modulation. David Tipper. Department of Information Science and Telecommunications University of Pittsburgh. Typical Communication System

Divide: Paper & Pencil. Computer Architecture ALU Design : Division and Floating Point. Divide algorithm. DIVIDE HARDWARE Version 1

Basics of Floating-Point Quantization

4 Digital Video Signal According to ITU-BT.R.601 (CCIR 601) 43

Using Microcontrollers in Digital Signal Processing Applications

Lab 1. The Fourier Transform

From Concept to Production in Secure Voice Communications

The Calculation of G rms

Algebra Academic Content Standards Grade Eight and Grade Nine Ohio. Grade Eight. Number, Number Sense and Operations Standard

FX 115 MS Training guide. FX 115 MS Calculator. Applicable activities. Quick Reference Guide (inside the calculator cover)

NRZ Bandwidth - HF Cutoff vs. SNR

Introduction to IQ-demodulation of RF-data

Chapter 4 Register Transfer and Microoperations. Section 4.1 Register Transfer Language

A HIGH PERFORMANCE SOFTWARE IMPLEMENTATION OF MPEG AUDIO ENCODER. Figure 1. Basic structure of an encoder.

chapter Introduction to Digital Signal Processing and Digital Filtering 1.1 Introduction 1.2 Historical Perspective

Electronic Communications Committee (ECC) within the European Conference of Postal and Telecommunications Administrations (CEPT)

Multipliers. Introduction

Biggar High School Mathematics Department. National 5 Learning Intentions & Success Criteria: Assessing My Progress

Introduction to Digital Filters

Georgia Department of Education Kathy Cox, State Superintendent of Schools 7/19/2005 All Rights Reserved 1

Computer Networks and Internets, 5e Chapter 6 Information Sources and Signals. Introduction

Thnkwell s Homeschool Precalculus Course Lesson Plan: 36 weeks

Prentice Hall Algebra Correlated to: Colorado P-12 Academic Standards for High School Mathematics, Adopted 12/2009

Implementation of Digital Signal Processing: Some Background on GFSK Modulation

Final Project: Enhanced Music Synthesizer and Display Introduction

Topological Properties

The Algorithms of Speech Recognition, Programming and Simulating in MATLAB

Agilent PN Extending Vector Signal Analysis to 26.5 GHz with 20 MHz Information Bandwidth

Oct: 50 8 = 6 (r = 2) 6 8 = 0 (r = 6) Writing the remainders in reverse order we get: (50) 10 = (62) 8

The Effective Number of Bits (ENOB) of my R&S Digital Oscilloscope Technical Paper

Design of FIR Filters

Modeling Sequential Elements with Verilog. Prof. Chien-Nan Liu TEL: ext: Sequential Circuit

Copy in your notebook: Add an example of each term with the symbols used in algebra 2 if there are any.

Experiment # 9. Clock generator circuits & Counters. Eng. Waleed Y. Mousa

Binary Division. Decimal Division. Hardware for Binary Division. Simple 16-bit Divider Circuit

A Sound Analysis and Synthesis System for Generating an Instrumental Piri Song

Introduction to Digital Audio

Optimizing IP3 and ACPR Measurements

South Carolina College- and Career-Ready (SCCCR) Pre-Calculus

DEVELOPMENT OF DEVICES AND METHODS FOR PHASE AND AC LINEARITY MEASUREMENTS IN DIGITIZERS

COMBINATIONAL and SEQUENTIAL LOGIC CIRCUITS Hardware implementation and software design

İSTANBUL AYDIN UNIVERSITY

Operation Count; Numerical Linear Algebra

PHASE ESTIMATION ALGORITHM FOR FREQUENCY HOPPED BINARY PSK AND DPSK WAVEFORMS WITH SMALL NUMBER OF REFERENCE SYMBOLS

9/14/ :38

FPGA Architecture for OFDM Software Defined Radio with an optimized Direct Digital Frequency Synthesizer

Abstract. Cycle Domain Simulator for Phase-Locked Loops

Prentice Hall Mathematics: Algebra Correlated to: Utah Core Curriculum for Math, Intermediate Algebra (Secondary)

PowerPC Microprocessor Clock Modes

Signal to Noise Instrumental Excel Assignment

Understand the effects of clock jitter and phase noise on sampled systems A s higher resolution data converters that can

2.3. Finding polynomial functions. An Introduction:

ADS9850 Signal Generator Module

Current Standard: Mathematical Concepts and Applications Shape, Space, and Measurement- Primary

SR2000 FREQUENCY MONITOR

Transcription:

ALFFT FAST FOURIER Transform Core Application Notes 6-20-2012

Table of Contents General Information... 3 Features... 3 Key features... 3 Design features... 3 Interface... 6 Symbol... 6 Signal description... 6 Data representation... 7 Typical Core Interconnection... 7 Block Diagram... 9 Implementation Data... 11 Performance... 11 Timing diagram... 12 Data and coefficient width selection considerations... 13 Deliverables... 14 www.aldec.com Page 2

General Information The ALFFT Application Notes contains description of the ALFFT core architecture to explain its proper use. ALFFT soft core is the unit to perform the Fast Fourier Transform (FFT). It performs one dimensional N - point radix two FFT, where N = 16, 32, 64, 128, 256, 512, 1024, 2048. The data and coefficient widths are tunable in the range 8 to 16. Features Key features N -point radix-2 FFT, where N = 16, 32, 64, 128, 256, 512, 1024, 2048. Forward and inverse FFT. Butterfly is implemented for 2 clock cycles in pipelined mode. Input data, output data, and coefficient width are parametrisable in range 8 to 16. One and two data memory blocks are selected. 1024 point FFT for 16 bit data and coefficient width is calculated on Virtex100-6 FPGA at 60 MHz clock cycle with 1 and 2 data memory blocks for 113.6 us and 103.3 us, respectively. 1024 point FFT for 16 bit data and coefficients, and 1 data memory block occupies 700 CLB slices and 8 Block_Select_RAMs Block floating point arithmetic supports the high calculation precision, 1024 point FFT for 16 bit data and coefficients are computed with 80 db signal to noise ratio. Structure optimized for Xilinx Virtex, SpartanII FPGA devices. Design features FFT is an algorithm for the effective Discrete Fourier Transform calculation Discrete Fourier Transform (DFT) is a fundamental digital signal processing algorithm used in many applications, including frequency analysis and frequency domain processing. DFT is the decomposition of a sampled signal in terms of sinusoidal (complex exponential) components. If the signal is a function of time, this decomposition results in a frequency domain signal. Frequency analysis provides spectral information for signals that are examined or used in further processing, such as in audio compression, multichannel decoding. Frequency domain processing allows for the efficient computation of the linear filtering and of the correlation analysis. Because of its computational requirements, the DFT algorithm usually is not used for real time signal processing. The symmetry and periodicity properties of the DFT are exploited to significantly lower its computational requirements. The resulting algorithms are known as Fast Fourier Transforms (FFTs). The DFT resembles the correlation operation in that it measures the similarity of an unknown signal with a complex exponential. The resulting spectrum yields the complex information (phase and amplitude) for N frequencies. The resulting values are called frequency bins because they represent the amplitude information for each frequency. An N-point DFT computes a sequence X(k) of N complex-valued numbers given another sequence of data x(n) of length N according to the formula N X(k) = 1 n 0 x(n) e j2 nk/n ; k = 0 to N-1. To simplify the notation, the complex-valued phase factor e j2 nk/n is usually defined as W n N where: W N = cos(2 /N) j sin(2 /N). Direct computation of the DFT requires approximately N 2 complex www.aldec.com Page 3

multiplications and N 2 complex accumulations. The FFT algorithms take advantage of the symmetry and periodicity properties of W n N to greatly reduce the number of calculations that the DFT requires. In an FFT implementation the real and imaginary components of W n N are called twiddle factors. These sine and cosine constants are usually precalculated and stored in a table. The basis of the FFT is that a DFT can be divided into smaller DFTs. A radix-2 FFT divides the FFT DFT into two smaller DFTs, each of which is divided into two smaller DFTs, and so on, resulting in a combination of two-point DFTs. An N-point DFT can be computed by executing two N/2-point DFTs and combining the outputs of the smaller DFTs to give the same output as the original DFT. If the N-point calculations are divided into smaller DFTs until only two-point DFTs remain, the total number of complex multiplications and additions is reduced to Nlog 2 N. For example, a 1024-point DFT requires over a million complex additions and multiplications. A 1024-point DFT divided down into two point DFTs needs fewer than ten thousand complex additions and multiplications, a reduction of over 99%. Two methods are used repeatedly to split the DFTs into smaller two-point core calculations: The decimation-in-time (DIT) FFT divides the input (time) sequence into two groups: one of even samples and the other of odd samples. The decimation-in frequency (DIF) FFT divides the output (frequency) sequence into even and odd portions. In the ALFFT core the DIT FFT is imnplemented. The two-point DFT at the core of a radix-2 DIT FFT is called a butterfly calculation. The equations for the radix-2 DIT butterfly are: Re0 = Re0 + (CRe1 + SIm1); Re1 = Re0 (CRe1 + SIm1) ; Im0 = Im0 + (CIm1 SRe1); Im1 = Im0 (CIm1 SIm1). The variables Ren and Imn represent the real and imaginary parts, respectively, of the n-th data operand C, and S represent cosine and sine parts of the twiddle factor. Figure 1 shows a complete 16-point radix- 2 DIT FFT, which is the FFT structure used in the ALFFT Core. The edge weighted by the ratio W k means the complex multiplication to the factor W k 16, the node with two input edges represent the complex addition or subtraction, and each subgraph contained four nodes connected with four edges represent the butterfly operation. The radix-2 FFT is partitioned into repeated structures called stages, as well as individual butterflies. There are log2(n) stages in an N-point radix-2 FFT. This 16-point FFT example contains four stages, and each stage consists of 8 butterflies. The number of butterflies per stage is N/2. Note that in this implementation, the output array Xk is in a normal sequential order and the input array xn is in a bit-reversed order. This non-sequential order is a result of the FFT algorithm s repeated subdivision of the data sequences. Therefore, the locations of the data, locations of the twiddle factors, or locations of the both may be scrambled (in bit-reversed order). Bit-reversal is an addressing technique used in FFT calculations to order the results sequentially. A bit-reversed address is generated by reversing the order of the bits in a binary representation of the address. (The address is read right to left, with the least significant bit becoming the most significant bit.) Bit-reversal of a data array is accomplished by swapping each position in a data array with the position of its corresponding bitreversed address. www.aldec.com Page 4

Highly pipelined calculations Fig. 1. Graph of the 16 point radix-2 DIT FFT algorithm Each FFT iteration dates are computed by the computational unit, called FFTDPATH, another words, data path for FFT calculations. FFTDPATH calculates the radix-2 FFT butterfly in the high pipelined mode. Therefore in each clock cycle one complex number is read from the data RAM and the complex result is written in this RAM. This mode supports the increasing the clock frequency up to 60 MHz and higher. The latent delay of the FFTDPATH unit from input the data to output the result is equal to 8 clock cycles. High precision computations In the core the block floating point arithmetic is implemented. This means that the data array has the common exponent, and the array is normalized in the mode when the maximum data in the www.aldec.com Page 5

array occupies all the digits of the word. Such mode supports the high calculation precision. Due to this mode, 1024 point FFT calculations for 16 bit data and coefficients give 80 db signal to noise ratio, which is at least at 10 db higher than calculations with the fixed point arithmetic give. Low hardware consumption The customer can select the input data, output data, and coefficient widths which provide his or shes application dynamic range needs. This can minimize both logic hardware and memory volume dramatically. Besides, minimized data and coefficient width supports the increase of the maximum clock frequency. Interface Symbol Fig.1 illustrates ALFFT core symbol. Figure 2. ALFFT symbol. Signal description The descriptions of the core signals are represented in the table 1. SIGNAL TYPE DESCRIPTION CLK input Global clock RST input Global reset START input FFT start DATAE input Input data enable strobe DATAIRE [iwidth-1:0] input Input data real sample DATAIIM [iwidth-1:0] input Input data imaginary sample READY output Result ready strobe WERES output Result write enable strobe FFTRDY output Input data accepting ready strobe ADDRRES [n-1:0] output Result address DATAORE [iwidth-1:0] output Output data real sample DATAOIM [iwidth-1:0] output Output data imaginary sample EXP[3:0] output Output data block exponent Table 1. ALFFT core signal description. www.aldec.com Page 6

Data representation Input and output dates are represented by iwidth and owidth bit two-th complement complex integers, respectively. The exponent is 4-bit positive integer e, and the result Y is equal to Y=Y m *2 e, where Y m is the real or imaginary part of the output data. The exponent is the same for each sample of the result array. Each input data X is the couple of real Re and imaginary Im integers, so as X = Re + j Im. The magnitude of such a data must not succeed the value of 2 (iwidth-1) to prevent of the possible overflow. It is satisfied when Re <0.707*2 (iwidth-1), and Im <0.707*2 (iwidth-1), or when Im = 0. Typical Core Interconnection The core interconnection depends on the application nature where it is used. The simple core interconnection considers the calculation with breaks of the real input signal, which is sampled with the clock frequency. This interconnection is shown on the figure 2. Fig2. Simple core interconnection Here DATA_SRC is the data source, for example, the analog-to-digital converter, ALFFT_Core is the core which is customized as one with a single data RAM, RG1 is the result register. Firstly N= 2 n input samples are stored in the data RAM of the Core. Then the FFT algorithm runs. And at the last iteration of the FFT by the high level of the WERES signal, and when the ADDRESS(n-1) signal is low the register RG1 is storing the real and imaginary parts of resulting spectrum samples. These samples represent the first halph of the resulting spectrum due to the FFT graph (see the fig.1). It is enough for the post spectrum processing because the spectrum of the real signal is symmetrical one. The figure 3 represents the connection of the core to the source with real data stream which is more slow than one in the previous example. The resulting dates are denormalized to represent the fixed point data results. www.aldec.com Page 7

Fig.3. Core interconnections with the slow data source Here DATA_SRC is the data source, ALFFT_Core is the core which is customized as one with the dual data RAM, RG1 is the result register, parrallelogramms represent combinatorial data shifters to 0,,n-1 bits to the left direction. N= 2 n input samples are stored in the first data RAM of the Core by the strobe DATAE. Simultaneously the FFT algorithm computes the dates in the second data RAM. And at the last iteration of the FFT the results are denormalized by shifting to left to the bit number which is equal to the word EXP. The denormalized results are stored to the register RG1, and outputted to the outputs DORE, and DOIM. After each FFT calculation period both data RAMs of the core substitute each other. Therefore, the computing of the input data stream can be implemented without data breaks. The figure 4 represents the connection of the core to the source with both real and image data streams which are more slow than the data stream in the previous example. The resulting dates are stored in the additional data RAM. Fig.4. ALFFT Core connection to the complex signal source and additional result RAM Here DATA_SRC is the data source, for example, the balanced complex signal mixer, ALFFT_Core is the core which is customized as one with the dual data RAM, RAM3 is the output data RAM. RAM3 has the volume of 2 n complex numbers, and is the third RAM taking into account two RAMs in the ALFFT core. The inputs of this RAM which control the read operation are not shown on the fig.4. www.aldec.com Page 8

Block Diagram The basic block diagram of the ALFFT_Core with a single data RAM is shown in the fig.5, and the basic block diagram of the ALFFT_Core with the dual data RAM is shown in the fig.6. Fig.5. Block diagram of the ALFFT_Core with a single data RAM Components: U_CNTRL control unit CONTROL; U_ROM ROM block which contains a table of cosine samples in the angle range of 0,,90 ; RAM1X block of a single two port RAM of the volume 2x2 n words, where n=4,5, 11; U_PATH unit FFTDPATH, the data path of calculating the butterfly procedure. www.aldec.com Page 9

Fig.6. Block diagram of the ALFFT_Core with the dual data RAM Components: U_CNTRL control unit CONTROL; U_ROM ROM block which contains a table of cosine samples in the angle range of 0,,90 ; RAM2X block of the dual two port RAM of the volume 2x2x2 n words, where n=4,5, 11; U_PATH unit FFTDPATH, the data path of calculating the butterfly procedure. www.aldec.com Page 10

Implementation Data Performance The following table 2 illustrates the performance of the ALFFT core with the dual RAM block in Xilinx VIRTEX device when implementing 1024-point FFT for 16-bit dates and coefficients. Target device XCV300BG352-6 XCV300EBG352-8 Select Memory 16 BlockSelect RAMs 16 BlockSelect RAMs Area 850 Slices (28%), 850 Slices (28%), System clock fmax 65 MHz 86 MHz Table 2. Implementation Data Xilinx VIRTEX The table 3 illustrates the dual RAM ALFFT core area in Xilinx VIRTEX device and the signal-to-noise ratio (SNR) when implementing FFT of different length for 8, 12, 14 and 16-bit dates and coefficients. Data width, bit FFT length CLB slices BlockRAMs SNR, db 64 294 4 26.2 8 128 308 4 27.4 256 331 4 26.8 512 360 4 26.6 1024 404 8 26.7 64 372 4 39.5 10 128 392 4 39.2 256 418 4 39.7 512 449 4 44.2 1024 505 12 44.6 2048 520 20 44.5 64 450 4 50.7 12 128 472 4 51.5 256 501 4 57.5 512 538 8 57.9 1024 607 12 58.1 2048 632 24 58.2 64 537 4 63.1 14 128 561 4 69.0 256 594 4 69.8 512 637 8 70.1 1024 720 16 70.3 2048 767 28 70.3 64 644 4 75.1 16 128 672 4 80.9 256 707 4 82.1 512 754 8 82.3 1024 850 16 82.5 2048 934 32 82.6 Table 3. Implementation Data on Xilinx VIRTEX-300 www.aldec.com Page 11

Note: SNR was measured for the input signal which is equal to the sum of 5 complex sine waves of equal magnitude and different frequency. Timing diagram To run FFT the START signal is activated for minimum one clock period. After the falling edge of the START impulse the input dates can be sampled in the ports DATAIRE, DATAIIM by the rising edge of the CLK signal. The length of the START signal must be higher than the CLK period. When the enable signal DATAE is constantly high then each data is sampled in each clock cycle. When the input data stream is slow then each input data is followed by the impulse of the DATAE signal with the approximate length of a single clock period, and therefore the sampling frequency is equal to the frequency of the DATAE signal. This process is illustrated by the fig. 7. Fig.7. Timing diagram of the input data sampling The FFT results DATAORE,DATAOIM are outputted in each clock cycle after the impulse READY. This impulse assigns the beginning of the last FFT iteration. According to the FFT algorithm graph the results with indexes 0,1,,N/2-1 are outputted in the odd clock cycles, and the results with indexes N/2,N/2+1,,N-1 are outputted in the even clock cycles. The output dates are followed by the signal WERES which is useful as the signal of the writing enable into the outer memory unit. The output impulse FFTRDY signales on the FFT algorithm finishing, and that the FFT core is ready to receive the another array of the input data. Fig.8. Timing diagram of the input data sampling Timing diagrams are something different in the one RAM FFT core and in the dual RAM FFT core. The time delay from the signal START to the signal READY is shown in the table 4. www.aldec.com Page 12

When in the dual RAM mode the ALFFT core can calculate a group of data blocks in the pipelined mode. In this mode the START impulse is activated once per group of data blocks. Each data block is sampled without time thresholds between FFT calculations. Each block of results is followed by the READY impulse. Therefore, in pipelined mode the core calculates the FFT approximately for clock cycles when the block number is rather high. Data and coefficient width selection considerations Unlike DSP microprocessors and FFT cores with the stiff data width the ALFFT core has the variable data and coefficient width. This opportunity gives the advantage to minimize both the hardware volume and maximum clock frequency by the given dynamic range of the core. The dynamic range of the core must be equal or higher of one of the input signal. In most cases the dynamic range is considered as the signal to noise ratio (SNR). The sourse of the noise in DSP application is in general the truncation operation of data words. Therefore the dynamic range of input data in decibels can be approximated as 3.01* log 2 (3/2*2 2*iwidth ) 6* iwidth + 1.8, where iwidth is the input data width. The exact dynamic range of the core cannot be derived analytically because of complex process of truncation error accumulation, and dependence on the input signal characteristics. The output dates represent complex vectors which are characterized by both magnitude and phase. Therefore in some applications where the phase is considered the phase error characterizes the dynamic range. The ALFFT core is supported by the testbench ALFFT_CORE_TB.vhd which is intended both for the core testing and for the dynamic range measuring. The input signal is the sum of 5 complex sine waves with different frequencies. At the output of the core the square mean error, SNR and phase error of the signal are measured. The table 3 shows dependence between differerent data and coefficient width, FFT length, hardware volume, and SNR of the core. The table 5 shows the dependence between coefficient width wwidth, SNR and phase error for the core by 1024 point FFT, and output data width owidth=16. The table analysis gives the following rule of the thumb: wwidth iwidth owidth; wwidth = owidth 3; when phase error is not considered then the coefficient width can be less than owidth 3. Coefficient CLB slices Phase error, SNR, db width, 8 bit 609 x10 13.22-3 rad. 59.6 9 635 5.91 66.8 10 670 2.84 73.0 11 709 1.42 77.9 12 731 0.93 80.8 13 759 0.43 82.0 14 792 0.37 82.1 15 816 0.37 82.2 16 850 0.37 82.3 Table 5. Phase error and SNR measurements contra hardware volume in CLB slices, and coefficient width for 1024-point FFT, and 16 bit output data for Xilinx VIRTEX-300 devices www.aldec.com Page 13

Deliverables The ALFFT core is delivered as a set of VHD files: ALFFT_core.VHD root file of the synthesable core model. FFTDPATH.VHD, CONTROL.VHD, ROM_COS.VHD, RAM1X.VHD, RAM2X.VHD - files of the component models. Test bench files ALFFT_CORE_TB.VHD, SIN_MIX.VHD. Example of the after synthesis, and timing model. www.aldec.com Page 14