Introduction. Synchronous vs. Asynchronous Memory. Converting Memory from Asynchronous to Synchronous for Stratix & Stratix GX Designs

Similar documents
On-Chip Memory Implementations

Using TriMatrix Embedded Memory Blocks

Implementing LED Drivers in MAX Devices

4. TriMatrix Embedded Memory Blocks in HardCopy IV Devices

White Paper The Need for a High-Bandwidth Memory Architecture in Programmable Logic Devices

Implementing LED Drivers in MAX and MAX II Devices. Introduction. Commercial LED Driver Chips

AN 610: Implementing Deterministic Latency for CPRI and OBSAI Protocols in Altera Devices

Stratix II FPGA Family

Stratix FPGA Family. Table 1 shows these issues and which Stratix devices each issue affects. Table 1. Stratix Family Issues (Part 1 of 2)

Enhanced Configuration Devices

Using Flexible-LVDS I/O Pins in

Implementing Double Data Rate I/O Signaling in Stratix & Stratix GX Devices. Introduction. DDR I/O Elements. Input Configuration

DDR & DDR2 SDRAM Controller

Design Guidelines for Optimal Results in High-Density FPGAs

Cyclone II FPGA Family

White Paper Using the MAX II altufm Megafunction I 2 C Interface

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

Using MAX II & MAX 3000A Devices as a Microcontroller I/O Expander

POS-PHY Level 4 MegaCore Function

DSP Development Kit, Stratix II Edition

Nios II Embedded Design Suite 6.1 Release Notes

Nios Soft Core Embedded Processor

DDR and DDR2 SDRAM Controller Compiler User Guide

Simple Excalibur System

SERDES Transmitter/Receiver (ALTLVDS) Megafunction User Guide

DDR & DDR2 SDRAM Controller

Using the Serial FlashLoader With the Quartus II Software

RapidIO MegaCore Function

Low Power Design Techniques

Using MAX 3000A Devices as a Microcontroller I/O Expander

ALTDQ_DQS2 Megafunction User Guide

Video and Image Processing Suite

RLDRAM II Controller MegaCore Function

AN 547: Putting the MAX II CPLD in Hibernation Mode to Achieve Zero Standby Current

Stratix vs. Virtex-II Pro FPGA Performance Analysis

Benefits of Embedded RAM in FLEX 10K Devices

DDR & DDR2 SDRAM Controller Compiler

ZBT SRAM Controller Reference Design

Using Flexible-LVDS Circuitry in Mercury Devices

Arria II GX FPGA Development Board

DDR & DDR2 SDRAM Controller Compiler

Designing RGMII Interface with FPGA and HardCopy Devices

FPGAs Provide Reconfigurable DSP Solutions

Enhanced Configuration Devices

7. External Memory Interfaces in Stratix IV Devices

Implementing LVDS in Cyclone Devices

SONET/SDH Compiler. Introduction. SONET/SDH Compiler v2.3.0 Issues

Using DCFIFO for Data Transfer between Asynchronous Clock Domains

Error Correction Code (ALTECC_ENCODER and ALTECC_DECODER) Megafunctions User Guide

Designing with ESBs in APEX II Devices

RapidIO Physical Layer MegaCore Function

High-Performance FPGA PLL Analysis with TimeQuest

Table 1 shows the issues that affect the FIR Compiler v7.1.

DDR & DDR2 SDRAM Controller Compiler

UTOPIA Level 2 Slave MegaCore Function

ByteBlaster II Parallel Port Download Cable

Excalibur Solutions DPRAM Reference Design

CORDIC Reference Design. Introduction. Background

Introduction. Design Hierarchy. FPGA Compiler II BLIS & the Quartus II LogicLock Design Flow

E3 Mapper MegaCore Function (E3MAP)

Legacy SDRAM Controller with Avalon Interface

FFT MegaCore Function User Guide

Errata Sheet for Cyclone IV Devices

POS-PHY Level 4 POS-PHY Level 3 Bridge Reference Design

7. External Memory Interfaces in Arria II Devices

Design Verification Using the SignalTap II Embedded

