AN 464: DFT/IDFT Reference Design

Similar documents
24K FFT for 3GPP LTE RACH Detection

Intel Arria 10 Native Floating- Point DSP Intel FPGA IP User Guide

Interlaken IP Core (2nd Generation) Design Example User Guide

Intel Stratix 10 H-tile Hard IP for Ethernet Design Example User Guide

Intel Stratix 10 Logic Array Blocks and Adaptive Logic Modules User Guide

White Paper. Floating-Point FFT Processor (IEEE 754 Single Precision) Radix 2 Core. Introduction. Parameters & Ports

SerialLite III Streaming IP Core Design Example User Guide for Intel Arria 10 Devices

SerialLite III Streaming IP Core Design Example User Guide for Intel Stratix 10 Devices

FFT MegaCore Function User Guide

Intel Stratix 10 Low Latency 40G Ethernet Design Example User Guide

Low Latency 100G Ethernet Design Example User Guide

25G Ethernet Intel Stratix 10 FPGA IP Design Example User Guide

Low Latency 100G Ethernet Intel Stratix 10 FPGA IP Design Example User Guide

Intel Xeon with FPGA IP Asynchronous Core Cache Interface (CCI-P) Shim

Intel Acceleration Stack for Intel Xeon CPU with FPGAs 1.0 Errata

Altera ASMI Parallel II IP Core User Guide

H-tile Hard IP for Ethernet Intel Stratix 10 FPGA IP Design Example User Guide

Intel FPGA Temperature Sensor IP Core User Guide

Intel Cyclone 10 External Memory Interfaces IP Design Example User Guide

ASMI Parallel II Intel FPGA IP Core User Guide

High Bandwidth Memory (HBM2) Interface Intel FPGA IP Design Example User Guide

Low Latency 40G Ethernet Example Design User Guide

AN 834: Developing for the Intel HLS Compiler with an IDE

Nios II Custom Instruction User Guide

External Memory Interfaces Intel Arria 10 FPGA IP Design Example User Guide

Intel Stratix 10 Analog to Digital Converter User Guide

Intel Quartus Prime Software Download and Installation Quick Start Guide

Intel MAX 10 User Flash Memory User Guide

Customizable Flash Programmer User Guide

Intel Stratix 10 External Memory Interfaces IP Design Example User Guide

Intel FPGA Voltage Sensor IP Core User Guide

Memory Optimization for OpenCL on Intel FPGAs Exercise Manual

Intel Stratix 10 Variable Precision DSP Blocks User Guide

Intel HLS Compiler: Fast Design, Coding, and Hardware

Intel Stratix 10 H-Tile PCIe Link Hardware Validation

Remote Update Intel FPGA IP User Guide

10. Introduction to UniPHY IP

FFT MegaCore Function User Guide

Generic Serial Flash Interface Intel FPGA IP Core User Guide

Intel Accelerator Functional Unit (AFU) Simulation Environment (ASE) Quick Start User Guide

Quick Start Guide for Intel FPGA Development Tools on the Nimbix Cloud

FFT MegaCore Function

Nios II Performance Benchmarks

PCI Express Multi-Channel DMA Interface

Simulating the ASMI Block in Your Design

Timing Analyzer Quick-Start Tutorial

Applying the Benefits of Network on a Chip Architecture to FPGA System Design

Mailbox Client Intel Stratix 10 FPGA IP Core User Guide

PCI Express*: Migrating to Intel Stratix 10 Devices for the Avalon Streaming Interface

AN 839: Design Block Reuse Tutorial

AN 830: Intel FPGA Triple-Speed Ethernet and On-Board PHY Chip Reference Design

EFEC20 IP Core. Features

OTU2 I.4 FEC IP Core (IP-OTU2EFECI4Z) Data Sheet

Intel Acceleration Stack for Intel Xeon CPU with FPGAs Version 1.2 Release Notes

FFT MegaCore Function User Guide

AN 830: Intel FPGA Triple-Speed Ethernet and On-Board PHY Chip Reference Design

Intel Quartus Prime Pro Edition Software and Device Support Release Notes

8. Introduction to UniPHY IP

Implementing 9.8G CPRI in Arria V GT and ST FPGAs

Intel Quartus Prime Pro Edition Software and Device Support Release Notes

Intel Quartus Prime Pro Edition

Avalon Interface Specifications

AN 836: RapidIO II Reference Design for Avalon-ST Pass-Through Interface

