Upgrading an Atlantic Interface to an Avalon Streaming Interface Design Example v8.0 README File This readme file contains the following sections: o Introduction o Feature Summary o Functional Description o Simulation Instructions o Compilation Instructions o Reference o Release History o Design Examples Disclaimer o Contacting Altera Introduction ============== When upgrading an old module with Atlantic interface to a design with Avalon streaming interface, you must pay special attention to the interface flow control signals. In this example, we look at a typical upgrade scenario and show you how to effectively implement the flow control adaptation. Suppose we had a design using an old FFT MegaCore that has Atlantic interface. Atlantic source and sink blocks were built around the FFT core to supply data and record FFT data output, respectively. Now we would like to update the design to use a new FFT MegaCore that uses the new, more effective flow control -- Avalon Streaming interface. Our goal is to keep Atlantic source and sink blocks unchanged, and build minimum control logic around the new FFT core so that it can be used with the Atlantic source and sink modules. Simulation Instructions ======================= Software Requirement --------------------- To run this design example, you need the following software tools: o Windows 2000/XP o Altera QuartusII v8.0 o Altera FFT MegaCore v8.0 o Altera FFT MegaCore v2.2.1 o ModelSim SE or PE Folder Structure ----------------- This design example includes a FIFO, a ready latency adaptor, an FFT core and test benches. fft_atl_burst_tb.v is the FFT v2.2.1 auto generated test bench, which tests the Atlantic interfaced FFT core using the random input test data. tb_burst.v is based on fft_atl_burst_tb.v with no logical changes. It tests the new Avalon streaming core with the wrapper. tb_burst_random.v tests the wrapper with random backpressure signals. ModelSim simulation script is provided for all tests. We also included a C based test script to compare the simulation outputs using an Atlantic FFT core vs using an Avalon Streaming FFT core. The commond folder structure is: o source : contains Verilog source files o scripts : contains tcl scripts for ModelSim simulation o sim : contains simulation output files and C script for checking RTL simulation results o tb : contains testbench files Instantiate FFT Core ------------------ Before you simulate or compile this design example, please re-instantiate the FFT core based on the provided wrapper. Browse to the \source\fft_ast_burst\ folder, and open MegaWizard in Quartus II. Use 'Edit an existing Megacore' to re-instantiate the FFT core. The default setting uses burst architecture. The input data width is 16 with FFT size 256. After verifying the settings, check generate Verilog simulation model and re-generate an FFT instantiation. Repeat the same procedure to instantiate and FFT v2.2.1 core in \source\fft_atl_burst\. Simulation Scripts ------------------ You can use the provided ModelSim simulation script to automate the simulation process. Browse to \sim folder and locate the script top_msim.tcl. Modify the design installation directories in the tcl script, and run it from Execute Macro from ModelSim Tools menu. We also provided a second script top_msim_atl_fft.tcl. It simulates FFT v2.2.1 and its MegaWizard generated test bench. To verify the RTL simulation results, you can compare the FFT v2.2.1 outputs with FFT v8.0 outputs. The FFT v2.2.1 outputs are saved as text files with prefix atl_. FFT v8.0 output are saved with prefix ast_. You can compare the text output files by compiling and running compare_output.c provided in \sim folder. compare_output.c was tested in gcc v3.4.4. Release History =============== Version 8.0 - Initial Release Design Examples Disclaimer ========================== These design examples may only be used within Altera Corporation devices and remain the property of Altera. They are being provided on an “as-is” basis and as an accommodation; therefore, all warranties, representations, or guarantees of any kind (whether express, implied, or statutory) including, without limitation, warranties of merchantability, non-infringement, or fitness for a particular purpose, are specifically disclaimed. Altera expressly does not recommend, suggest, or require that these examples be used in combination with any other product not provided by Altera. Contacting Altera ================= Although we have made every effort to ensure that this design example works correctly, there might be problems that we have not encountered. If you have a question or problem that is not answered by the information provided in this readme file or the example's documentation, please contact your Altera Field Applications Engineer. If you have additional questions that are not answered in the documentation provided with this function, please contact Altera Applications: World-Wide Web: http://www.altera.com http://www.altera.com/mysupport/ Technical Support Hotline: (800) 800-EPLD (U.S.) (408) 544-7000 (Internationally) Copyright (c) 2008 Altera Corporation. All rights reserved.