Excalibur Solutions Using the Expansion Bus Interface. Introduction. EBI Characteristics

RapidIO MegaCore Function

FFT/IFFT Block Floating Point Scaling

Using the Nios Development Board Configuration Controller Reference Designs

Implementing PLL Reconfiguration in Stratix & Stratix GX Devices

Implementing Bus LVDS Interface in Cyclone III, Stratix III, and Stratix IV Devices

AIRbus Interface. Features Fixed width (8-, 16-, or 32-bit) data transfers (dependent on the width. Functional Description. General Arrangement

PCI Express Multi-Channel DMA Interface

Simulating the PCI MegaCore Function Behavioral Models

T3 Framer MegaCore Function (T3FRM)

White Paper Performing Equivalent Timing Analysis Between Altera Classic Timing Analyzer and Xilinx Trace

Arria II GX FPGA Development Board

PCI Express Compiler. System Requirements. New Features & Enhancements

Active Serial Memory Interface

FPGA Design Security Solution Using MAX II Devices

10. Introduction to UniPHY IP

Stratix II vs. Virtex-4 Performance Comparison

Matrices in MAX II & MAX 3000A Devices

White Paper Configuring the MicroBlaster Passive Serial Software Driver

Table 1 shows the issues that affect the FIR Compiler, v6.1. Table 1. FIR Compiler, v6.1 Issues.

Figure 1. Device Package Ordering Information for Stratix, Stratix GX, Cyclone, APEX 20KC, APEX II, Mercury & Excalibur Devices EP1S 25 F 780 C 5 N

White Paper Understanding 40-nm FPGA Solutions for SATA/SAS

Transient Voltage Protection for Stratix GX Devices

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

Using VCS with the Quartus II Software

Simulating the Reed-Solomon Model

Power Optimization in FPGA Designs

Simultaneous Multi-Mastering with the Avalon Bus

8. Introduction to UniPHY IP

Estimating Nios Resource Usage & Performance

DSP Builder. DSP Builder v6.1 Issues. Error When Directory Pathname is a Network UNC Path

POS-PHY Level 4 MegaCore Function (POSPHY4)

White Paper AHB to Avalon & Avalon to AHB Bridges

Simulating the PCI MegaCore Function Behavioral Models

Transcription:

Converting from synchronous to Synchronous for Stratix & Stratix GX esigns November 2002, ver. 2.0 pplication Note 210 Introduction The Stratix TM and Stratix GX device families provide a unique memory architecture called TriMatrix TM memory, consisting of dedicated memory blocks of three sizes. These blocks provide flexible and effective solutions for various memory applications. Table 1 lists the TriMatrix memory block types and their total memory bits. Table 1. Stratix & Stratix GX TriMatrix locks lock Type Total its M512 block 512 bits w/ parity (576) M4K block 4 Kbits w/ parity (4,608) M-RM block 512 Kbits w/ parity (589,824) f For a detailed explanation of the TriMatrix memory architecture, refer to N 203: Using TriMatrix Embedded locks in Stratix & Stratix GX evices, the Stratix Programmable Logic evice Family ata Sheet, and the Stratix GX FPG Family ata Sheet. TriMatrix memory operates as fully synchronous true or simple dual-port memory capable of running at speeds of up to 312 MHz. The memory can operate in flow-through mode (inputs registered, outputs unregistered) or pipelined mode (inputs and outputs registered). The TriMatrix memory architecture does not support asynchronous memory. Therefore, you should convert asynchronous memory designs to synchronous before implementing them in Stratix and Stratix GX devices. This document illustrates the advantages of synchronous memory operation, including improved performance, and explains how to convert asynchronous memory designs to synchronous. Synchronous vs. synchronous Several important differences exist between asynchronous and synchronous memory. synchronous memory requires that you create a write enable control circuit to generate a pulse every time a write operation occurs. You must consider write address setup and hold time and data setup and hold time on the rising and falling edge of the write enable pulse. The write enable must toggle on every write operation, as the address cannot change while the write enable is active. Figure 1 illustrates how asynchronous memory behaves. ltera Corporation 1 N-210-2.0

Figure 1. synchronous ehavior ata Setup ata Hold ata ddress Write Enable Write ddress Setup Write ddress Hold Synchronous memory design offers several advantages over asynchronous memory design. Simpler timing requirements allow synchronous memory to operate at much higher frequencies, resulting in higher memory bandwidth. Synchronous operation is not prone to errors because signals are registered on clock edges, simplifying the design process. write-enable control circuit is not required because the memory block controls the write strobe generation, saving on resource usage and simplifying the design. dditionally, synchronous memory consumes little standby power. Figure 2 illustrates synchronous memory behavior. 2 ltera Corporation

Figure 2. Synchronous ehavior Clock Setup Hold ata ddress Write Enable In many designs, even if the memory is asynchronous, the modules the memory interfaces with are synchronous, making the conversion to synchronous memory design straightforward. Registers in the data path would move into the memory block, having a negligible effect on functionality. Synchronous esign In synchronous memory operation, the TriMatrix TM memory architecture receives a system clock to control read and write operations. The TriMatrix memory block uses one or more system clocks to generate a selftimed intra-block write pulse strobe. This strobe writes to the memory without toggling the write enable (WE) signal. Since the intra-block pulse toggles, the address lines can change while the WE signal is active, allowing multiple writes to different addresses. The memory block can have a zero hold time, symplifying system design. Synchronous memory can achieve the same or better performance as asynchronous memory if the data path is pipelined and the design is modified to compensate for the additional pipelined stages. You can emulate the behavior of asynchronous memory by choosing an appropriate clock frequency such that the output of the Stratix or Stratix GX memory block behaves similarly to the output of the asynchronous memory. Figure 3 illustrates the output behavior of the memory block when it is asynchronous (-sync), clocked on the positive edge (-Sync), and clocked on the negative edge (-Sync_N). ltera Corporation 3

If the asynchronous memory is in a registered data path as shown in Figure 3, you can make the memory synchronous by using the negative edge of the clock. The output data that is registered into will have the same data 1 whether it is asynchronous (-sync) or synchronous (- Sync_N). Figure 3. Registered ata Path Note (1) Clock ddr 1 2 3 The same data value 1 is registered into with -sync and -Sync_N -sync 1 2 3 -Sync 1 2 -Sync_N 1 2 3 -Pipe 1 2 The data value 1 is available after a one clock cycle delay with -Sync and -Pipe -sync -Sync sync Sync -sync Registered ata Path -Sync Registered ata Path -Sync_N -Pipe Sync Sync -Sync_N Registered ata Path -Pipe Registered ata Path Note to Figure 3: (1) lthough -sync is not possible in the Stratix or Stratix GX memory block, Figure 3 illustrates this for comparison purposes. 4 ltera Corporation

designer can use -Sync or -Pipe to capture the correct data 1 after a one clock cycle delay. Using -Sync or -Pipe increases performance because the system clock is able to operate at a higher frequency compared with the -Sync_N implementation. For example, if the registered data path in Figure 4 is set with the parameters specified below, the maximum performance of the data path is 10 ns for -sync. elay from to the memory block = 3 ns elay through the memory block = 4 ns elay from the memory block to = 3 ns Figure 4. Registered ata Path Performance 3 ns 4 ns 3 ns lock 10 ns 14 ns 7 ns 7 ns 6 ns 3 ns -sync Performance -Sync Performance -Sync_N Performance -Pipe Performance If the asynchronous memory is replaced with a synchronous TriMatrix memory block with the same type of system clock, the maximum performance is 7 ns because of the addition of the input registers (-Sync). If negative-edge clocking is used, system performance decreases as delay from the negative edge of the clock (memory block) to the positive edge of the clock (register ) is 7 ns, effectively half a period. This results in overall performance of 14 ns (-Sync_N). If the memory block is pipelined to include output registers, the system clock performance becomes 6 ns, because the critical path is from the negative edge of the output register of the memory to the positive edge of register. ltera Corporation 5

Converting Existing esigns When migrating designs to Stratix or Stratix GX devices, you must retarget the existing asynchronous memory components to the TriMatrix memory architecture. Conversion requires careful analysis and understanding of the memory operation, and some redesign. Use the following procedure when converting existing asynchronous memory blocks: Recreate the memory function using the MegaWizard Plug-In Manager in the uartus II software (version 2.0 and later) to target the Stratix or Stratix GX device (Tools menu) Implement negative edge clocking for asynchronous memory components Remove the WE signal control circuit Verify registered data path behavior f For information regarding the different TriMatrix memory modes and using the MegaWizard Plug-In Manager to generate memory components, refer to N 203: Using TriMatrix Embedded locks in Stratix & Stratix GX evices. You must connect the clock port of the new synchronous memory component to the clock that feeds the registered data path. Implement negative edge clocking by utilizing a NOT gate primitive to invert the clock feeding the memory component. You can remove the WE pulse generator circuit as it is not required for TriMatrix memory blocks. Once you implement the design changes, verify the behavior of the data path. Using the uartus II software or a third-party simulation tool, perform a timing simulation to verify the functionality of the memory block. Using the uartus II or third party timing analyzer, check setup and hold times to ensure operation at the desired frequency. Many timing analyzers, including the uartus II timing analyzer, automatically take positive or negative clocking of a register into account when computing the maximum frequency. Verify the maximum frequency (f MX ) of the clock feeding the registered data path. If there is a timing violation, or the desired performance is not achieved, further redesign is required. dding pipelined stages and redesigning the system to accommodate the cycle latency associated with additional pipelining can increase performance. Starting New esigns When starting a new design that will utilize TriMatrix memory, consider the following: 6 ltera Corporation

Specifications of the memory s performance and behavior nalysis of the data path etermine the type of memory (single-port ROM, dual-port RM, etc.) required for the application and the required performance of the memory block. Use the MegaWizard Plug-In Manager to create the appropriate memory function. f For more information on Stratix and Stratix GX memory megafunctions, see the ltera web site (www.altera.com). Next, consider the performance required from the available memory block and system clocks. If the desired clock frequency is not available, use the PLLs in the Stratix or Stratix GX device to generate the required clock from one of the system clocks. Consider the number of pipelined stages required to achieve the desired performance. The rest of the design must compensate for the cycle latency. The Stratix and Stratix GX device M-RM blocks can replace external memory devices. Use the Converting Existing esigns section as a guideline for replacing asynchronous external memory. Since memoryaccess times will be much faster with on-chip memory, the TriMatrix memory blocks are able to emulate asynchronous memory in most cases. Conclusion Revision History Stratix and Stratix GX TriMatrix memory blocks must be synchronous. Their performance depends on the frequency of the clock source and the attributes of the data path. It is possible to migrate asynchronous memory designs to Stratix and Stratix GX devices without sacrificing performance or creating behavior changes in most cases. The benefits of synchronous memory designs, such as increased performance and simpler design process, make the TriMatrix memory block a flexible and effective solution for on-chip memory applications. The information contained in N 210: Converting from synchronous to Synchronous for Stratix & Stratix GX esigns version 2.0 supersedes information published in previous versions. The following change was made in N 210: Converting from synchronous to Synchronous for Stratix & Stratix GX esigns version 2.0: added Stratix GX devices throughout the document. ltera Corporation 7

101 Innovation rive San Jose, C 95134 (408) 544-7000 http://www.altera.com pplications Hotline: (800) 800-EPL Literature Services: lit_req@altera.com Copyright 2002 ltera Corporation. ll rights reserved. ltera, The Programmable Solutions Company, the stylized ltera logo, specific device designations, and all other words and logos that are identified as trademarks and/or service marks are, unless noted otherwise, the trademarks and service marks of ltera Corporation in the U.S. and other countries. ll other product or service names are the property of their respective holders. ltera products are protected under numerous U.S. and foreign patents and pending applications, maskwork rights, and copyrights. ltera warrants performance of its semiconductor products to current specifications in accordance with ltera's standard warranty, but reserves the right to make changes to any products and services at any time without notice. ltera 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 ltera Corporation. ltera 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 8 ltera Corporation