Intel Arria 10 Native Fixed Point DSP IP Core User Guide

SDI II Intel FPGA IP User Guide

Intel High Level Synthesis Compiler

AN 807: Configuring the Intel Arria 10 GX FPGA Development Kit for the Intel FPGA SDK for OpenCL

Nios II Embedded Design Suite Release Notes

2.5G Reed-Solomon II MegaCore Function Reference Design

AN 825: Partially Reconfiguring a Design on Intel Stratix 10 GX FPGA Development Board

AN 831: Intel FPGA SDK for OpenCL

Stratix 10 Serial Flash Mailbox Client Intel FPGA IP Core User Guide

LDPC IP Core User Guide

Partial Reconfiguration Solutions IP User Guide

Intel Arria 10 and Intel Cyclone 10 Avalon -MM Interface for PCIe* Design Example User Guide

MAX 10 User Flash Memory User Guide

AN 756: Altera GPIO to Altera PHYLite Design Implementation Guidelines

OTU2 I.9 FEC IP Core (IP-OTU2EFECI9) Data Sheet

Fixed-Point IP Cores (ALTERA_FIXED- POINT_FUNCTIONS) User Guide

Avalon Interface Specifications

Intel Quartus Prime Pro Edition Software and Device Support Release Notes

AN 447: Interfacing Intel FPGA Devices with 3.3/3.0/2.5 V LVTTL/ LVCMOS I/O Systems

Accelerator Functional Unit (AFU) Developer s Guide

AN 818: Static Update Partial Reconfiguration Tutorial

AN 825: Partially Reconfiguring a Design on Intel Stratix 10 GX FPGA Development Board

4. TriMatrix Embedded Memory Blocks in HardCopy IV Devices

Mailbox Client Intel Stratix 10 FPGA IP Core User Guide

DDR and DDR2 SDRAM Controller Compiler User Guide

White Paper Taking Advantage of Advances in FPGA Floating-Point IP Cores

Section III. Transport and Communication

Quick Start Guide for Intel FPGA Development Tools on the Microsoft* Azure* Platform

AN 818: Static Update Partial Reconfiguration Tutorial

Reed-Solomon Compiler User Guide

Low Latency 40- and 100-Gbps Ethernet MAC and PHY MegaCore Function User Guide

ALTERA_CORDIC IP Core User Guide

Altera I/O Phase-Locked Loop (Altera IOPLL) IP Core User Guide

Intel FPGA USB Download Cable User Guide

Fast Fourier Transform IP Core v1.0 Block Floating-Point Streaming Radix-2 Architecture. Introduction. Features. Data Sheet. IPC0002 October 2014

4K Format Conversion Reference Design

Interlaken IP Core (2nd Generation) User Guide

Transcription:

Subscribe Send Feedback Latest document on the web: PDF HTML

Contents Contents About the DFT/IDFT Reference Design... 3 Functional Description for the DFT/IDFT Reference Design... 4 Parameters for the DFT/IDFT Reference Design... 7 Signals for the DFT/IDFT Reference Design...8 Getting Started with the DFT/IDFT Reference Design...10 System Requirements for the DFT/IDFT Reference Design...10 Installing the DFT/IDFT Reference Design...10 Simulating the DFT/IDFT Reference Design with the Avalon-ST Testbench... 11 Simulating the Reference design with the Command Line Regression Test... 12 Synthezising the DFT/IDFT Reference Design... 12 Running the Fixed-Point Model for the DFT/IDFT Reference Design... 14 Fixed-Point Model Parameters... 14 Performance of DFT/IDFT Reference Design...16 Document Revision History for...17 2

About the DFT/IDFT Reference Design The DFT/IDFT reference design performs a discrete Fourier transform (DFT) or an inverse DFT (IDFT) of a complex input sequence and produces a complex output sequence. The reference design performs the functions for either a DFT in the uplink or an IDFT in the downlink of a typical 3G long-term evolution (LTE) physical interface (PHY) implementation The design inputs the transform length coincident with the first validated data sample. The design can configure the transform length at runtime (on a block-by-block basis) to any one of the 53 sizes specified by 3GPP TS 36.101 version 8.29.0 Release 8.. The reference design uses Avalon Streaming (Avalon-ST) interfaces for the inputs and the outputs. The input samples are in an integer format; the output samples are in block floating point format. Parameters specify the transform mode (DFT or IDFT) and internal bit widths for the datapath and the twiddle value precision. The reference design targets at Intel Stratix 10 devices and meets typical latency requirements while minimizing power. Intel Corporation. All rights reserved. Intel, the Intel logo, Altera, Arria, Cyclone, Enpirion, MAX, Nios, Quartus and Stratix words and logos are trademarks of Intel Corporation or its subsidiaries in the U.S. and/or other countries. Intel warrants performance of its FPGA and semiconductor products to current specifications in accordance with Intel's standard warranty, but reserves the right to make changes to any products and services at any time without notice. Intel assumes no responsibility or liability arising out of the application or use of any information, product, or service described herein except as expressly agreed to in writing by Intel. Intel customers are advised to obtain the latest version of device specifications before relying on any published information and before placing orders for products or services. *Other names and brands may be claimed as the property of others. ISO 9001:2008 Registered

Functional Description for the DFT/IDFT Reference Design The input is an Avalon-ST sink interface with a ready latency of 1. The design does not use the eop signal at the input as it expects packets of exactly length. The transform commences within the design after you provide all length samples. Figure 1. Block Diagram I Q Transform Length N* iqinpercc N* iqinpercc 12 DFT 3P3R 3N 3N 8 I Q Block Exponent Optional Buffer 3N 3N 8 I Mantissa Q Mantissa Block Exponent The DFT 3P3R block decomposes the input block into three sub-blocks and performs three parallel DFT operations. The DFT results feed a parallel radix-3 pipelined engine for the final radix-3 pass that computes the final DFT result. The DFT radix-3 engine output 3 IQ samples per clock cycle. Intel Corporation. All rights reserved. Intel, the Intel logo, Altera, Arria, Cyclone, Enpirion, MAX, Nios, Quartus and Stratix words and logos are trademarks of Intel Corporation or its subsidiaries in the U.S. and/or other countries. Intel warrants performance of its FPGA and semiconductor products to current specifications in accordance with Intel's standard warranty, but reserves the right to make changes to any products and services at any time without notice. Intel assumes no responsibility or liability arising out of the application or use of any information, product, or service described herein except as expressly agreed to in writing by Intel. Intel customers are advised to obtain the latest version of device specifications before relying on any published information and before placing orders for products or services. *Other names and brands may be claimed as the property of others. ISO 9001:2008 Registered

Functional Description for the DFT/IDFT Reference Design Figure 2. Example of DFT IQ samples output sequence for block size 3,240 IQ output 1: [DATA 0] [DATA 1] [DATA 2]... [DATA 1079] IQ output 2: [DATA 1080] [DATA 1081] [DATA 1082]... [DATA 2159] IQ output 3: [DATA 2160] [DATA 2161] [DATA 2162]... [DATA 3239] 3240 FFT 3240 FFT... 1080 FFT......... DFT radix-r Engine 1 DFT radix-r Engine 2 DFT radix-r Engine 3......... DFT engine Parallel radix -3......... You can configure the number of input IQ samples per clock cycle for the Avalon-ST sink interface with parameter iqinpercc that has values of 1 and 3. Setting the IQ samples per clock cycle to 3 reduces the block load latency on the DFT reference design, provided that the targeted system can sustain the DFT input throughput. You can configure the output Avalon-ST interface to come from the DFT engine from an optional buffer. The buffer depth is user selectable. With the buffer there is a ready signal input, which prevents data streaming out as soon as the DFT engine finishes a transform. When the DFT engine finishes a transform is determined by: when data is input to the design, and the transform time for the current length. The reference design uses an Avalon-ST interface to output the transformed block into three parallel IQ sub-blocks. Table 1. Transform Sizes Transform Size Block-to-Block Latency (cycles) Input-to-Output Latency 1 IQ input sample/ clock cycle 3 IQ input samples/ clock cycle (cycles) 1 IQ input sample/clock cycle (µs) 1 IQ input sample/clock cycle 12 63 55 91 0.185 24 118 102 154 0.313 36 143 119 187 0.380 48 168 136 220 0.447 60 193 153 253 0.514 continued... 5

Functional Description for the DFT/IDFT Reference Design Transform Size Block-to-Block Latency (cycles) Input-to-Output Latency 1 IQ input sample/ clock cycle 3 IQ input samples/ clock cycle (cycles) 1 IQ input sample/clock cycle (µs) 1 IQ input sample/clock cycle 72 266 218 334 0.679 96 323 259 407 0.828 108 351 279 443 0.901 120 380 300 480 0.976 144 436 340 552 1.123 180 521 401 661 1.344 192 549 421 697 1.418 216 702 558 866 1.762 240 662 502 842 1.713 288 895 703 1107 2.252 300 803 603 1023 2.081 324 991 775 1227 2.496 360 1088 848 1348 2.742 384 1152 896 1428 2.905 432 1280 992 1588 3.230 480 1409 1089 1749 3.558 540 1569 1209 1949 3.965 576 1665 1281 2069 4.209 600 1730 1330 2150 4.374 648 2098 1666 2550 5.188 720 2050 1570 2550 5.188 768 2178 1666 2710 5.513 864 2747 2171 3343 6.801 900 2531 1931 3151 6.410 960 2691 2051 3351 6.817 972 3071 2423 3739 7.607 1080 3396 2676 4136 8.414 1152 3612 2844 4400 8.951 1200 3332 2532 4152 8.447 1296 4044 3180 4928 10.026 1440 4477 3517 5457 11.102 1500 4133 3133 5153 10.483 1536 4765 3741 5809 11.818 1620 5017 3937 6117 12.445 continued... 6

Functional Description for the DFT/IDFT Reference Design Transform Size Block-to-Block Latency (cycles) Input-to-Output Latency 1 IQ input sample/ clock cycle 3 IQ input samples/ clock cycle (cycles) 1 IQ input sample/clock cycle (µs) 1 IQ input sample/clock cycle 1728 5341 4189 6513 13.250 1800 5558 4358 6778 13.789 1920 5918 4638 7218 14.685 1944 6662 5366 7978 16.231 2160 6638 5198 8098 16.475 2304 7070 5534 8626 17.549 2400 7359 5759 8979 18.267 2592 8823 7095 10571 21.506 2700 8259 6459 10079 20.505 2880 8799 6879 10739 21.848 2916 9903 7959 11867 24.143 3000 9160 7160 11180 22.745 3072 9375 7327 11443 23.280 3240 10984 8824 13164 26.782 If you turn on the output buffer, the ready input controls the data flow out of the buffer. The buffer always fills in bursts as the DFT engine completes individual transforms so you must ensure the buffer depth is adequate for your system to avoid overflow. The design behaves unpredictably if the buffer overflows. The design provides the sop and eop signals at the output, which you can optionally use. To perform an IDFT, set the idft_mode parameter to 1. The design does not perform the 1/length scaling for an IDFT. Related Information Avalon Interface Specification Parameters for the DFT/IDFT Reference Design Table 2. Parameters Name Values Description Idft_mode 0 or 1 0 = DFT, 1 = inverse DFT. iqinpercc 1 or 3 Input. IQ samples per clock cycle. datawidth 16.. 24 Internal datapath and input widths in bits. twidwidth 14.. 24 Twiddle factor and butterfly weight coefficient widths in bits (internal to the design). use_output_buffer 0 or 1 0 = no output buffer is instantiated and the output interface does not have a ready input (source_ready_inis inactive). continued... 7

Functional Description for the DFT/IDFT Reference Design 1= an output buffer is instantiated, which allows the reading of data from the design to be paused. The ready latency is 0. BUFFER_DEPTH 4.. 2048 Ifuse_output_buffer=1, this parameter defines the buffer depth. Each buffer location corresponds to one pair of complex (I and Q) samples. BUFFER_DEPTH_N 2.. 11 Set so that 2BUFFER_DEPTH_N>= BUFFER_DEPTH For example, if BUFFER_DEPTH= 600, set BUFFER_DEPTH_Nto 10. Signals for the DFT/IDFT Reference Design Table 3. Signals Name Direction Description a_reset_n Input Active low asynchronous reset. Deassert synchronously to clkto avoid reset-release timing violations. clk Input System clock. All logic in the design is synchronous to this clock. exponent[7:0] Output Avalon-ST source data. Exponent of all samples in the packet.a single value is valid throughout the packet on this output. sink_eop Input Avalon-ST sink end of packet. The design does not use this signal. sink_imag[datawidth-1:0] Input Avalon-ST sink data. Imaginary (Q) input sample. sink_imag[iqinpercc * datawidth-1:0] Input - sink_length[10:0] Input Transform length. A straight binary encoding of one of the lengths.the value on this input is sampled when sink_valid is high and sink_ready was high on the previous cycle. sink_ready Output Avalon-ST Ready. The input interface has a ready latency of 1. sink_real[datawidth-1:0] Input Avalon-ST sink data. Real (I) input sample. sink_real[iqinpercc * datawidth-1:0] sink_sop Input Avalon-ST sink start of packet. sink_valid Input Avalon-ST sink valid. source_eop Output Avalon-ST source end of packet. source_imag[datawidth- 1:0] Output Avalon-ST source data. Mantissa of Imaginary (Q) output sample. source_imag_eng1[datawidth-1:0] Output Avalon-ST source data for dft engine 1.Mantissa of Imaginary (Q) output sample. source_imag_eng2[datawidth-1:0] Output Avalon-ST source data for dft engine 2.Mantissa of Imaginary (Q) output sample. source_imag_eng3[datawidth-1:0] Output Avalon-ST source data for dft engine 3.Mantissa of Imaginary (Q) output sample. source_real_eng1[datawidth-1:0] Output Avalon-ST source data for dft engine 1.Mantissa of Real (I) output sample. source_real_eng2[datawidth-1:0] Output Avalon-ST source data for dft engine 2.Mantissa of Real (I) output sample. source_real_eng3[datawidth-1:0]. Output Avalon-ST source data for dft engine 3.Mantissa of Real (I) output sample, continued... 8

Functional Description for the DFT/IDFT Reference Design Name Direction Description source_ready_in Input Avalon-STsource ready. This signal is only enabled if the parameter use_output_buffer is set to 1. The ready latency is0. source_sop Output Avalon-ST source start of packet. source_valid Output Avalon-ST source valid. 9

Getting Started with the DFT/IDFT Reference Design System Requirements for the DFT/IDFT Reference Design The reference design requires the following hardware and software: MATLAB version R2016b Intel Quartus Prime version 17.1 Installing the DFT/IDFT Reference Design 1. Run the an464.zip file. You may need to add the /modeldirectory to the MATLAB path. Figure 3. Directory Structure Intel Corporation. All rights reserved. Intel, the Intel logo, Altera, Arria, Cyclone, Enpirion, MAX, Nios, Quartus and Stratix words and logos are trademarks of Intel Corporation or its subsidiaries in the U.S. and/or other countries. Intel warrants performance of its FPGA and semiconductor products to current specifications in accordance with Intel's standard warranty, but reserves the right to make changes to any products and services at any time without notice. Intel assumes no responsibility or liability arising out of the application or use of any information, product, or service described herein except as expressly agreed to in writing by Intel. Intel customers are advised to obtain the latest version of device specifications before relying on any published information and before placing orders for products or services. *Other names and brands may be claimed as the property of others. ISO 9001:2008 Registered

Getting Started with the DFT/IDFT Reference Design <path> Installation directory. doc Contains all documentation for this reference design. example_quartus_project Contains the Qiuartus II example project. Default parameters are datawidth = twidwidth = 18 and with no buffer. model Contains a fixed point MATLAB model. twiddle_rom Data files for the model. rom_data Contains.hex files and VHDL package files that define internal coefficients for the specified precision widths. scripts Contains regression test scripts. File dft_mti.tcl is the ModelSim simulation script for the regression test; file go_regtest_full.bat runs the regression test. sim Simulation directory for the regression tests. output_results Output files for each simulation test case. transcripts ModelSim transcript file for each test case. sim_top Simulation directory for the simple streaming test. Contains input and expected ouptut data for the test. File lte_fft_top.tcl is the ModelSim simulation script. Default parameters are datawidth = twidwidth = 18 and with no buffer. src Contains VHDL RTL source code. gen Script generated RTL code. File control_lut.vhd is the script-generated VHDL RTL file. Do not edit this file. File gen_lut_contents.m generates a MATLAB.mat file that contains control data that defines the 34 transform sizes. File control_lut.m generates the VHDL RTL file control_lut.vhd from the generated.mat file. File control_lut_template.vhd is a text template for the file control_lut.vhd. This file is read when control_lut.m is run. tb Contains the testbench files for both the regression test and the Avalon-ST test. common Contains behavioural VHDL source and sink modules for the Avalon-ST testbench. Simulating the DFT/IDFT Reference Design with the Avalon-ST Testbench The Avalon-ST testbench and script uses a single fixed set of parameters and runs a sequence of transforms with the transform length changing. This testbench quickly demonstrates the integration of the reference design and the Avalon-ST interfaces. 1. Open the ModelSim simulator. 2. Change the directory to/sim_top. 3. Type the following command: source ltefft_top.tclr Ignore the address out of range warnings. 4. Compare the output file output_data.txt with the expected output expected_output_data_random_16_blocks.txt, to ensure they match except for the block length comments in the expected file. 11

Getting Started with the DFT/IDFT Reference Design The test input file is input_stream_random_17_blocks.txt. The sequence of sizes are listed in the readme_random_17_blocks.txt file in the \sim_top directory. Simulating the Reference design with the Command Line Regression Test The command-line regression test runs different combinations of parameters with different transform lengths. The transform results are compared to the output of a MATLAB fixed-point model fed with the same input data. This regression test takes much longer to run. This task only exercises the kernel and does not use the Avalon-ST interfaces. 1. Open a command prompt. 2. Type the following commands, to run the 68 tests defined in file gen_configurations/core_configurations_to_test_main_full.txt: cd <install path>/dft/scriptsr go_regtest_fullr 3. Wait until *** All Done. *** is displayed. Synthezising the DFT/IDFT Reference Design Intel provides an example project in the directory /example_quartus_project. 1. Open file /src/new/ltefft.top.vhd and edit the following top-level parameters as desired. entity ltefft_top is generic ( idft_mode : integer := 0; datawidth : positive := 18; twidwidth : positive := 16; iqinpercc : positive := 3; -- input IQ samples per CC use_output_buffer : boolean := false; --true; --false; BUFFER_DEPTH : integer := 1200; --8; -- 4 8 16 32 64 128 256 512 1024 2048 BUFFER_DEPTH_N : integer := 11; --3; -- 2 3 4 5 6 7 8 9 10 11 use_90_optimised_twiddle_rom : integer := 1 -- must always be = 1 ); Note: These default settings have no effect on the simulation runs. 2. Copy all.hex files from the /rom_data/bits_<twidwidth>/ drectory to the / example_quartus_proj/hex_rom directory. Skip this step if you are not changingthe default parameters. 3. Copy the file butterfly_coef_pkg.vhd from the dft/rom_data/ bfly_coef_pkgs/bits_<twidwidth> directory. Skip this step if you are not changingthe default parameters. 4. Open the Intel Quartus Prime software. 12

Getting Started with the DFT/IDFT Reference Design 5. Open the project in the /example_quartus_proj/ directory. 6. Selecta a device. 7. Compile the design. 13

Running the Fixed-Point Model for the DFT/IDFT Reference Design The fixed-point MATLAB model allows fast bit-accurate simulation of the design s arithmetic behavior. The model is as a MATLAB function dft_3p3r_model() and is defined in the file dft_3p3rmodel.m. This top- level file and the sub-function MATLAB files are in the /model directory. Intel provides a MATLAB example that calls the model in file simple_dft_example.m 1. Open the MATLAB software. 2. Change the directory to /model. 3. Type the following command: simple_dft_example 4. Open the results file and examine the data. The results file is: <DFT type>_length<length>_data<d_top>bit_tw<t_top>bit_rand<seed>.tx t The simple_dft_example.m file defines the parameters. Fixed-Point Model Parameters The simple_dft_example.m file defines the parameters for the DFT/IDFT Reference Design fixed-point model. The following pairs of columns are from left to right: 1. Input data 2. Model block Floating Point output. 3. Model integer output. 4. MATLAB output. 5. Absolute Difference between the Model and MATLAB outputs 6. Percentage difference between the Model and MATLAB outputs. In each pair of columns the left hand column is the real data and the right hand column is the imaginary data. All data is in normal order with time 0 and bin 0 on the first row. The model and the reference design do not perform 1/length scaling when in IDFT mode, so the 1/length scaling is removed from the MATLAB results by multiplying all samples by the length. Intel Corporation. All rights reserved. Intel, the Intel logo, Altera, Arria, Cyclone, Enpirion, MAX, Nios, Quartus and Stratix words and logos are trademarks of Intel Corporation or its subsidiaries in the U.S. and/or other countries. Intel warrants performance of its FPGA and semiconductor products to current specifications in accordance with Intel's standard warranty, but reserves the right to make changes to any products and services at any time without notice. Intel assumes no responsibility or liability arising out of the application or use of any information, product, or service described herein except as expressly agreed to in writing by Intel. Intel customers are advised to obtain the latest version of device specifications before relying on any published information and before placing orders for products or services. *Other names and brands may be claimed as the property of others. ISO 9001:2008 Registered

Running the Fixed-Point Model for the DFT/IDFT Reference Design Table 4. Model Output Parameters Variable Name Type Description vec_out blk_exponent Array of complex integers Integer ( 127 to +127) Complex output array in normal order (provided disable_reordering = 0) Array length is the same as input array 'vec' Exponent value common to all values in output array vec_out. If you use the model for system modelling without reference to the RTL, set invert_sign_of_exponent to 0 so that the ouput sample values are: vec_out 2b l k_ex pone nt Table 5. Model Input Parameters Variable Name Type Default Value (1) Description vec Array of complex integers Input array to be transformed. The model performs a transform of length equal to the input array length. The array length must be one of the 34 lengths. model_is_fixed_point 0 or 1 1 0 = double precision model; 1 = fixed point model. idft_mode 0 or 1 0 = DFT; 1 = IDFT. B_top Integer 14 to 24 T_top (2) Butterfly coefficient precision in bits. D_top T_top Integer 14 to 24 Integer 14 to 24 RAM data path width in bits. This value is also the input data width and the mantissa width of the output samples. Twiddle coefficient precision in bits. bfly_mult_convergent_mode 0 or 1 1 Rounding mode at outputs of butterfly complex multipliers: 0 = symetrical round-up 1 = convergent rounding tw_mult_convergent_mode 0 or 1 1 Rounding mode at outputs of twiddle complex multipliers: 0 = symetrical round up 1 = convergent rounding (3) limit_bfp_mux_size 0 or 1 1 0 = BFP scaling is done to the full precision of width D_top width. 1 = BFP scaling is limited to max_num_of_bfp_msb_shift_b itsbits down from the MSB. (3) max_num_of_bfp_msb_shift_ bits 2 to (D_top 1) 3 BFP scaler size. (3) skip_bfp_on_last_pass 0 or 1 1 0 = BFP scaling is performed on all reads from data RAM; 1= BFP scaling is omitted for the last read from data RAM. (3) (1) Typical settings to use when running the model or default value that you should use so that the model matches the RTL behavior. (2) In the RTL, the value of B_top is always equal to the value set for T_top. (3) These parameters are only valid for fixed_point_model = 1. 15

Performance of DFT/IDFT Reference Design Table 6. Performance The table shows the resource utilization of the 3P3R DFT design example on a Intel Stratix 10 device. The targeted frequency is 491.52 MHz. Version DSP Blocks RAM Blocks ALUTs Dedicated Registers ALMs F MAX (MHz) 3P3R DFT 1SG280LN3F43E2VG 46 62 M20Ks 4,595 9,445 4,383 491.52 Intel Corporation. All rights reserved. Intel, the Intel logo, Altera, Arria, Cyclone, Enpirion, MAX, Nios, Quartus and Stratix words and logos are trademarks of Intel Corporation or its subsidiaries in the U.S. and/or other countries. Intel warrants performance of its FPGA and semiconductor products to current specifications in accordance with Intel's standard warranty, but reserves the right to make changes to any products and services at any time without notice. Intel assumes no responsibility or liability arising out of the application or use of any information, product, or service described herein except as expressly agreed to in writing by Intel. Intel customers are advised to obtain the latest version of device specifications before relying on any published information and before placing orders for products or services. *Other names and brands may be claimed as the property of others. ISO 9001:2008 Registered

Document Revision History for AN 464: DFT/IDFT Reference Design Version Changes 2018.05.30 Added support for Intel Stratix 10 devices. 2007.06.01 Initial release. Intel Corporation. All rights reserved. Intel, the Intel logo, Altera, Arria, Cyclone, Enpirion, MAX, Nios, Quartus and Stratix words and logos are trademarks of Intel Corporation or its subsidiaries in the U.S. and/or other countries. Intel warrants performance of its FPGA and semiconductor products to current specifications in accordance with Intel's standard warranty, but reserves the right to make changes to any products and services at any time without notice. Intel assumes no responsibility or liability arising out of the application or use of any information, product, or service described herein except as expressly agreed to in writing by Intel. Intel customers are advised to obtain the latest version of device specifications before relying on any published information and before placing orders for products or services. *Other names and brands may be claimed as the property of others. ISO 9001:2008 Registered