0
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心
发布
  • 发文章

  • 发资料

  • 发帖

  • 提问

  • 发视频

创作活动
EP3SE80F780C3N

EP3SE80F780C3N

  • 厂商:

    ENPIRION(英特尔)

  • 封装:

    BBGA780

  • 描述:

    IC FPGA 488 I/O 780FBGA

  • 数据手册
  • 价格&库存
EP3SE80F780C3N 数据手册
Stratix III Device Handbook, Volume 1 101 Innovation Drive San Jose, CA 95134 www.altera.com Software Version: Document Version: Document Date: 10.0 2.2 © March 2011 Copyright © 2010 Altera Corporation. All rights reserved. Altera, The Programmable Solutions Company, the stylized Altera 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 Altera Corporation in the U.S. and other countries. All other product or service names are the property of their respective holders. Altera products are protected under numerous U.S. and foreign patents and pending applications, maskwork rights, and copyrights. Altera warrants performance of its semiconductor products to current specifications in accordance with Altera's standard warranty, but reserves the right to make changes to any products and services at any time without notice. Altera 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 Altera Corporation. Altera 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. SIII5V1-2.2 Contents Chapter Revision Dates Additional Information How to Contact Altera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-xxv Typographic Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-xxv Chapter I. Device Core Revision History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . I-1 Chapter 1. Stratix III Device Family Overview Features Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-1 Architecture Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-6 Logic Array Blocks and Adaptive Logic Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-6 MultiTrack Interconnect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-7 TriMatrix Embedded Memory Blocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-7 DSP Blocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-7 Clock Networks and PLLs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-8 I/O Banks and I/O Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-9 External Memory Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-9 High-Speed Differential I/O Interfaces with DPA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-9 Hot Socketing and Power-On Reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-10 Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-10 Remote System Upgrades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-11 IEEE 1149.1 (JTAG) Boundary-Scan Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-11 Design Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-11 SEU Mitigation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-12 Programmable Power . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-12 Signal Integrity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-13 Reference and Ordering Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-13 Software Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-13 Ordering Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-14 Chapter Revision History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-14 Chapter 2. Logic Array Blocks and Adaptive Logic Modules in Stratix III Devices Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Logic Array Blocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . LAB Interconnects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . LAB Control Signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . © March 2011 Altera Corporation 2-1 2-1 2-3 2-4 Stratix III Device Handbook, Volume 1 iv Adaptive Logic Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-5 ALM Operating Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-8 Normal Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-8 Extended LUT Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-11 Arithmetic Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-11 Carry Chain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-14 Shared Arithmetic Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-14 Shared Arithmetic Chain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-16 LUT-Register Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-17 Register Chain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-18 ALM Interconnects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-20 Clear and Preset Logic Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-20 LAB Power Management Techniques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-21 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-21 Chapter Revision History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-21 Chapter 3. MultiTrack Interconnect in Stratix III Devices Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-1 Row Interconnects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-1 Column Interconnects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-2 Memory Block Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-6 DSP Block Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 I/O Block Connections to Interconnect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-11 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-13 Chapter Revision History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-14 Chapter 4. TriMatrix Embedded Memory Blocks in Stratix III Devices Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-1 TriMatrix Memory Block Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-3 Parity Bit Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-3 Byte-Enable Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-3 Packed Mode Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-5 Address Clock Enable Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-5 Mixed Width Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-8 Asynchronous Clear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-8 Error Correction Code Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-9 Single Port RAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-10 Simple Dual-Port Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-12 True Dual-Port Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-15 Shift-Register Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-17 ROM Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-18 FIFO Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-18 Clocking Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-19 Independent Clock Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-19 Input/Output Clock Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-19 Read/Write Clock Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-20 Single Clock Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-20 Stratix III Device Handbook, Volume 1 © March 2011 Altera Corporation v Design Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Selecting TriMatrix Memory Blocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Conflict Resolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Read During Write . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Same-Port Read-During-Write Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Mixed-Port Read-During-Write Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Power-Up Conditions and Memory Initialization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Power Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Programming File Compatibility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Chapter Revision History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-20 4-20 4-20 4-21 4-21 4-22 4-23 4-24 4-24 4-24 4-25 Chapter 5. DSP Blocks in Stratix III Devices Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-1 DSP Block Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-1 Simplified DSP Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-3 Operational Modes Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-8 DSP Block Resource Descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-9 Input Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-10 Multiplier and First-Stage Adder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-12 Pipeline Register Stage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-13 Second-Stage Adder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-13 Round and Saturation Stage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-14 Second Adder and Output Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-14 Operational Mode Descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-15 Independent Multiplier Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-15 9-, 12-, and 18-Bit Multiplier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-15 36-Bit Multiplier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-18 Double Multiplier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-19 Two-Multiplier Adder Sum Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-21 18 × 18 Complex Multiply . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-24 Four-Multiplier Adder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-25 High Precision Multiplier Adder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-26 Multiply Accumulate Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-28 Shift Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-29 Rounding and Saturation Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-31 DSP Block Control Signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-34 Application Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-35 FIR Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-35 FFT Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-40 Software Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-41 Chapter Revision History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-42 Chapter 6. Clock Networks and PLLs in Stratix III Devices © March 2011 Altera Corporation Stratix III Device Handbook, Volume 1 vi Clock Networks in Stratix III Devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-1 Global Clock Networks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-2 Regional Clock Networks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-3 Periphery Clock Networks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-4 Clocking Regions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-6 Clock Network Sources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-7 Clock Output Connections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-12 Clock Source Control for PLLs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-13 Clock Control Block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-14 Clock Enable Signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-17 PLLs in Stratix III Devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-18 Stratix III PLL Hardware Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-20 PLL Clock I/O Pins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-21 Stratix III PLL Software Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-24 Clock Feedback Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-26 Source Synchronous Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-27 Source-Synchronous Mode for LVDS Compensation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-28 No-Compensation Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-28 Normal Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-28 Zero-Delay Buffer Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-29 External Feedback Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-30 Clock Multiplication and Division . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-31 Post-Scale Counter Cascading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-32 Programmable Duty Cycle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-32 PLL Control Signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-33 pfdena . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-33 areset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-33 locked . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-33 Clock Switchover . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-33 Automatic Clock Switchover . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-34 Manual Clock Switchover . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-37 Guidelines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-37 Programmable Bandwidth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-39 Background . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-39 Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-40 Phase-Shift Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-41 PLL Reconfiguration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-42 PLL Reconfiguration Hardware Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-43 Post-Scale Counters (C0 to C9) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-45 Scan Chain Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-46 Charge Pump and Loop Filter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-48 Bypassing PLL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-49 Dynamic Phase-Shifting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-49 PLL Cascading and Clock Network Guidelines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-52 Spread-Spectrum Tracking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-52 PLL Specifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-52 Chapter Revision History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-53 Chapter II. I/O Interfaces Revision History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . II-1 Chapter 7. Stratix III Device I/O Features Stratix III Device Handbook, Volume 1 © March 2011 Altera Corporation vii Stratix III I/O Standards Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-2 I/O Standards and Voltage Levels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-3 Stratix III I/O Banks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-5 Modular I/O Banks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-7 Stratix III I/O Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-12 3.3-V I/O Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-14 External Memory Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-14 High-Speed Differential I/O with DPA Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-15 Programmable Current Strength . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-15 Programmable Slew Rate Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-16 Programmable Delay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-17 Programmable Output Buffer Delay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-17 Open-Drain Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-17 Bus Hold . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-18 Programmable Pull-Up Resistor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-18 Programmable Pre-Emphasis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-18 Programmable Differential Output Voltage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-19 MultiVolt I/O Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-19 OCT Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-20 On-Chip Series Termination without Calibration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-20 On-Chip Series Termination with Calibration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-21 Expanded On-Chip Series Termination with Calibration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-22 Left Shift Series Termination Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-23 On-Chip Parallel Termination with Calibration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-24 Dynamic OCT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-25 LVDS Input On-Chip Termination (RD ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-26 OCT Calibration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-27 OCT Calibration Block Location . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-27 Sharing an OCT Calibration Block in Multiple I/O Banks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-29 OCT Calibration Block Modes of Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-29 Power-Up Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-29 User Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-30 OCT Calibration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-31 Serial Data Transfer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-31 Example of Using Multiple OCT Calibration Blocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-31 RS Calibration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-32 Termination Schemes for I/O Standards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-32 Single-Ended I/O Standards Termination . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-32 Differential I/O Standards Termination . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-34 LVDS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-36 Differential LVPECL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-37 RSDS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-37 Mini-LVDS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-38 Design Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-39 I/O Termination . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-40 Single-Ended I/O Standards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-40 Differential I/O Standards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-40 I/O Banks Restrictions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-40 Non-Voltage-Referenced Standards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-40 Voltage-Referenced Standards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-41 Mixing Voltage-Referenced and Non-Voltage-Referenced Standards . . . . . . . . . . . . . . . . . . . . . 7-41 Chapter Revision History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-42 Chapter 8. External Memory Interfaces in Stratix III Devices © March 2011 Altera Corporation Stratix III Device Handbook, Volume 1 viii Memory Interfaces Pin Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-3 Data and Data-Strobe/Clock Pins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-4 Using R UP /RDN Pins in a DQS/DQ Group Used for Memory Interfaces . . . . . . . . . . . . . . . . . . . . . . . 8-5 Combining ×16/×18 DQS/DQ groups for ×36 QDR II+/QDR II SRAM Interface . . . . . . . . . . . . . 8-15 Rules to Combine Groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-15 Optional Parity, DM, BWSn, NWSn, ECC and QVLD Pins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-17 Address and Control/Command Pins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-17 Memory Clock Pins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-18 Stratix III External Memory Interface Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-18 DQS Phase-Shift Circuitry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-19 DLL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-21 Phase Offset Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-27 DQS Logic Block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-29 DQS Delay Chain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-29 Update Enable Circuitry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-30 DQS Postamble Circuitry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-30 Leveling Circuitry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-31 Dynamic OCT Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-33 IOE Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-34 Delay Chain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-39 I/O Configuration Block and DQS Configuration Block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-41 IOE Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-42 OCT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-43 Programmable IOE Delay Chains . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-43 Programmable Output Buffer Delay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-43 Programmable Slew Rate Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-44 Programmable Drive Strength . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-44 PLL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-44 Chapter Revision History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-45 Chapter 9. High-Speed Differential I/O Interfaces and DPA in Stratix III Devices I/O Banks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-2 LVDS Channels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-3 Differential Transmitter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-4 Differential Receiver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-6 Receiver Data Realignment Circuit (Bit Slip) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-7 Dynamic Phase Aligner (DPA) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-8 Soft-CDR Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-9 Synchronizer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-10 Programmable Pre-Emphasis and Programmable V OD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-11 Differential I/O Termination . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-12 Left/Right PLLs (PLL_Lx/ PLL_Rx) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-12 Clocking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-14 Source-Synchronous Timing Budget . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-15 Differential Data Orientation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-15 Differential I/O Bit Position . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-15 Receiver Skew Margin for Non-DPA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-17 Stratix III Device Handbook, Volume 1 © March 2011 Altera Corporation ix Differential Pin Placement Guidelines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Guidelines for DPA-Enabled Differential Channels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DPA-Enabled Channels and Single-Ended I/Os . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DPA-Enabled Channel Driving Distance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Using Corner and Center Left/Right PLLs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Using Both Center Left/Right PLLs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Guidelines for DPA-Disabled Differential Channels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DPA-Disabled Channels and Single-Ended I/Os . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DPA-Disabled Channel Driving Distance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Using Corner and Center Left/Right PLLs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Using Both Center Left/Right PLLs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Chapter Revision History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-19 9-19 9-19 9-19 9-19 9-21 9-23 9-23 9-23 9-23 9-26 9-27 Chapter III. Hot Socketing, Configuration, Remote Upgrades, and Testing Revision History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . III-1 Chapter 10. Hot Socketing and Power-On Reset in Stratix III Devices Stratix III Hot-Socketing Specifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Stratix III Devices Can Be Driven Before Power Up . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . I/O Pins Remain Tri-Stated During Power Up . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Insertion or Removal of a Stratix III Device from a Powered-Up System . . . . . . . . . . . . . . . . . . . . . Hot-Socketing Feature Implementation in Stratix III Devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Power-On Reset Circuitry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Power-On Reset Specifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Chapter Revision History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-1 10-1 10-2 10-2 10-2 10-4 10-5 10-7 Chapter 11. Configuring Stratix III Devices Configuration Devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-1 Configuration Schemes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-1 Configuration Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-3 Configuration Data Decompression . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-4 Design Security Using Configuration Bitstream Encryption . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-6 Remote System Upgrade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-7 Power-On Reset Circuit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-7 VCCPGM Pins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-7 VCCPD Pins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-7 Fast Passive Parallel Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-8 FPP Configuration Using a MAX II Device as an External Host . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-8 FPP Configuration Timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-14 FPP Configuration Using a Microprocessor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-16 Fast Active Serial Configuration (Serial Configuration Devices) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-17 Estimating Active Serial Configuration Time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-23 Programming Serial Configuration Devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-25 Passive Serial Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-27 PS Configuration Using a MAX II Device as an External Host . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-27 PS Configuration Timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-32 PS Configuration Using a Microprocessor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-33 PS Configuration Using a Download Cable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-33 JTAG Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-37 Jam STAPL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-43 Device Configuration Pins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-43 Chapter Revision History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-51 © March 2011 Altera Corporation Stratix III Device Handbook, Volume 1 x Chapter 12. Remote System Upgrades with Stratix III Devices Functional Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-1 Enabling Remote Update . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-3 Configuration Image Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-4 Remote System Upgrade Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-5 Remote Update Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-5 Dedicated Remote System Upgrade Circuitry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-7 Remote System Upgrade Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-8 Remote System Upgrade Control Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-9 Remote System Upgrade Status Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-10 Remote System Upgrade State Machine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-11 User Watchdog Timer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-11 Quartus II Software Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-12 ALTREMOTE_UPDATE Megafunction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-13 Chapter Revision History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-14 Chapter 13. IEEE 1149.1 (JTAG) Boundary-Scan Testing in Stratix III Devices IEEE Std. 1149.1 BST Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-1 IEEE Std. 1149.1 Boundary-Scan Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-4 Boundary-Scan Cells of a Stratix III Device I/O Pin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-5 IEEE Std. 1149.1 BST Operation Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-7 SAMPLE/PRELOAD Instruction Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-11 EXTEST Instruction Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-13 BYPASS Instruction Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-15 IDCODE Instruction Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-16 USERCODE Instruction Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-16 CLAMP Instruction Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-16 HIGHZ Instruction Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-17 I/O Voltage Support in JTAG Chain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-17 IEEE Std. 1149.1 BST Circuitry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-18 IEEE Std. 1149.1 BST Circuitry (Disabling) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-19 IEEE Std. 1149.1 BST Guidelines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-19 Boundary-Scan Description Language (BSDL) Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-20 Chapter Revision History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-21 Chapter IV. Design Security and Single Event Upset (SEU) Mitigation Revision History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IV-1 Chapter 14. Design Security in Stratix III Devices Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Stratix III Security Protection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Security Against Copying . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Security Against Reverse Engineering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Security Against Tampering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AES Decryption Block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Flexible Security Key Storage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Stratix III Design Security Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Security Modes Available . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Volatile Key . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Non-Volatile Key . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Non-Volatile Key with Tamper Protection Bit Set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . No Key Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Supported Configuration Schemes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Stratix III Device Handbook, Volume 1 © March 2011 14-1 14-1 14-1 14-2 14-2 14-2 14-2 14-3 14-4 14-4 14-4 14-4 14-5 14-5 Altera Corporation xi Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-8 Chapter Revision History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-8 Chapter 15. SEU Mitigation in Stratix III Devices Error Detection Fundamentals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-2 Configuration Error Detection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-2 User Mode Error Detection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-2 Automated Single Event Upset Detection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-5 Error Detection Pin Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-6 CRC_ERROR Pin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-6 Error Detection Block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-7 Error Detection Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-7 Error Detection Timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-9 Software Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-11 Recovering From CRC Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-12 Chapter Revision History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-12 Chapter V. Power and Thermal Management Revision History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . V-1 Chapter 16. Programmable Power and Temperature-Sensing Diodes in Stratix III Devices Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Stratix III Power Technology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Selectable Core Voltage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Programmable Power Technology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Relationship Between Selectable Core Voltage and Programmable Power Technology . . . . . . . . . Stratix III External Power Supply Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Temperature Sensing Diode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . External Pin Connections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Chapter Revision History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-1 16-1 16-1 16-2 16-3 16-3 16-5 16-6 16-6 16-7 Chapter VI. Packaging Information Revision History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . VI-1 Chapter 17. Stratix III Device Packaging Information Thermal Resistance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-2 Package Outlines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-2 Chapter Revision History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-2 © March 2011 Altera Corporation Stratix III Device Handbook, Volume 1 xii Stratix III Device Handbook, Volume 1 © March 2011 Altera Corporation Chapter Revision Dates The chapters in this book were revised on the following dates. Where chapters or groups of chapters are available separately, part numbers are listed. Chapter 1 Stratix III Device Family Overview Revised: March 2010 Part Number: SIII51001-1.8 Chapter 2 Logic Array Blocks and Adaptive Logic Modules in Stratix III Devices Revised: February 2009 Part Number: SIII51002-1.5 Chapter 3 MultiTrack Interconnect in Stratix III Devices Revised: October 2008 Part Number: SIII51003-1.2 Chapter 4 TriMatrix Embedded Memory Blocks in Stratix III Devices Revised: May 2009 Part Number: SIII51004-1.8 Chapter 5 DSP Blocks in Stratix III Devices Revised: March 2010 Part Number: SIII51005-1.7 Chapter 6 Clock Networks and PLLs in Stratix III Devices Revised: July 2010 Part Number: SIII51006-2.0 Chapter 7 Stratix III Device I/O Features Revised: July 2010 Part Number: SIII51007-1.9 Chapter 8 External Memory Interfaces in Stratix III Devices Revised: March 2010 Part Number: SIII51008-1.9 Chapter 9 High-Speed Differential I/O Interfaces and DPA in Stratix III Devices Revised: July 2010 Part Number: SIII51009-1.9 Chapter 10 Hot Socketing and Power-On Reset in Stratix III Devices Revised: March 2010 Part Number: SIII51010-1.7 Chapter 11 Configuring Stratix III Devices Revised: March 2011 Part Number: SIII51011-2.0 © March 2011 Altera Corporation Stratix III Device Handbook, Volume 1 xiv Chapter 12 Remote System Upgrades with Stratix III Devices Revised: March 2010 Part Number: SIII51012-1.5 Chapter 13 IEEE 1149.1 (JTAG) Boundary-Scan Testing in Stratix III Devices Revised: July 2010 Part Number: SIII51013-1.9 Chapter 14 Design Security in Stratix III Devices Revised: May 2009 Part Number: SIII51014-1.5 Chapter 15 SEU Mitigation in Stratix III Devices Revised: March 2010 Part Number: SIII51015-1.7 Chapter 16 Programmable Power and Temperature-Sensing Diodes in Stratix III Devices Revised: February 2009 Part Number: SIII51016-1.5 Chapter 17 Stratix III Device Packaging Information Revised: March 2010 Part Number: SIII51017-1.7 Stratix III Device Handbook, Volume 1 © March 2011 Altera Corporation List of Figures xv List of Figures Figure 1–1: Stratix III Device Packaging Ordering Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-14 Figure 2–1: Stratix III LAB Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-2 Figure 2–2: Stratix III LAB and MLAB Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-3 Figure 2–3: Direct Link Connection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-4 Figure 2–4: LAB-Wide Control Signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-5 Figure 2–5: High-Level Block Diagram of the Stratix III ALM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-6 Figure 2–6: Stratix III ALM Details . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-7 Figure 2–7: ALM in Normal Mode (Note 1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-9 Figure 2–8: 4 × 2 Crossbar Switch Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-10 Figure 2–9: Input Function in Normal Mode (Note 1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-11 Figure 2–10: Template for Supported Seven-Input Functions in Extended LUT Mode . . . . . . . . . . . . . . 2-11 Figure 2–11: ALM in Arithmetic Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-12 Figure 2–12: Conditional Operation Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-13 Figure 2–13: ALM in Shared Arithmetic Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-15 Figure 2–14: Example of a 3-Bit Add Utilizing Shared Arithmetic Mode . . . . . . . . . . . . . . . . . . . . . . . . . . 2-16 Figure 2–15: LUT Register from Two Combinational Blocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-17 Figure 2–16: ALM in LUT-Register Mode with 3-Register Capability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-18 Figure 2–17: Register Chain within an LAB (Note 1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-19 Figure 2–18: Shared Arithmetic Chain, Carry Chain, and Register Chain Interconnects . . . . . . . . . . . . . 2-20 Figure 3–1: R4 Interconnect Connections (Note 1), (2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-2 Figure 3–2: Shared Arithmetic Chain, Carry Chain, and Register Chain Interconnects . . . . . . . . . . . . . . . 3-3 Figure 3–3: C4 Interconnect Connections (Note 1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-4 Figure 3–4: MLAB RAM Block LAB Row Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-7 Figure 3–5: M9K RAM Block LAB Row Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-8 Figure 3–6: M144K Row Unit Interface to Interconnect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 Figure 3–7: High-Level View, DSP Block Interface to Interconnect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-10 Figure 3–8: Detailed View, DSP Block Interface to Interconnect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-11 Figure 3–9: Row I/O Block Connection to Interconnect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-12 Figure 3–10: Column I/O Block Connection to Interconnect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-13 Figure 4–1: Stratix III Byte-Enable Functional Waveform for M9K and M144K . . . . . . . . . . . . . . . . . . . . . 4-4 Figure 4–2: Stratix III Byte-Enable Functional Waveform for MLABs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-5 Figure 4–3: Stratix III Address Clock Enable Block Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-6 Figure 4–4: Stratix III Address Clock Enable during Read Cycle Waveform . . . . . . . . . . . . . . . . . . . . . . . . 4-6 Figure 4–5: Stratix III Address Clock Enable during Write Cycle Waveform for M9K and M144K . . . . . 4-7 Figure 4–6: Stratix III Address Clock Enable during Write Cycle Waveform for MLABs . . . . . . . . . . . . . 4-8 Figure 4–7: Output Latch Asynchronous Clear Waveform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-9 Figure 4–8: ECC Block Diagram of the M144K . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-10 Figure 4–9: Single-Port Memory (Note 1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-11 Figure 4–10: Timing Waveform for Read-Write Operations (Single-Port Mode) for M9K and M144K . 4-12 Figure 4–11: Timing Waveform for Read-Write Operations (Single-Port Mode) for MLABs . . . . . . . . . 4-12 Figure 4–12: Stratix III Simple Dual-Port Memory (Note 1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-13 Figure 4–13: Stratix III Simple Dual-Port Timing Waveforms for M9K and M144K . . . . . . . . . . . . . . . . . 4-14 Figure 4–14: Stratix III Simple Dual-Port Timing Waveforms for MLABs . . . . . . . . . . . . . . . . . . . . . . . . . 4-14 Figure 4–15: Stratix III True Dual-Port Memory (Note 1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-15 Figure 4–16: Stratix III True Dual-Port Timing Waveform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-17 Figure 4–17: Stratix III Shift-Register Memory Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-18 Figure 4–18: Stratix III Read-During-Write Data Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-21 © March 2011 Altera Corporation Stratix III Device Handbook, Volume 1 xvi List of Figures Figure 4–19: Same Port Read-During-Write: New Data Mode (Note 1) . . . . . . . . . . . . . . . . . . . . . . . . . 4-22 Figure 4–20: Same Port Read-During-Write: Old Data Mode (Note 1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-22 Figure 4–21: Mixed Port Read During Write: Old Data Mode (Note 1) . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-23 Figure 5–1: Overview of DSP Block Signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-3 Figure 5–2: Basic Two-Multiplier Adder Building Block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-3 Figure 5–3: Four-Multiplier Adder and Accumulation Capability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-5 Figure 5–4: Output Cascading Feature for FIR Structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-6 Figure 5–5: Stratix III Full DSP Block Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-7 Figure 5–6: Half-DSP Block Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-9 Figure 5–7: Input Register of Half-DSP Block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-11 Figure 5–8: 18-Bit Independent Multiplier Mode for Half-DSP Block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-15 Figure 5–9: 12-Bit Independent Multiplier Mode for Half-DSP Block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-16 Figure 5–10: 9-Bit Independent Multiplier Mode for Half-Block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-17 Figure 5–11: 36-Bit Independent Multiplier Mode for Half-DSP Block . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-18 Figure 5–12: Double Mode for Half-DSP Block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-19 Figure 5–13: Unsigned 54 × 54 Multiplier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-20 Figure 5–14: Two-Multiplier Adder Mode for Half-DSP Block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-22 Figure 5–15: Loopback Mode for Half-DSP Block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-23 Figure 5–16: Complex Multiplier Using Two-Multiplier Adder Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-24 Figure 5–17: Four-Multiplier Adder Mode for Half-DSP Block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-25 Figure 5–18: Four-Multiplier Adder Mode for Half-DSP Block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-27 Figure 5–19: Multiply Accumulate Mode for Half-DSP Block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-28 Figure 5–20: Shift Operation Mode for Half-DSP Block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-30 Figure 5–21: Round and Saturation Locations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-33 Figure 5–22: FIR Filter Using Tap-Delay Line Input and Tree Summation of Final Result . . . . . . . . . . . 5-37 Figure 5–23: FIR Filter using Tap-Delay Line Input and Chained Cascade Summation of Final Result 5-38 Figure 5–24: Semi-Parallel FIR Structure Using Chained Cascaded Summation . . . . . . . . . . . . . . . . . . . . 5-40 Figure 5–25: Radix-4 Butterfly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-41 Figure 6–1: Global Clock Networks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-2 Figure 6–2: Regional Clock Networks (EP3SL50, EP3SL70, and EP3SE50 Devices) . . . . . . . . . . . . . . . . . . 6-3 Figure 6–3: Regional Clock Networks (EP3SL110, EP3SL150, EP3SE80, and EP3SE110 Devices) . . . . . . . 6-3 Figure 6–4: Regional Clock Networks (EP3SL200, EP3SE260, and EP3SL340 Devices) (Note 1) . . . . . . . 6-4 Figure 6–5: Periphery Clock Networks (EP3SL50, EP3SL70, and EP3SE50 Devices) . . . . . . . . . . . . . . . . . 6-4 Figure 6–6: Periphery Clock Networks (EP3SL110, EP3SL150, EP3SE80, and EP3SE110 Devices) . . . . . . 6-5 Figure 6–7: Periphery Clock Networks (EP3SL200 Devices) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-5 Figure 6–8: Periphery Clock Networks (EP3SE260 Devices) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-6 Figure 6–9: Periphery Clock Networks (EP3SL340 Devices) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-6 Figure 6–10: Stratix III Dual-Regional Clock Region . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-7 Figure 6–11: Clock Input Multiplexer Logic for L2, L3, T1, T2, B1, B2, R2, and R3 PLLs . . . . . . . . . . . . . 6-14 Figure 6–12: Clock Input Multiplexer Logic for L1, L4, R1, and R4 PLLs . . . . . . . . . . . . . . . . . . . . . . . . . . 6-14 Figure 6–13: Stratix III Global Clock Control Block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-15 Figure 6–14: Regional Clock Control Block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-15 Figure 6–15: Stratix III External PLL Output Clock Control Block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-16 Figure 6–16: clkena Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-17 Figure 6–17: clkena Signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-17 Figure 6–18: Stratix III PLL Locations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-20 Figure 6–19: Stratix III PLL Block Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-21 Figure 6–20: External Clock Outputs for Top/Bottom PLLs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-22 Figure 6–21: External Clock Outputs for Left/Right PLLs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-23 Figure 6–22: Stratix III PLL Ports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-24 Stratix III Device Handbook, Volume 1 © March 2011 Altera Corporation List of Figures xvii Figure 6–23: Phase Relationship Between Clock and Data in Source-Synchronous Mode . . . . . . . . . . . . 6-27 Figure 6–24: Phase Relationship Between Clock and Data LVDS Modes . . . . . . . . . . . . . . . . . . . . . . . . . . 6-27 Figure 6–25: Phase Relationship Between PLL Clocks in No Compensation Mode . . . . . . . . . . . . . . . . . 6-28 Figure 6–26: Phase Relationship Between PLL Clocks in Normal Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-29 Figure 6–27: Zero-Delay Buffer Mode in Stratix III PLLs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-29 Figure 6–28: Phase Relationship Between PLL Clocks in Zero Delay Buffer Mode . . . . . . . . . . . . . . . . . . 6-30 Figure 6–29: External Feedback Mode in Stratix III Devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-30 Figure 6–30: Phase Relationship Between PLL Clocks in External-Feedback Mode . . . . . . . . . . . . . . . . . 6-31 Figure 6–31: Counter Cascading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-32 Figure 6–32: Automatic Clock Switchover Circuit Block Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-34 Figure 6–33: Automatic Switchover Upon Loss of Clock Detection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-35 Figure 6–34: Clock Switchover Using the clkswitch (Manual) Control (Note 1) . . . . . . . . . . . . . . . . . . . 6-36 Figure 6–35: Manual Clock Switchover Circuitry in Stratix III PLLs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-37 Figure 6–36: VCO Switchover Operating Frequency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-38 Figure 6–37: Open- and Closed-Loop Response Bode Plots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-39 Figure 6–38: Loop Filter Programmable Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-40 Figure 6–39: Delay Insertion Using VCO Phase Output and Counter Delay Time . . . . . . . . . . . . . . . . . . 6-42 Figure 6–40: PLL Reconfiguration Scan Chain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-43 Figure 6–41: PLL Reconfiguration Waveform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-45 Figure 6–42: Scan-Chain Order of PLL Components for Top/Bottom PLLs (Note 1) . . . . . . . . . . . . . . . 6-47 Figure 6–43: Scan-Chain Bit-Order Sequence for Post-Scale Counters in Stratix III PLLs . . . . . . . . . . . . 6-47 Figure 6–44: Dynamic Phase Shifting Waveform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-51 Figure 7–1: I/O Banks for Stratix III Devices (Note 1), (2), (3), (4), (5), (6), (7), (8), (9) . . . . . . . . . . . . . . . . 7-6 Figure 7–2: Number of I/Os in Each Bank in EP3SL50, EP3SL70, and EP3SE50 Devices in 484-Pin FineLine BGA Package (Note 1), (2), . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-8 Figure 7–3: Number of I/Os in Each Bank in the 780-pin FineLine BGA Package (Note 1), (2), (3), (4) . 7-9 Figure 7–4: Number of I/Os in Each Bank in the 1152-pin FineLine BGA Package (Note 1), (2), (3), (4) . . . 7-10 Figure 7–5: Number of I/Os in Each Bank in EP2SL200, EP3SE260, and EP3SL340 Devices in the 1517-Pin FineLine BGA Package (Note 1), (2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-11 Figure 7–6: Number of I/Os in Each Bank in EP3SL340 Devices in the 1760-pin FineLine BGA Package (Note 1), (2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-12 Figure 7–7: IOE Structure for Stratix III Devices (Note 1), (2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-13 Figure 7–8: On-Chip Series Termination without Calibration for Stratix III Devices . . . . . . . . . . . . . . . . 7-21 Figure 7–9: On-Chip Series Termination with Calibration for Stratix III Devices . . . . . . . . . . . . . . . . . . . 7-21 Figure 7–10: On-Chip Parallel Termination with Calibration for Stratix III Devices . . . . . . . . . . . . . . . . . 7-24 Figure 7–11: Dynamic Parallel OCT in Stratix III Devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-25 Figure 7–12: Differential Input On-Chip Termination . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-26 Figure 7–13: OCT Calibration Block (CB) Location in EP3SL50, EP3SL70, and EP3SE50 Devices (Note 1) . 7-27 Figure 7–14: OCT Calibration Block (CB) Location in EP3SL110, EP3SL150, EP3SE80, and EP3SE110 Devices (Note 1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-28 Figure 7–15: OCT Calibration Block (CB) Location in EP3SL200, EP3SE260 and EP3SL340 (Note 1) . . 7-28 Figure 7–16: Example of Sharing Multiple I/O Banks with One OCT Calibration Block (Note 1) . . . . 7-29 Figure 7–17: Signals Used for User Mode Calibration (Note 1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-30 Figure 7–18: OCT User-Mode Signal Timing Waveform for One OCT Block . . . . . . . . . . . . . . . . . . . . . . 7-31 Figure 7–19: OCT User-Mode Signal Timing Waveform for Two OCT Blocks . . . . . . . . . . . . . . . . . . . . . 7-32 Figure 7–20: SSTL I/O Standard Termination for Stratix III Devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-33 Figure 7–21: HSTL I/O Standard Termination for Stratix III Devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-34 Figure 7–22: Differential SSTL I/O Standard Termination for Stratix III Devices . . . . . . . . . . . . . . . . . . . 7-35 © March 2011 Altera Corporation Stratix III Device Handbook, Volume 1 xviii List of Figures Figure 7–23: Differential HSTL I/O Standard Termination for Stratix III Devices . . . . . . . . . . . . . . . . . . 7-35 Figure 7–24: LVDS I/O Standard Termination for Stratix III Devices (Note 1) . . . . . . . . . . . . . . . . . . . . . 7-36 Figure 7–25: LVPECL AC Coupled Termination (Note 1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-37 Figure 7–26: LVPECL DC Coupled Termination (Note 1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-37 Figure 7–27: RSDS I/O Standard Termination for Stratix III Devices (Note 1), (2) . . . . . . . . . . . . . . . . . . 7-38 Figure 7–28: Mini-LVDS I/O Standard Termination for Stratix III Devices (Note 1), (2) . . . . . . . . . . . . 7-39 Figure 8–1: Package Bottom View for Stratix III Devices (Note 1), (2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-2 Figure 8–2: External Memory Interface Data Path Overview (Note 1), (2), (3) . . . . . . . . . . . . . . . . . . . . . . 8-3 Figure 8–3: Number of DQS/DQ Groups per Bank in EP3SE50, EP3SL50, and EP3SL70 Devices in the 484-pin FineLine BGA Package (Note 1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-8 Figure 8–4: Number of DQS/DQ Groups per Bank in EP3SE50, EP3SL50, EP3SL70, EP3SE80, EP3SE110, EP3SL110, EP3SL150, EP3SL200, and EP3SE260 Devices in the 780-pin FineLine BGA Package (Note 1) . 8-9 Figure 8–5: Number of DQS/DQ Groups in EP3SE80, EP3SE110, EP3SL110, EP3SL150, EP3SL200, EP3SE260, and EP3SL340 Devices in the 1152-pin FineLine BGA Package (Note 1) . . . . . . . . . . . . . . . . 8-10 Figure 8–6: Number of DQS/DQ Groups per Bank in EP3SL200, EP3SE260 and EP3SL340 Devices in the 1517-pin FineLine BGA Package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-11 Figure 8–7: DQS/DQ Bus Mode Support per Bank in EP3SL340 Devices in the 1760-pin FineLine BGA Package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-12 Figure 8–8: DQS Pins in Stratix III I/O Banks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-14 Figure 8–9: Memory Clock Generation Block Diagram (Note 1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-18 Figure 8–10: DQS and CQn Pins and DQS Phase-Shift Circuitry (Note 1) . . . . . . . . . . . . . . . . . . . . . . . . 8-20 Figure 8–11: Stratix III DLL and I/O Bank Locations (Package Bottom View) . . . . . . . . . . . . . . . . . . . . . 8-22 Figure 8–12: Simplified Diagram of the DQS Phase Shift Circuitry (Note 1) . . . . . . . . . . . . . . . . . . . . . 8-26 Figure 8–13: Stratix III DQS Logic Block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-29 Figure 8–14: Example of a DQS Update Enable Waveform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-30 Figure 8–15: Avoiding a Glitch on a Non-Consecutive Read Burst Waveform . . . . . . . . . . . . . . . . . . . . . 8-31 Figure 8–16: DDR3 SDRAM Unbuffered Module Clock Topology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-32 Figure 8–17: Stratix III Write Leveling Delay Chains and Multiplexers (Note 1) . . . . . . . . . . . . . . . . . . . 8-32 Figure 8–18: Stratix III Read Leveling Delay Chains and Multiplexers (Note 1) . . . . . . . . . . . . . . . . . . . 8-33 Figure 8–19: Stratix III Dynamic OCT Control Block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-34 Figure 8–20: Stratix III IOE Input Registers (Note 1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-35 Figure 8–21: Stratix III IOE Output and Output-Enable Path Registers (Note 1) . . . . . . . . . . . . . . . . . . . 8-38 Figure 8–22: Delay Chain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-39 Figure 8–23: Delay Chains in an I/O Block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-40 Figure 8–24: Delay Chains in the DQS Input Path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-40 Figure 8–25: I/O Configuration Block and DQS Configuration Block . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-41 Figure 9–1: I/O Banks in Stratix III Devices (Note 1), (2), (3), (4), (5), (6) . . . . . . . . . . . . . . . . . . . . . . . . . . 9-2 Figure 9–2: Transmitter Block Diagram for Stratix III Devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-5 Figure 9–3: Transmitter in Clock Output Mode for Stratix III Devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-5 Figure 9–4: Serializer Bypass for Stratix III Devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-6 Figure 9–5: Receiver Block Diagram for Stratix III Devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-7 Figure 9–6: Deserializer Bypass for Stratix III Devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-7 Figure 9–7: Data Realignment Timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-8 Figure 9–8: DPA Clock Phase-to-Serial Data Timing Relationship . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-8 Figure 9–9: Soft-CDR Data and Clock Path for a Stratix III Devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-10 Figure 9–10: Programmable VOD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-11 Figure 9–11: On-Chip Differential I/O Termination for Stratix III Devices . . . . . . . . . . . . . . . . . . . . . . . . 9-12 Figure 9–12: PLL Block Diagram for Stratix III Devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-13 Figure 9–13: LVDS/DPA Clocks with Center PLLs for Stratix III Devices . . . . . . . . . . . . . . . . . . . . . . . . . 9-14 Stratix III Device Handbook, Volume 1 © March 2011 Altera Corporation List of Figures xix Figure 9–14: LVDS/DPA Clocks with Center and Corner PLLs for Stratix III Devices . . . . . . . . . . . . . . 9-14 Figure 9–15: Bit Orientation in Quartus II Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-15 Figure 9–16: Bit-Order and Word Boundary for One Differential Channel (Note 1) . . . . . . . . . . . . . . . . 9-16 Figure 9–17: Differential High-Speed Timing Diagram and Timing Budget for Non-DPA . . . . . . . . . . . 9-18 Figure 9–18: Corner and Center Left/Right PLLs Driving DPA-Enabled Differential I/Os in the Same Bank 9-20 Figure 9–19: Center Left/Right PLLs Driving DPA-Enabled Differential I/Os . . . . . . . . . . . . . . . . . . . . . 9-21 Figure 9–20: Invalid Placement of DPA-Enabled Differential I/Os Driven by Both Center Left/Right PLLs 9-22 Figure 9–21: Corner and Center Left/Right PLLs Driving DPA-Disabled Differential I/Os in the Same Bank 9-24 Figure 9–22: Invalid Placement of DPA-Disabled Differential I/Os Due to Interleaving of Channels Driven by the Corner and Center Left/Right PLLs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-25 Figure 9–23: Both Center Left/Right PLLs Driving Cross-Bank DPA-Disabled Channels Simultaneously . 9-26 Figure 10–1: Hot-Socketing Circuitry for Stratix III Devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-3 Figure 10–2: Transistor Level Diagram of a Stratix III Device I/O Buffers . . . . . . . . . . . . . . . . . . . . . . . . . 10-4 Figure 10–3: Simplified POR Block Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-5 Figure 11–1: Enabling Compression for Stratix III Bitstreams in Compiler Settings . . . . . . . . . . . . . . . . . 11-5 Figure 11–2: Compressed and Uncompressed Configuration Data in the Same Configuration File . . . 11-6 Figure 11–3: Single Device FPP Configuration Using an External Host . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-9 Figure 11–4: Multi-Device FPP Configuration Using an External Host . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-12 Figure 11–5: Multiple-Device FPP Configuration Using an External Host When Both Devices Receive the Same Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-13 Figure 11–6: FPP Configuration Timing Waveform (Note 1), (2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-14 Figure 11–7: FPP Configuration Timing Waveform with Decompression or Design Security Feature Enabled (Note 1), (2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-15 Figure 11–8: Single Device Fast AS Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-18 Figure 11–9: Multi-Device Fast AS Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-21 Figure 11–10: Multi-Device Fast AS Configuration When the Devices Receive the Same Data Using a Single SOF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-23 Figure 11–11: Fast AS Configuration Timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-24 Figure 11–12: In-System Programming of Serial Configuration Devices . . . . . . . . . . . . . . . . . . . . . . . . . 11-26 Figure 11–13: Single Device PS Configuration Using an External Host . . . . . . . . . . . . . . . . . . . . . . . . . . 11-27 Figure 11–14: Multi-Device PS Configuration Using an External Host . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-30 Figure 11–15: Multiple-Device PS Configuration When Both Devices Receive the Same Data . . . . . . . 11-31 Figure 11–16: PS Configuration Timing Waveform (Note 1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-32 Figure 11–17: PS Configuration Using a Download Cable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-35 Figure 11–18: Multi-Device PS Configuration using a Download Cable . . . . . . . . . . . . . . . . . . . . . . . . . . 11-36 Figure 11–19: JTAG Configuration of a Single Device Using a Download Cable . . . . . . . . . . . . . . . . . . 11-39 Figure 11–20: JTAG Configuration of Multiple Devices Using a Download Cable . . . . . . . . . . . . . . . . . 11-41 Figure 11–21: JTAG Configuration of a Single Device Using a Microprocessor . . . . . . . . . . . . . . . . . . . . 11-42 Figure 12–1: Functional Diagram of Stratix III Remote System Upgrade . . . . . . . . . . . . . . . . . . . . . . . . . . 12-2 Figure 12–2: Remote System Upgrade Block Diagram for Stratix III Fast AS Configuration Scheme . . 12-2 Figure 12–3: Enabling Remote Update for Stratix III Devices in Compiler Settings . . . . . . . . . . . . . . . . . 12-4 Figure 12–4: Transitions Between Configurations in Remote Update Mode . . . . . . . . . . . . . . . . . . . . . . . 12-6 Figure 12–5: Remote System Upgrade Circuit Data Path (Note 1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-8 Figure 12–6: Remote System Upgrade Control Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-9 Figure 12–7: Remote System Upgrade Status Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-10 Figure 12–8: Interface Signals Between the ALTREMOTE_UPDATE Megafunction and the Nios II Proces- © March 2011 Altera Corporation Stratix III Device Handbook, Volume 1 xx List of Figures sor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-13 Figure 13–1: IEEE Std. 1149.1 Boundary-Scan Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-1 Figure 13–2: IEEE Std. 1149.1 Circuitry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-3 Figure 13–3: Boundary-Scan Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-4 Figure 13–4: Stratix III Device's User I/O BSC with IEEE Std. 1149.1 BST Circuitry . . . . . . . . . . . . . . . . . 13-5 Figure 13–5: IEEE Std. 1149.1 TAP Controller State Machine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-8 Figure 13–6: IEEE Std. 1149.1 Timing Waveforms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-9 Figure 13–7: Selecting the Instruction Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-9 Figure 13–8: IEEE Std. 1149.1 BST SAMPLE/PRELOAD Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-11 Figure 13–9: SAMPLE/PRELOAD Shift Data Register Waveforms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-12 Figure 13–10: IEEE Std. 1149.1 BST EXTEST Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-13 Figure 13–11: EXTEST Shift Data Register Waveforms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-14 Figure 13–12: BYPASS Shift Data Register Waveforms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-15 Figure 13–13: JTAG Chain of Mixed Voltages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-18 Figure 14–1: Design Security (Note 1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-4 Figure 14–2: Stratix III Security Modes - Sequence and Restrictions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-6 Figure 15–1: Error Detection Block Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-8 Figure 15–2: Enabling the Error Detection CRC Feature in the Quartus II Software . . . . . . . . . . . . . . . . 15-11 Figure 16–1: Stratix III Power Management Example (Note 1), (2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-5 Figure 16–2: TEMPDIODEP and TEMPDIODEN External Pin Connections . . . . . . . . . . . . . . . . . . . . . . . 16-6 Figure 16–3: TSD Connections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-6 Stratix III Device Handbook, Volume 1 © March 2011 Altera Corporation List of Tables xxi List of Tables Table 1–1: FPGA Family Features for Stratix III Devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-3 Table 1–2: Package Options and I/O Pin Counts (Note 1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-4 Table 1–3: FineLine BGA Package Sizes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-4 Table 1–4: Hybrid FineLine BGA Package Sizes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-5 Table 1–5: Speed Grades for Stratix III Devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-5 Table 1–6: Chapter Revision History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-14 Table 2–1: Chapter Revision History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-21 Table 3–1: Stratix III Device Routing Scheme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-5 Table 3–2: Number of LABs reachable using C4 and R4 interconnects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-6 Table 3–3: Chapter Revision History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-14 Table 4–1: Summary of TriMatrix Memory Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-1 Table 4–2: TriMatrix Memory Capacity and Distribution in Stratix III Devices . . . . . . . . . . . . . . . . . . . . . . 4-3 Table 4–3: Truth Table for ECC Status Flags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-9 Table 4–4: Stratix III Port Width Configurations for MLABs, M9K Blocks, and M144K Blocks (Single-Port Mode) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-11 Table 4–5: Stratix III M9K Block Mixed-Width Configurations (Simple Dual-Port Mode) . . . . . . . . . . . 4-13 Table 4–6: Stratix III M144K Block Mixed-Width Configurations (Simple Dual-Port Mode) . . . . . . . . . 4-13 Table 4–7: Stratix III M9K Block Mixed-Width Configuration (True Dual-Port Mode) . . . . . . . . . . . . . . 4-15 Table 4–8: Stratix III M144K Block Mixed-Width Configurations (True Dual-Port Mode) . . . . . . . . . . . 4-16 Table 4–9: Stratix III TriMatrix Memory Clock Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-19 Table 4–10: Chapter Revision History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-25 Table 5–1: Number of DSP Blocks in Stratix III Devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-2 Table 5–2: Stratix III DSP Block Operation Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-8 Table 5–3: Input Register Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-12 Table 5–4: Multiplier Sign Representation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-12 Table 5–5: Examples of Shift Operations (Note 1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-31 Table 5–6: Example of Round-To-Nearest-Even Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-31 Table 5–7: Comparison of Round-to-Nearest-Integer and Round-to-Nearest-Even . . . . . . . . . . . . . . . . . 5-32 Table 5–8: Examples of Saturation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-32 Table 5–10: DSP Block Dynamic Signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-34 Table 5–10: Document Revision History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-42 Table 6–1: Clock Resources in Stratix III Devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-1 Table 6–2: Clock Input Pin Connectivity to Global Clock Networks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-8 Table 6–3: Clock Input Pin Connectivity to Regional Clock Networks (Quadrant 1) . . . . . . . . . . . . . . . . . 6-9 Table 6–4: Clock Input Pin Connectivity to Regional Clock Networks (Quadrant 2) . . . . . . . . . . . . . . . . . 6-9 Table 6–5: Clock Input Pin Connectivity to Regional Clock Networks (Quadrant 3) . . . . . . . . . . . . . . . . 6-10 Table 6–6: Clock Input Pin Connectivity to Regional Clock Networks (Quadrant 4) . . . . . . . . . . . . . . . . 6-11 Table 6–7: Stratix III Device PLLs and PLL Clock Pin Drivers (Note 1) . . . . . . . . . . . . . . . . . . . . . . . . . 6-11 Table 6–8: PLL Connectivity to GCLKs on Stratix III Devices (Note 1) . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-12 Table 6–9: Regional Clock Outputs From PLLs on Stratix III Devices (Note 1) . . . . . . . . . . . . . . . . . . . . 6-13 Table 6–10: Stratix III Device PLL Availability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-18 Table 6–11: Stratix III PLL Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-19 Table 6–12: PLL Input Signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-24 Table 6–13: PLL Output Signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-25 Table 6–14: Clock Feedback Mode Availability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-26 Table 6–15: Real-Time PLL Reconfiguration Ports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-44 Table 6–16: Top/Bottom PLL Reprogramming Bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-46 © March 2011 Altera Corporation Stratix III Device Handbook, Volume 1 xxii List of Tables Table 6–17: charge_pump_current Bit Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-48 Table 6–18: loop_filter_r Bit Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-48 Table 6–19: loop_filter_c Bit Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-48 Table 6–20: PLL Counter Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-49 Table 6–21: Dynamic Phase-Shifting Control Signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-49 Table 6–22: Phase Counter Select Mapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-50 Table 6–23: Chapter Revision History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-53 Table 7–1: I/O Standard Applications for Stratix III Devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-2 Table 7–2: I/O Standards and Voltage Levels for Stratix III Devices (Note 1), (3) . . . . . . . . . . . . . . . . . . . 7-3 Table 7–3: Bank Migration Path with Increasing Device Size (Note 1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-7 Table 7–4: Memory Interface Standards Supported . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-14 Table 7–5: Programmable Current Strength (Note 1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-16 Table 7–6: Default Programmable Slew Rate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-17 Table 7–7: MultiVolt I/O Support for Stratix III Devices (Note 1), (2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-19 Table 7–8: Selectable I/O Standards with On-Chip Series Termination With or Without Calibration . 7-22 Table 7–9: Selectable I/O Standards with Expanded On-Chip Series Termination with Calibration Range 7-23 Table 7–10: Selectable I/O Standards that Support On-Chip Parallel Termination with Calibration . . 7-24 Table 7–11: On-Chip Differential Termination in Quartus II Software Assignment Editor . . . . . . . . . . . 7-26 Table 7–12: OCT Calibration Block Ports for User Control and Description . . . . . . . . . . . . . . . . . . . . . . . 7-30 Table 7–13: Chapter Revision History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-42 Table 8–1: DQS and DQ Bus Mode Pins for Stratix III Devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-5 Table 8–2: Number of DQS/DQ Groups in Stratix III Devices per Side . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-6 Table 8–3: DQ/DQS Group in Stratix III Modular I/O Banks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-15 Table 8–4: I/O Sub-Bank Combinations for Stratix III Devices that do not have ×36 Groups to form two ×36 Groups. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-16 Table 8–5: DLL Location and Supported I/O Banks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-23 Table 8–6: DLL Reference Clock Input for EP3SE50, EP3SL50, and EP3SL70 Devices . . . . . . . . . . . . . . . 8-23 Table 8–8: DLL Reference Clock Input for EP3SE80, EP3SE110, EP3SL110, and EP3SL150 Devices in the 1152-pin Package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-24 Table 8–7: DLL Reference Clock Input for EP3SE80, EP3SE110, and EP3SL150 Devices in the 780-pin Package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-24 Table 8–9: DLL Reference Clock Input for EP3SL200, EP3SE260 and EP3SL340 Devices (Note 1), (2) . 8-25 Table 8–10: Stratix III DLL Frequency Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-27 Table 8–11: I/O Configuration Block Bit Sequence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-41 Table 8–12: DQS Configuration Block Bit Sequence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-42 Table 8–13: Chapter Revision History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-45 Table 9–1: LVDS Channels Supported in Stratix III Device Side I/O Banks (Note 1), (2), (3) . . . . . . . . . 9-3 Table 9–2: LVDS Channels (Emulated) Supported in Stratix III Device Column I/O Banks (Note 1), (2) . . 9-4 Table 9–3: Differential Bit Naming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-16 Table 9–4: Chapter Revision History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-27 Table 10–1: Power Supplies Ramp-Up Time (tRAMP) Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-5 Table 10–2: Power Supplies Monitored by the POR Circuitry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-5 Table 10–3: Power Supplies That Are Not Monitored by the POR Circuitry . . . . . . . . . . . . . . . . . . . . . . . 10-6 Table 10–4: Chapter Revision History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-7 Table 11–1: Stratix III Configuration Schemes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-2 Table 11–2: Stratix III Uncompressed Raw Binary File (.rbf) Sizes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-2 Table 11–3: Stratix III Configuration Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-3 Table 11–4: Stratix III MSEL Pin Settings for FPP Configuration Schemes . . . . . . . . . . . . . . . . . . . . . . . . . 11-8 Stratix III Device Handbook, Volume 1 © March 2011 Altera Corporation List of Tables xxiii Table 11–5: FPP Timing Parameters for Stratix III Devices (Note 1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-14 Table 11–6: FPP Timing Parameters for Stratix III Devices with Decompression or Design Security Feature Enabled (Note 1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-16 Table 11–7: Stratix III MSEL Pin Settings for AS Configuration Schemes (Note 1) . . . . . . . . . . . . . . . . 11-17 Table 11–8: Fast AS Timing Parameters for Stratix III Devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-24 Table 11–9: Stratix III MSEL Pin Settings for PS Configuration Scheme . . . . . . . . . . . . . . . . . . . . . . . . . . 11-27 Table 11–10: PS Timing Parameters for Stratix III Devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-32 Table 11–11: Dedicated JTAG Pins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-38 Table 11–12: Dedicated Configuration Pin Connections During JTAG Configuration . . . . . . . . . . . . . . 11-40 Table 11–13: Stratix III Configuration Pin Summary (Note 1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-43 Table 11–14: Dedicated Configuration Pins on the Stratix III Device . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-44 Table 11–15: Optional Configuration Pins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-49 Table 11–16: Dedicated JTAG Pins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-50 Table 11–17: Chapter Revision History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-51 Table 12–1: Stratix III Remote System Upgrade Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-3 Table 12–2: Remote System Upgrade Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-8 Table 12–3: Remote System Upgrade Control Register Contents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-9 Table 12–4: Remote System Upgrade Status Register Contents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-10 Table 12–5: Control Register Contents After an Error or Reconfiguration Trigger Condition . . . . . . . . 12-11 Table 12–6: 10-MHz Internal Oscillator Specifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-12 Table 12–7: Chapter Revision History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-14 Table 13–1: IEEE Std. 1149.1 Pin Descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-2 Table 13–2: Stratix III Boundary-Scan Register Length . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-4 Table 13–3: Stratix III Device Boundary Scan Cell Descriptions (Note 1) . . . . . . . . . . . . . . . . . . . . . . . . . 13-6 Table 13–4: Stratix III JTAG Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-7 Table 13–5: 32-Bit Stratix III Device IDCODE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-16 Table 13–6: Supported TDO/TDI Voltage Combinations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-17 Table 13–7: Disabling IEEE Std. 1149.1 Circuitry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-19 Table 13–8: Chapter Revision History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-21 Table 14–1: Security Keys Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-2 Table 14–2: Key Retention Time of Coin-Cell Type Batteries used for Volatile Key Storage . . . . . . . . . . 14-3 Table 14–3: Security Modes Supported . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-5 Table 14–4: Allowed Configuration Modes for Various Security Modes (Note 1) . . . . . . . . . . . . . . . . . . 14-6 Table 14–5: Design Security Configuration Schemes Availability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-7 Table 14–6: Chapter Revision History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-8 Table 15–1: EDERROR_INJECT JTAG Instruction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-4 Table 15–2: Fault Injection Register and Error Injection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-5 Table 15–3: CRC_ERROR Pin Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-6 Table 15–4: Error Detection Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-8 Table 15–5: Minimum and Maximum Error Detection Frequencies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-9 Table 15–6: Minimum Update Interval for Error Message Register (Note 1) . . . . . . . . . . . . . . . . . . . . 15-10 Table 15–7: CRC Calculation Time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-10 Table 15–8: Chapter Revision History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-12 Table 16–1: Stratix III Programmable Power Capabilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-3 Table 16–2: Stratix III Power Supply Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-4 Table 16–3: Chapter Revision History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-7 Table 17–1: FineLine and Hybrid FineLine BGA Packages for Stratix III Devices . . . . . . . . . . . . . . . . . . . 17-1 Table 17–2: Chapter Revision History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-2 © March 2011 Altera Corporation Stratix III Device Handbook, Volume 1 xxiv Stratix III Device Handbook, Volume 1 List of Tables © March 2011 Altera Corporation Additional Information This handbook provides comprehensive information about the Altera® Stratix ® III family of devices. How to Contact Altera For the most up-to-date information about Altera products, see the following table. Contact (Note 1) Contact Method Address Technical support Website www.altera.com/support Technical training Website www.altera.com/training Email custrain@altera.com Product literature Website www.altera.com/literature Non-technical support (General) Email nacomp@altera.com (Software Licensing) Email authorization@altera.com Note: (1) You can also contact your local Altera sales office or sales representative. Typographic Conventions The following table shows the typographic conventions that this document uses. Visual Cue Meaning Bold Type with Initial Capital Letters Command names, dialog box titles, checkbox options, and dialog box options are shown in bold, initial capital letters. Example: Save As dialog box. bold type External timing parameters, directory names, project names, disk drive names, file names, file name extensions, and software utility names are shown in bold type. Examples: fMAX , \qdesigns directory, d: drive, chiptrip.gdf file. Italic Type with Initial Capital Letters Document titles are shown in italic type with initial capital letters. Example: AN 75: High-Speed Board Design. Italic type Internal timing parameters and variables are shown in italic type. Examples: tPIA , n + 1. Variable names are enclosed in angle brackets (< >) and shown in italic type. Example: , .pof file. Initial Capital Letters Keyboard keys and menu names are shown with initial capital letters. Examples: Delete key, the Options menu. “Subheading Title” References to sections within a document and titles of on-line help topics are shown in quotation marks. Example: “Typographic Conventions.” © March 2011 Altera Corporation Stratix III Device Handbook, Volume 1 xxvi Typographic Conventions Visual Cue Courier type Meaning Signal and port names are shown in lowercase Courier type. Examples: data1 , tdi , input. Active-low signals are denoted by suffix n , e.g., resetn. Anything that must be typed exactly as it appears is shown in Courier type. For example: c:\qdesigns\tutorial\chiptrip.gdf. Also, sections of an actual file, such as a Report File, references to parts of files (e.g., the AHDL keyword SUBDESIGN ), as well as logic function names (e.g., TRI ) are shown in Courier. 1., 2., 3., and a., b., c., etc. Numbered steps are used in a list of items when the sequence of the items is important, such as the steps listed in a procedure. ■ ■ Bullets are used in a list of items when the sequence of the items is not important. v The checkmark indicates a procedure that consists of one step only. 1 The hand points to information that requires special attention. c A caution calls attention to a condition or possible situation that can damage or destroy the product or the user’s work. w A warning calls attention to a condition or possible situation that can cause injury to the user. r The angled arrow indicates you should press the Enter key. f The feet direct you to more information on a particular topic. Stratix III Device Handbook, Volume 1 © March 2011 Altera Corporation Section I. Device Core This section provides a complete overview of all features relating to the Stratix® III device family, which is the most architecturally advanced, high performance, low power FPGA in the market place. This section includes the following chapters: ■ Chapter 1, Stratix III Device Family Overview ■ Chapter 2, Logic Array Blocks and Adaptive Logic Modules in Stratix III Devices ■ Chapter 3, MultiTrack Interconnect in Stratix III Devices ■ Chapter 4, TriMatrix Embedded Memory Blocks in Stratix III Devices ■ Chapter 5, DSP Blocks in Stratix III Devices ■ Chapter 6, Clock Networks and PLLs in Stratix III Devices Revision History Refer to each chapter for its own specific revision history. For information on when each chapter was updated, refer to the Chapter Revision Dates section, which appears in the full handbook. © July 2010 Altera Corporation Stratix III Device Handbook, Volume 1 I–2 Stratix III Device Handbook, Volume 1 Section I: Device Core Revision History © July 2010 Altera Corporation 1. Stratix III Device Family Overview SIII51001-1.8 The Stratix ® III family provides one of the most architecturally advanced, high-performance, low-power FPGAs in the marketplace. Stratix III FPGAs lower power consumption through Altera’s innovative Programmable Power Technology, which provides the ability to turn on the performance where needed and turn down the power consumption for blocks not in use. Selectable Core Voltage and the latest in silicon process optimizations are also employed to deliver the industry’s lowest power, high-performance FPGAs. Specifically designed for ease of use and rapid system integration, the Stratix III FPGA family offers two variants optimized to meet different application needs: ■ The Stratix III L family provides balanced logic, memory, and multiplier ratios for mainstream applications. ■ The Stratix III E family is memory- and multiplier-rich for data-centric applications. Modular I/O banks with a common bank structure for vertical migration lend efficiency and flexibility to the high-speed I/O. Package and die enhancements with dynamic on-chip termination, output delay, and current strength control provide best-in-class signal integrity. Based on a 1.1-V, 65-nm all-layer copper SRAM process, the Stratix III family is a programmable alternative to custom ASICs and programmable processors for high-performance logic, digital signal processing (DSP), and embedded designs. Stratix III devices include optional configuration bit stream security through volatile or non-volatile 256-bit Advanced Encryption Standard (AES) encryption. Where ultra-high reliability is required, Stratix III devices include automatic error detection circuitry to detect data corruption by soft errors in the configuration random-access memory (CRAM) and user memory cells. Features Summary Stratix III devices offer the following features: © March 2010 ■ 48,000 to 338,000 equivalent logic elements (LEs) (refer to Table 1–1) ■ 2,430 to 20,497 Kbits of enhanced TriMatrix memory consisting of three RAM block sizes to implement true dual-port memory and FIFO buffers ■ High-speed DSP blocks provide dedicated implementation of 9×9, 12×12, 18×18, and 36×36 multipliers (at up to 550 MHz), multiply-accumulate functions, and finite impulse response (FIR) filters ■ I/O:GND:PWR ratio of 8:1:1 along with on-die and on-package decoupling for robust signal integrity ■ Programmable Power Technology, which minimizes power while maximizing device performance Altera Corporation Stratix III Device Handbook, Volume 1 1–2 Chapter 1: Stratix III Device Family Overview Features Summary ■ Selectable Core Voltage, available in low-voltage devices (L ordering code suffix), enables selection of lowest power or highest performance operation ■ Up to 16 global clocks, 88 regional clocks, and 116 peripheral clocks per device ■ Up to 12 phase-locked loops (PLLs) per device that support PLL reconfiguration, clock switchover, programmable bandwidth, clock synthesis, and dynamic phase shifting ■ Memory interface support with dedicated DQS logic on all I/O banks ■ Support for high-speed external memory interfaces including DDR, DDR2, DDR3 SDRAM, RLDRAM II, QDR II, and QDR II+ SRAM on up to 24 modular I/O banks ■ Up to 1,104 user I/O pins arranged in 24 modular I/O banks that support a wide range of industry I/O standards ■ Dynamic On-Chip Termination (OCT) with auto calibration support on all I/O banks ■ High-speed differential I/O support with serializer/deserializer (SERDES) and dynamic phase alignment (DPA) circuitry for 1.6 Gbps performance ■ Support for high-speed networking and communications bus standards including SPI-4.2, SFI-4, SGMII, Utopia IV, 10 Gigabit Ethernet XSBI, Rapid I/O, and NPSI ■ The only high-density, high-performance FPGA with support for 256-bit AES volatile and non-volatile security key to protect designs ■ Robust on-chip hot socketing and power sequencing support ■ Integrated cyclical redundancy check (CRC) for configuration memory error detection with critical error determination for high availability systems support ■ Built-in error correction coding (ECC) circuitry to detect and correct data errors in M144K TriMatrix memory blocks ■ Nios® II embedded processor support ■ Support for multiple intellectual property megafunctions from Altera ® MegaCore® functions and Altera Megafunction Partners Program (AMPPSM) Stratix III Device Handbook, Volume 1 © March 2010 Altera Corporation Chapter 1: Stratix III Device Family Overview Features Summary 1–3 Table 1–1 lists the Stratix III FPGA family features. Table 1–1. FPGA Family Features for Stratix III Devices Device/ Feature Stratix III Logic Family Stratix III Enhanced Family M144K Blocks Total MLAB Embedded Blocks RAM Kbits MLAB RAM Kbits (1) 18×18-bit Total Multipliers RAM Kbits(2) (FIR Mode) PLLs (3) ALMs LEs M9K Blocks EP3SL50 19K 47.5K 108 6 950 1,836 297 2,133 216 4 EP3SL70 27K 67.5K 150 6 1,350 2,214 422 2,636 288 4 EP3SL110 43K 107.5K 275 12 2,150 4,203 672 4,875 288 8 EP3SL150 57K 142.5K 355 16 2,850 5,499 891 6,390 384 8 EP3SL200 80K 200K 468 36 4,000 9,396 1,250 10,646 576 12 EP3SL340 135K 337.5K 1,040 48 6,750 16,272 2,109 18,381 576 12 EP3SE50 19K 47.5K 400 12 950 5,328 297 5,625 384 4 EP3SE80 32K 80K 495 12 1,600 6,183 500 6,683 672 8 EP3SE110 43K 107.5K 639 16 2,150 8,055 672 8,727 896 8 EP3SE260 102K 255K 864 48 5,100 14,688 1,594 16,282 768 12 Notes to Table 1–1: (1) MLAB ROM mode supports twice the number of MLAB RAM Kbits. (2) For total ROM Kbits, use this equation to calculate: Total ROM Kbits = Total Embedded RAM Kbits + [(# of MLAB blocks × 640)/1024] (3) The availability of the PLLs shown in this column is based on the device with the largest package. Refer to the Clock Networks and PLLs in Stratix III Devices chapter in volume 1 of the Stratix III Device Handbook for the availability of the PLLs for each device. The Stratix III logic family (L) offers balanced logic, memory, and multipliers to address a wide range of applications, while the enhanced family (E) offers more memory and multipliers per logic and is ideal for wireless, medical imaging, and military applications. Stratix III devices are available in space-saving FineLine BGA (FBGA) packages (refer to Table 1–2 and Table 1–3). © March 2010 Altera Corporation Stratix III Device Handbook, Volume 1 1–4 Chapter 1: Stratix III Device Family Overview Features Summary Table 1–2 lists the Stratix III FPGA package options and I/O pin counts. Table 1–2. Package Options and I/O Pin Counts (Note 1) 484-Pin FineLine BGA (2) 780-Pin FineLine BGA (2) 1152-Pin FineLine BGA (2) 1517-Pin FineLine BGA (3) 1760-Pin FineLine BGA (3) EP3SL50 296 488 — — — EP3SL70 296 488 — — — EP3SL110 — 488 744 — — EP3SL150 — 488 744 — — EP3SL200 — 488 (5) 744 976 — Device EP3SL340 — — 744 (4) 976 1,120 EP3SE50 296 488 — — — EP3SE80 — 488 744 — — EP3SE110 — 488 744 — — EP3SE260 — 488 (5) 744 976 — Notes to Table 1–2: (1) The arrows indicate vertical migration. (2) All I/O pin counts include eight dedicated clock inputs (CLK1p, CLK1n, CLK3p, CLK3n, CLK8p, CLK8n, CLK10p, and CLK10n) that can be used for data inputs. (3) All I/O pin counts include eight dedicated clock inputs (CLK1p, CLK1n, CLK3p, CLK3n, CLK8p, CLK8n, CLK10p, and CLK10n) and eight dedicated corner PLL clock inputs (PLL_L1_CLKp, PLL_L1_CLKn, PLL_L4_CLKp, PLL_L4_CLKn, PLL_R4_CLKp, PLL_R4_CLKn, PLL_R1_CLKp, and PLL_R1_CLKn) that can be used for data inputs. (4) The EP3SL340 FPGA is offered only in the H1152 package, but not offered in the F1152 package. (5) The EP3SE260 and EP3SL200 FPGAs are offered only in the H780 package, but not offered in the F780 package. All Stratix III devices support vertical migration within the same package (for example, you can migrate between the EP3SL50 and EP3SL70 devices in the 780-pin FineLine BGA package). Vertical migration allows you to migrate to devices whose dedicated pins, configuration pins, and power pins are the same for a given package across device densities. To ensure that a board layout supports migratable densities within one package offering, enable the applicable vertical migration path within the Quartus® II software. On the Assignments menu, point to Device and click Migration Devices. You can migrate from the L family to the E family without increasing the number of LEs available. This minimizes the cost of vertical migration. Table 1–3 lists the Stratix III FineLine BGA (FBGA) package sizes. Table 1–3. FineLine BGA Package Sizes Dimension 484 Pin 780 Pin 1152 Pin 1517 Pin 1760 Pin Pitch (mm) 1.00 1.00 1.00 1.00 1.00 Area (mm2) 529 841 1,225 1,600 1,849 23/23 29/29 35/35 40/40 43/43 Length/Width (mm/ mm) Stratix III Device Handbook, Volume 1 © March 2010 Altera Corporation Chapter 1: Stratix III Device Family Overview Features Summary 1–5 Table 1–4 lists the Stratix III Hybrid FineLine BGA (HBGA) package sizes. Table 1–4. Hybrid FineLine BGA Package Sizes Dimension 780 Pin 1152 Pin Pitch (mm) 1.00 1.00 Area (mm ) 1,089 1,600 Length/Width (mm/ mm) 33/33 40/40 2 Stratix III devices are available in up to three speed grades: –2, –3, and –4, with –2 being the fastest. Stratix III devices are offered in both commercial and industrial temperature range ratings with leaded and lead-free packages. Selectable Core Voltage is available in specially marked low-voltage devices (L ordering code suffix). Table 1–5 lists the Stratix III device speed grades. Table 1–5. Speed Grades for Stratix III Devices (Part 1 of 2) Device EP3SL50 EP3SL70 EP3SL110 EP3SL150 EP3SL200 EP3SL340 EP3SE50 EP3SE80 EP3SE110 © March 2010 Temperature Grade 484 -Pin FineLine BGA 780-Pin FineLine BGA 780-Pin Hybrid FineLine BGA 1152-Pin FineLine BGA 1152-Pin Hybrid FineLine BGA 1517-Pin FineLine BGA 1760-Pin FineLine BGA Commercial –2, –3, –4, –4L –2, –3,–4, –4L — — — — — Industrial –3, –4, –4L –3, –4, –4L — — — — — Commercial –2, –3, –4, –4L –2, –3, –4, –4L — — — — — Industrial –3, –4, –4L –3, –4, –4L — — — — — Commercial — –2, –3, –4, –4L — –2, –3, –4, –4L — — — Industrial — –3, –4, –4L — –3, –4, –4L — — — Commercial — –2,–3, –4, –4L — –2, –3, –4, –4L — — — Industrial — –3, –4, –4L — –3, –4, –4L — — — Commercial — — –2,–3, –4, –4L –2,–3, –4, –4L — –2,–3, –4, –4L — Industrial (1) — — –3, –4, –4L –3, –4, –4L — –3, –4, –4L — Commercial — — — — –2, –3, –4 –2, –3, –4 –2, –3, –4 Industrial (1) — — — — –3, –4, –4L –3, –4, –4L –3, –4, –4L Commercial –2, –3, –4, –4L –2, –3, –4, –4L — — — — — Industrial –3, –4, –4L –3, –4, –4L — — — — — Commercial — –2, –3, –4, –4L — –2, –3, –4, –4L — — — Industrial — –3, –4, –4L — –3, –4, –4L — — — Commercial — –2,–3, –4, –4L — –2, –3, –4, –4L — — — Industrial — –3, –4, –4L — –3, –4, –4L — — — Altera Corporation Stratix III Device Handbook, Volume 1 1–6 Chapter 1: Stratix III Device Family Overview Architecture Features Table 1–5. Speed Grades for Stratix III Devices (Part 2 of 2) Device EP3SE260 484 -Pin FineLine BGA 780-Pin FineLine BGA 780-Pin Hybrid FineLine BGA 1152-Pin FineLine BGA 1152-Pin Hybrid FineLine BGA 1517-Pin FineLine BGA 1760-Pin FineLine BGA Commercial — — –2, –3, –4, –4L –2,– 3, –4, –4L — –2, –3, –4, –4L — Industrial (1) — — –3, –4, –4L –3, –4, –4L — –3, –4,–4L — Temperature Grade Note to Table 1–5: (1) For EP3SL340, EP3SL200, and EP3SE260 devices, the industrial junction temperature range for –4L is 0–100°C, regardless of supply voltage. Architecture Features The following section describes the various features of the Stratix III family FPGAs. Logic Array Blocks and Adaptive Logic Modules The Logic Array Block (LAB) is composed of basic building blocks known as Adaptive Logic Modules (ALMs) that can be configured to implement logic, arithmetic, and register functions. Each LAB consists of ten ALMs, carry chains, shared arithmetic chains, LAB control signals, local interconnect, and register chain connection lines. ALMs are part of a unique, innovative logic structure that delivers faster performance, minimizes area, and reduces power consumption. ALMs expand the traditional 4-input look-up table architecture to 7 inputs, increasing performance by reducing LEs, logic levels, and associated routing. In addition, ALMs maximize DSP performance with dedicated functionality to efficiently implement adder trees and other complex arithmetic functions. The Quartus II Compiler places associated logic in an LAB or adjacent LABs, allowing the use of local, shared arithmetic chain, and register chain connections for performance and area efficiency. The Stratix III LAB has a new derivative called Memory LAB (or MLAB), which adds SRAM memory capability to the LAB. MLAB is a superset of the LAB and includes all LAB features. MLABs support a maximum of 320 bits of simple dual-port Static Random Access Memory (SRAM). Each ALM in an MLAB can be configured as a 16×2 block, resulting in a configuration of 16×20 simple dual port SRAM block. MLAB and LAB blocks always co-exist as pairs in all Stratix III families, allowing up to 50% of the logic (LABs) to be traded for memory (MLABs). f For more information about LABs and ALMs, refer to the Logic Array Blocks and Adaptive Logic Modules in Stratix III Devices chapter. f For more information about MLAB modes, features and design considerations, refer to the TriMatrix Embedded Memory Blocks in Stratix III Devices chapter. Stratix III Device Handbook, Volume 1 © March 2010 Altera Corporation Chapter 1: Stratix III Device Family Overview Architecture Features 1–7 MultiTrack Interconnect In the Stratix III architecture, connections between ALMs, TriMatrix memory, DSP blocks, and device I/O pins are provided by the MultiTrack interconnect structure with DirectDrive technology. The MultiTrack interconnect consists of continuous, performance-optimized row and column interconnects that span fixed distances. A routing structure with fixed length resources for all devices allows predictable and repeatable performance when migrating through different device densities. The MultiTrack interconnect provides 1-hop connection to 34 adjacent LABs, 2-hop connections to 96 adjacent LABs and 3-hop connections to 160 adjacent LABs. DirectDrive technology is a deterministic routing technology that ensures identical routing resource usage for any function regardless of placement in the device. The MultiTrack interconnect and DirectDrive technology simplify the integration stage of block-based designing by eliminating the reoptimization cycles that typically follow design changes and additions. The Quartus II Compiler also automatically places critical design paths on faster interconnects to improve design performance. f For more information, refer to the MultiTrack Interconnect in Stratix III Devices chapter. TriMatrix Embedded Memory Blocks TriMatrix embedded memory blocks provide three different sizes of embedded SRAM to efficiently address the needs of Stratix III FPGA designs. TriMatrix memory includes the following blocks: ■ 320-bit MLAB blocks optimized to implement filter delay lines, small FIFO buffers, and shift registers ■ 9-Kbit M9K blocks that can be used for general purpose memory applications ■ 144-Kbit M144K blocks that are ideal for processor code storage, packet and video frame buffering Each embedded memory block can be independently configured to be a single- or dual-port RAM, ROM, or shift register via the Quartus II MegaWizardTM Plug-In Manager. Multiple blocks of the same type can also be stitched together to produce larger memories with minimal timing penalty. TriMatrix memory provides up to 16,272 Kbits of embedded SRAM at up to 600 MHz operation. f For more information about TriMatrix memory blocks, modes, features, and design considerations, refer to the TriMatrix Embedded Memory Blocks in Stratix III Devices chapter. DSP Blocks Stratix III devices have dedicated high-performance digital signal processing (DSP) blocks optimized for DSP applications requiring high data throughput. Stratix III devices provide you with the ability to implement various high-performance DSP functions easily. Complex systems such as WiMAX, 3GPP WCDMA, CDMA2000, voice over Internet Protocol (VoIP), H.264 video compression, and high-definition television (HDTV) require high-performance DSP blocks to process data. These system designs typically use DSP blocks to implement finite impulse response (FIR) filters, complex FIR filters, infinite impulse response (IIR) filters, fast Fourier transform (FFT) functions, and discrete cosine transform (DCT) functions. © March 2010 Altera Corporation Stratix III Device Handbook, Volume 1 1–8 Chapter 1: Stratix III Device Family Overview Architecture Features Stratix III devices have up to 112 DSP blocks. The architectural highlights of the Stratix III DSP block are the following: ■ High-performance, power optimized, fully pipelined multiplication operations ■ Native support for 9-bit, 12-bit, 18-bit, and 36-bit word lengths ■ Native support for 18-bit complex multiplications ■ Efficient support for floating point arithmetic formats (24-bit for Single Precision and 53-bit for Double Precision) ■ Signed and unsigned input support ■ Built-in addition, subtraction, and accumulation units to efficiently combine multiplication results ■ Cascading 18-bit input bus to form tap-delay lines ■ Cascading 44-bit output bus to propagate output results from one block to the next block ■ Rich and flexible arithmetic rounding and saturation units ■ Efficient barrel shifter support ■ Loopback capability to support adaptive filtering DSP block multipliers can optionally feed an adder/subtractor or accumulator in the block depending on user configuration. This option saves ALM routing resources and increases performance, because all connections and blocks are inside the DSP block. Additionally, the DSP Block input registers can efficiently implement shift registers for FIR filter applications, and the Stratix III DSP blocks support rounding and saturation. The Quartus II software includes megafunctions that control the mode of operation of the DSP blocks based on user parameter settings. f For more information, refer to the DSP Blocks in Stratix III Devices chapter. Clock Networks and PLLs Stratix III devices provide dedicated Global Clock Networks (GCLKs), Regional Clock Networks (RCLKs), and Periphery Clock Networks (PCLKs). These clocks are organized into a hierarchical clock structure that provides up to 104 unique clock domains (16 GCLK + 88 RCLK) within the Stratix III device and allows for up to 38 (16 GCLK + 22 RCLK) unique GCLK/RCLK clock sources per device quadrant. Stratix III devices deliver abundant PLL resources with up to 12 PLLs per device and up to 10 outputs per PLL. Every output can be independently programmed, creating a unique, customizable clock frequency. Inherent jitter filtration and fine granularity control over multiply, divide ratios, and dynamic phase-shift reconfiguration provide the high-performance precision required in today’s high-speed applications. Stratix III PLLs are feature rich, supporting advanced capabilities such as clock switchover, reconfigurable phase shift, PLL reconfiguration, and reconfigurable bandwidth. PLLs can be used for general-purpose clock management supporting multiplication, phase shifting, and programmable duty cycle. Stratix III PLLs also support external feedback mode, spread-spectrum input clock tracking, and post-scale counter cascading. Stratix III Device Handbook, Volume 1 © March 2010 Altera Corporation Chapter 1: Stratix III Device Family Overview Architecture Features f 1–9 For more information, refer to the Clock Networks and PLLs in Stratix III Devices chapter. I/O Banks and I/O Structure Stratix III devices contain up to 24 modular I/O banks, each of which contains 24, 32, 36, 40, or 48 I/Os. This modular bank structure improves pin efficiency and eases device migration. The I/O banks contain circuitry to support external memory interfaces at speeds up to 533 MHz and high-speed differential I/O interfaces meeting up to 1.6 Gbps performance. It also supports high-speed differential inputs and outputs running at speeds up to 800 MHz. Stratix III devices support a wide range of industry I/O standards, including single-ended, voltage referenced single-ended, and differential I/O standards. The Stratix III I/O supports programmable bus hold, programmable pull-up resistor, programmable slew rate, programmable drive strength, programmable output delay control, and open-drain output. Stratix III devices also support on-chip series (RS) and on-chip parallel (RT) termination with auto calibration for single-ended I/O standards and on-chip differential termination (RD) for LVDS I/O standards on Left/Right I/O banks. Dynamic OCT is also supported on bi-directional I/O pins in all I/O banks. f For more information, refer to the Stratix III Device I/O Features chapter. External Memory Interfaces The Stratix III I/O structure has been completely redesigned to provide flexibility and enable high-performance support for existing and emerging external memory standards such as DDR, DDR2, DDR3, QDR II, QDR II+, and RLDRAM II at frequencies of up to 533 MHz. Packed with features such as dynamic on-chip termination, trace mismatch compensation, read/write leveling, half-rate registers, and 4-to 36-bit programmable DQ group widths, Stratix III I/Os supply the built-in functionality required for rapid and robust implementation of external memory interfaces. Double data-rate support is found on all sides of the Stratix III device. Stratix III devices provide an efficient architecture to quickly and easily fit wide external memory interfaces exactly where you want them. A self-calibrating soft IP core (ALTMEMPHY), optimized to take advantage of the Stratix III device I/O, along with the Quartus II timing analysis tool (TimeQuest), provide the total solution for the highest reliable frequency of operation across process voltage and temperature. f For more information about external memory interfaces, refer to the External Memory Interfaces in Stratix III Devices chapter. High-Speed Differential I/O Interfaces with DPA Stratix III devices contain dedicated circuitry for supporting differential standards at speeds up to 1.6 Gbps. The high-speed differential I/O circuitry supports the following high-speed I/O interconnect standards and applications: Utopia IV, SPI-4.2, SFI-4, 10 Gigabit Ethernet XSBI, Rapid I/O, and NPSI. Stratix III devices support 2×, 4×, 6×, 7×, 8×, and 10× SERDES modes for high-speed differential I/O interfaces and © March 2010 Altera Corporation Stratix III Device Handbook, Volume 1 1–10 Chapter 1: Stratix III Device Family Overview Architecture Features 4×, 6×, 7×, 8×, and 10× SERDES modes when using the dedicated DPA circuitry. DPA minimizes bit errors, simplifies PCB layout and timing management for high-speed data transfer, and eliminates channel-to-channel and channel-to-clock skew in high-speed data transmission systems. Soft CDR can also be implemented, enabling low-cost 1.6-Gbps clock embedded serial links. Stratix III devices have the following dedicated circuitry for high-speed differential I/O support: f ■ Differential I/O buffer ■ Transmitter serializer ■ Receiver deserializer ■ Data realignment ■ Dynamic phase aligner (DPA) ■ Soft CDR functionality ■ Synchronizer (FIFO buffer) ■ PLLs For more information, refer to the High Speed Differential I/O Interfaces with DPA in Stratix III Devices chapter. Hot Socketing and Power-On Reset Stratix III devices are hot-socketing compliant. Hot socketing is also known as hot plug-in or hot swap, and power sequencing support without the use of any external devices. Robust on-chip hot-socketing and power-sequencing support ensures proper device operation independent of the power-up sequence. You can insert or remove a Stratix III board in a system during system operation without causing undesirable effects to the running system bus or the board that was inserted into the system. The hot-socketing feature makes it easier to use Stratix III devices on PCBs that also contain a mixture of 3.3-V, 3.0-V, 2.5-V, 1.8-V, 1.5-V, and 1.2-V devices. With the Stratix III hot socketing feature, you do not need to ensure a specific power-up sequence for each device on the board. f For more information, refer to the Hot Socketing and Power-On Reset in Stratix III Devices chapter. Configuration Stratix III devices are configured using one of the following four configuration schemes: ■ Fast passive parallel (FPP) ■ Fast active serial (AS) ■ Passive serial (PS) ■ Joint Test Action Group (JTAG) All configuration schemes use either an external controller (for example, a MAX® II device or microprocessor), a configuration device, or a download cable. Stratix III Device Handbook, Volume 1 © March 2010 Altera Corporation Chapter 1: Stratix III Device Family Overview Architecture Features 1–11 Stratix III devices support configuration data decompression, which saves configuration memory space and time. This feature allows you to store compressed configuration data in configuration devices or other memory and transmit this compressed bitstream to Stratix III devices. During configuration, the Stratix III device decompresses the bitstream in real time and programs its SRAM cells. Stratix III devices support decompression in the FPP when using a MAX II device/microprocessor plus flash, fast AS, and PS configuration schemes. The Stratix III decompression feature is not available in the FPP when using the enhanced configuration device and JTAG configuration schemes. f For more information, refer to the Configuring Stratix III Devices chapter. Remote System Upgrades Stratix III devices feature remote system upgrade capability, allowing error-free deployment of system upgrades from a remote location securely and reliably. Soft logic (either the Nios embedded processor or user logic) implemented in a Stratix III device can download a new configuration image from a remote location, store it in configuration memory, and direct the dedicated remote system upgrade circuitry to initiate a reconfiguration cycle. The dedicated circuitry performs error detection during and after the configuration process, and can recover from an error condition by reverting back to a safe configuration image, and provides error status information. This dedicated remote system upgrade circuitry is unique to Stratix series FPGAs and helps to avoid system downtime. f For more information, refer to the Remote System Upgrades with Stratix III Devices chapter. IEEE 1149.1 (JTAG) Boundary-Scan Testing Stratix III devices support the JTAG IEEE Std. 1149.1 specification. The Boundary-Scan Test (BST) architecture offers the capability to test pin connections without using physical test probes and capture functional data while a device is operating normally. Boundary-scan cells in the Stratix III device can force signals onto pins or capture data from pin or logic array signals. Forced test data is serially shifted into the boundary-scan cells. Captured data is serially shifted out and externally compared to expected results. In addition to BST, you can use the IEEE Std. 1149.1 controller for Stratix III device in-circuit reconfiguration (ICR). f For more information, refer to the IEEE 1149.1 (JTAG) Boundary Scan Testing in Stratix III Devices chapter. Design Security Stratix III devices are high-density, high-performance FPGAs with support for 256-bit volatile and non-volatile security keys to protect designs against copying, reverse engineering, and tampering. Stratix III devices have the ability to decrypt a configuration bitstream using the Advanced Encryption Standard (AES) algorithm, an industry standard encryption algorithm that is FIPS-197 certified and requires a 256-bit security key. © March 2010 Altera Corporation Stratix III Device Handbook, Volume 1 1–12 Chapter 1: Stratix III Device Family Overview Architecture Features The design security feature is available when configuring Stratix III FPGAs using the fast passive parallel (FPP) configuration mode with an external host (such as a MAX II device or microprocessor), or when using fast active serial (AS) or passive serial (PS) configuration schemes. f For more information about the design security feature, refer to the Design Security in Stratix III Devices chapter. SEU Mitigation Stratix III devices have built-in error detection circuitry to detect data corruption due to soft errors in the configuration random-access memory (CRAM) cells. This feature allows all CRAM contents to be read and verified continuously during user mode operation to match a configuration-computed CRC value. The enhanced CRC circuit and frame-based configuration architecture allows detection and location of multiple, single, and adjacent bit errors which, in conjunction with a soft circuit supplied as a reference design, allows don’t-care soft errors in the CRAM to be ignored during device operation. This provides a steep decrease in the effective soft error rate, increasing system reliability. On-chip memory block SEU mitigation is also offered using the ninth bit and a configurable megafunction in the Quartus II software for MLAB and M9K blocks while the M144K memory blocks have built-in error correction code (ECC) circuitry. f For more information about the dedicated error detection circuitry, refer to the SEU Mitigation in Stratix III Devices chapter. Programmable Power Stratix III delivers Programmable Power, the only FPGA with user programmable power options balancing today’s power and performance requirements. Stratix III devices utilize the most advanced power-saving techniques, including a variety of process, circuit, and architecture optimizations and innovations. In addition, user controllable power reduction techniques provide an optimal balance of performance and power reduction specific for each design configured into the Stratix III FPGA. The Quartus II software (starting from version 6.1) automatically optimizes designs to meet the performance goals while simultaneously leveraging the programmable power-saving options available in the Stratix III FPGA without the need for any changes to the design flow. f For more information about Programmable Power in Stratix III devices, refer to the following documents: ■ Programmable Power and Temperature Sensing Diode in Stratix III Devices chapter ■ AN 437: Power Optimization in Stratix III FPGAs ■ Stratix III Programmable Power White Paper Stratix III Device Handbook, Volume 1 © March 2010 Altera Corporation Chapter 1: Stratix III Device Family Overview Reference and Ordering Information 1–13 Signal Integrity Stratix III devices simplify the challenge of signal integrity through a number of chip, package, and board level enhancements to enable efficient high-speed data transfer into and out of the device. These enhancements include: ■ 8:1:1 user I/O/Gnd/VCC ratio to reduce the loop inductance in the package ■ Dedicated power supply for each I/O bank, limit of I/Os is 24 to 48 I/Os per bank, to help limit simultaneous switching noise ■ Programmable slew-rate support with up to four settings to match desired I/O standard, control noise, and overshoot ■ Programmable output-current drive strength support with up to six settings to match desired I/O standard performance ■ Programmable output-delay support to control rise/fall times and adjust duty cycle, compensate for skew, and reduce simultaneous switching outputs (SSO) noise ■ Dynamic OCT with auto calibration support for series and parallel OCT and differential OCT support for LVDS I/O standard on the left/right banks f For more information about SI support in the Quartus II software, refer to the Quartus II Handbook. f For more information about how to use the various configuration, PLL, external memory interfaces, I/O, high-speed differential I/O, power, and JTAG pins, refer to the Stratix III Device Family Pin Connection Guidelines. Reference and Ordering Information The following section describes Stratix III device software support and ordering information. Software Support Stratix III devices are supported by the Altera Quartus II design software, version 6.1 and later, which provides a comprehensive environment for system-on-a-programmable-chip (SOPC) design. The Quartus II software includes HDL and schematic design entry, compilation and logic synthesis, full simulation and advanced timing analysis, SignalTap® II logic analyzer, and device configuration. f For more information about the Quartus II software features, refer to the Quartus II Handbook. The Quartus II software supports a variety of operating systems. The specific operating system for the Quartus II software can be obtained from the Quartus II Readme.txt file or the Operating System Support section of the Altera website. It also supports seamless integration with industry-leading EDA tools through the NativeLink ® interface. © March 2010 Altera Corporation Stratix III Device Handbook, Volume 1 1–14 Chapter 1: Stratix III Device Family Overview Chapter Revision History Ordering Information Figure 1–1 shows the ordering codes for Stratix III devices. f For more information about a specific package, refer to the Stratix III Device Package Information chapter. Figure 1–1. Stratix III Device Packaging Ordering Information EP3SL 150 F 1152 C 2 ES Family Signature Optional Suffix Indicates specific device options ES: Engineering sample N: Lead-free devices L: Low-voltage devices EP3SL: Stratix III Logic EP3SE: Stratix III DSP/Memory Device Type Speed Grade 50 70 80 110 150 200 260 340 2, 3, or 4, with 2 being the fastest Operating Temperature C: Commercial temperature (t J = 0 C to 85 C) I : Industrial temperature (t J = - 40 C to 100 C) Package Type Pin Count Number of pins for a particular package: 484 780 1152 1517 1760 F: FineLine BGA (FBGA) H: Hybrid FineLine BGA (HBGA) Chapter Revision History Table 1–6 lists the revision history for this chapter. Table 1–6. Chapter Revision History (Part 1 of 2) Date Version Changes Made Updated for the Quartus II software version 9.1 SP2 release: March 2010 1.8 ■ Updated Table 1–2. ■ Updated “I/O Banks and I/O Structure” section. May 2009 1.7 Updated “Software” and “Signal Integrity” sections. February 2009 October 2008 1.6 1.5 Stratix III Device Handbook, Volume 1 ■ Updated “Features” section. ■ Updated Table 1–1. ■ Removed “Referenced Documents” section. ■ Updated “Features” section. ■ Updated Table 1–1 and Table 1–5. ■ Updated New Document Format. © March 2010 Altera Corporation Chapter 1: Stratix III Device Family Overview Chapter Revision History 1–15 Table 1–6. Chapter Revision History (Part 2 of 2) Date Version May 2008 1.4 November 2007 October 2007 1.3 1.2 Changes Made ■ Updated “Introduction”. ■ Updated Table 1–1. ■ Updated Table 1–2. ■ Added Table 1–5. ■ Updated “Reference and Ordering Information”. ■ Updated package type information in Figure 1–1. ■ Updated Table 1–1. ■ Updated Table 1–2. ■ Minor typo fixes. ■ Added Table 1–4. ■ Added section “Referenced Documents”. ■ Added live links for references. May 2007 1.1 Minor formatting changes, fixed PLL numbers and ALM, LE and MLAB bit counts in Table 1–1. November 2006 1.0 Initial Release. © March 2010 Altera Corporation Stratix III Device Handbook, Volume 1 1–16 Stratix III Device Handbook, Volume 1 Chapter 1: Stratix III Device Family Overview Chapter Revision History © March 2010 Altera Corporation 2. Logic Array Blocks and Adaptive Logic Modules in Stratix III Devices SIII51002-1.5 Introduction This chapter describes the features of the logic array block (LAB) in the Stratix® III core fabric. The logic array block is composed of basic building blocks known as adaptive logic modules (ALMs) that can be configured to implement logic functions, arithmetic functions, and register functions. Logic Array Blocks Each LAB consists of ten ALMs, carry chains, shared arithmetic chains, LAB control signals, local interconnect, and register chain connection lines. The local interconnect transfers signals between ALMs in the same LAB. The direct link interconnect allows a LAB to drive into the local interconnect of its left and right neighbors. Register chain connections transfer the output of the ALM register to the adjacent ALM register in an LAB. The Quartus® II Compiler places associated logic in an LAB or adjacent LABs, allowing the use of local, shared arithmetic chain, and register chain connections for performance and area efficiency. Figure 2–1 shows the Stratix III LAB structure and the LAB interconnects. © February 2009 Altera Corporation Stratix III Device Handbook, Volume 1 2–2 Chapter 2: Logic Array Blocks and Adaptive Logic Modules in Stratix III Devices Logic Array Blocks Figure 2–1. Stratix III LAB Structure C4 C12 Row Interconnects of Variable Speed & Length R20 R4 ALMs Direct link interconnect from adjacent block Direct link interconnect from adjacent block Direct link interconnect to adjacent block Direct link interconnect to adjacent block Local Interconnect LAB MLAB Local Interconnect is Driven from Either Side by Columns & LABs, & from Above by Rows Column Interconnects of Variable Speed & Length The LAB of Stratix III has a new derivative called Memory LAB (MLAB), which adds look-up table (LUT)-based SRAM capability to the LAB as shown in Figure 2–2. The MLAB supports a maximum of 320-bits of simple dual-port static random access memory (SRAM). You can configure each ALM in an MLAB as a 16 × 2 block, resulting in a configuration of 16 × 20 simple dual port SRAM block. MLAB and LAB blocks always co-exist as pairs in all Stratix III families. MLAB is a superset of the LAB and includes all LAB features. Figure 2–2 shows an overview of LAB and MLAB topology. f The MLAB is described in detail in the TriMatrix Embedded Memory Blocks in Stratix III Devices chapter in volume 1 of the Stratix III Device Handbook. Stratix III Device Handbook, Volume 1 © February 2009 Altera Corporation Chapter 2: Logic Array Blocks and Adaptive Logic Modules in Stratix III Devices Logic Array Blocks 2–3 Figure 2–2. Stratix III LAB and MLAB Structure LUT-based-16 x 2 Simple dual port SRAM (1) ALM LUT-based-16 x 2 Simple dual port SRAM (1) LUT-based-16 x 2 Simple dual port SRAM (1) LUT-based-16 x 2 Simple dual port SRAM (1) LUT-based-16 x 2 Simple dual port SRAM (1) ALM LAB Control Block (1) ALM LUT-based-16 x 2 Simple dual port SRAM (1) LUT-based-16 x 2 Simple dual port SRAM (1) LUT-based-16 x 2 Simple dual port SRAM (1) LUT-based-16 x 2 Simple dual port SRAM (1) MLAB ALM ALM LAB Control Block LUT-based-16 x 2 Simple dual port SRAM ALM ALM ALM ALM ALM LAB Note to Figure 2–2: (1) You can use MLAB ALM as a regular LAB ALM or configure it as a dual-port SRAM, as shown. LAB Interconnects The LAB local interconnect can drive ALMs in the same LAB. It is driven by column and row interconnects and ALM outputs in the same LAB. Neighboring LABs/MLABs, M9K RAM blocks, M144K blocks, or DSP blocks from the left and right can also drive a LAB's local interconnect through the direct link connection. The direct link connection feature minimizes the use of row and column interconnects, providing higher performance and flexibility. Each ALM can drive 30 ALMs through fast local and direct link interconnects. © February 2009 Altera Corporation Stratix III Device Handbook, Volume 1 2–4 Chapter 2: Logic Array Blocks and Adaptive Logic Modules in Stratix III Devices Logic Array Blocks Figure 2–3shows the direct link connection. Figure 2–3. Direct Link Connection Direct link interconnect from left LAB, TriMatrix memory block, DSP block, or IOE output Direct link interconnect from right LAB, TriMatrix memory block, DSP block, or IOE output ALMs ALMs Direct link interconnect to right Direct link interconnect to left Local Interconnect MLAB LAB LAB Control Signals Each LAB contains dedicated logic for driving control signals to its ALMs. The control signals include three clocks, three clock enables, two asynchronous clears, a synchronous clear, and synchronous load control signals. This gives a maximum of 10 control signals at a time. Although you generally use synchronous load and clear signals when implementing counters, you can also use them with other functions. Each LAB has two unique clock sources and three clock enable signals, as shown in Figure 2–4. The LAB control block can generate up to three clocks using the two clock sources and three clock enable signals. Each LAB's clock and clock enable signals are linked. For example, any ALM in a particular LAB using the labclk1 signal also uses labclkena1 signal. If the LAB uses both the rising and falling edges of a clock, it also uses two LAB-wide clock signals. De-asserting the clock enable signal turns off the corresponding LAB-wide clock. The LAB row clocks [5..0] and LAB local interconnect generate the LAB-wide control signals. The MultiTrackTM interconnect's inherent low skew allows clock and control signal distribution in addition to data. Figure 2–4shows the LAB control signal generation circuit. Stratix III Device Handbook, Volume 1 © February 2009 Altera Corporation Chapter 2: Logic Array Blocks and Adaptive Logic Modules in Stratix III Devices Adaptive Logic Modules 2–5 Figure 2–4. LAB-Wide Control Signals There are two unique clock signals per LAB. 6 Dedicated Row LAB Clocks 6 6 Local Interconnect Local Interconnect Local Interconnect Local Interconnect Local Interconnect Local Interconnect labclk0 labclk1 labclkena0 or asyncload or labpreset labclk2 labclkena1 labclkena2 labclr1 syncload labclr0 synclr Adaptive Logic Modules The basic building block of logic in the Stratix III architecture, the adaptive logic module (ALM), provides advanced features with efficient logic utilization. Each ALM contains a variety of look-up table (LUT)-based resources that can be divided between two combinational adaptive LUTs (ALUTs) and two registers. With up to eight inputs to the two combinational ALUTs, one ALM can implement various combinations of two functions. This adaptability allows an ALM to be completely backwardcompatible with four-input LUT architectures. One ALM can also implement any function of up to six inputs and certain seven-input functions. In addition to the adaptive LUT-based resources, each ALM contains two programmable registers, two dedicated full adders, a carry chain, a shared arithmetic chain, and a register chain. Through these dedicated resources, an ALM can efficiently implement various arithmetic functions and shift registers. Each ALM drives all types of interconnects: local, row, column, carry chain, shared arithmetic chain, register chain, and direct link interconnects. Figure 2–5 shows a high-level block diagram of the Stratix III ALM while Figure 2–6 shows a detailed view of all the connections in an ALM. © February 2009 Altera Corporation Stratix III Device Handbook, Volume 1 2–6 Chapter 2: Logic Array Blocks and Adaptive Logic Modules in Stratix III Devices Adaptive Logic Modules Figure 2–5. High-Level Block Diagram of the Stratix III ALM shared_arith_in carry_in Combinational/Memory ALUT0 reg_chain_in labclk To general or local routing dataf0 datae0 6-Input LUT adder0 D Q dataa To general or local routing reg0 datab datac datad datae1 adder1 D Q 6-Input LUT To general or local routing reg1 dataf1 To general or local routing Combinational/Memory ALUT1 reg_chain_out shared_arith_out Stratix III Device Handbook, Volume 1 carry_out © February 2009 Altera Corporation Chapter 2: Logic Array Blocks and Adaptive Logic Modules in Stratix III Devices Adaptive Logic Modules 2–7 sclr carry_out shared_arith_out dataf1 datae1 3-INPUT LUT 3-INPUT LUT + 3-INPUT LUT 3-INPUT LUT 4-INPUT LUT datad datac dataa datab datae0 dataf0 4-INPUT LUT shared_arith_in + carry_in VCC GND clk[2:0] syncload aclr[1:0] reg_chain_in D D CLR CLR Q reg_chain_out row, column direct link routing row, column direct link routing local interconnect row, column direct link routing row, column direct link routing Q local interconnect Figure 2–6. Stratix III ALM Details One ALM contains two programmable registers. Each register has data, clock, clock enable, synchronous and asynchronous clear, and synchronous load/clear inputs. Global signals, general-purpose I/O pins, or any internal logic can drive the register's clock and clear control signals. Either general-purpose I/O pins or internal logic can drive the clock enable. For combinational functions, the register is bypassed and the output of the LUT drives directly to the outputs of an ALM. © February 2009 Altera Corporation Stratix III Device Handbook, Volume 1 2–8 Chapter 2: Logic Array Blocks and Adaptive Logic Modules in Stratix III Devices Adaptive Logic Modules Each ALM has two sets of outputs that drive the local, row, and column routing resources. The LUT, adder, or register output can drive these output drivers (refer to Figure 2–6). For each set of output drivers, two ALM outputs can drive column, row, or direct link routing connections, and one of these ALM outputs can also drive local interconnect resources. This allows the LUT or adder to drive one output while the register drives another output. This feature, called register packing, improves device utilization because the device can use the register and the combinational logic for unrelated functions. Another special packing mode allows the register output to feed back into the LUT of the same ALM so that the register is packed with its own fan-out LUT. This provides another mechanism for improved fitting. The ALM can also drive out registered and unregistered versions of the LUT or adder output. ALM Operating Modes The Stratix III ALM can operate in one of the following modes: ■ Normal ■ Extended LUT Mode ■ Arithmetic ■ Shared Arithmetic ■ LUT-Register Each mode uses ALM resources differently. In each mode, eleven available inputs to an ALM—the eight data inputs from the LAB local interconnect, carry-in from the previous ALM or LAB, the shared arithmetic chain connection from the previous ALM or LAB, and the register chain connection—are directed to different destinations to implement the desired logic function. LAB-wide signals provide clock, asynchronous clear, synchronous clear, synchronous load, and clock enable control for the register. These LAB-wide signals are available in all ALM modes. 1 Refer to “LAB Control Signals” on page 2–4 for more information on the LAB-wide control signals. The Quartus II software and supported third-party synthesis tools, in conjunction with parameterized functions such as the library of parameterized modules (LPM) functions, automatically choose the appropriate mode for common functions such as counters, adders, subtractors, and arithmetic functions. Normal Mode The normal mode is suitable for general logic applications and combinational functions. In this mode, up to eight data inputs from the LAB local interconnect are inputs to the combinational logic. The normal mode allows two functions to be implemented in one Stratix III ALM, or an ALM to implement a single function of up to six inputs. The ALM can support certain combinations of completely independent functions and various combinations of functions that have common inputs. Figure 2–7 shows the supported LUT combinations in normal mode. Stratix III Device Handbook, Volume 1 © February 2009 Altera Corporation Chapter 2: Logic Array Blocks and Adaptive Logic Modules in Stratix III Devices Adaptive Logic Modules Figure 2–7. ALM in Normal Mode dataf0 datae0 datac dataa 4-Input LUT datab datad datae1 dataf1 4-Input LUT dataf0 datae0 datac dataa datab 5-Input LUT datad datae1 dataf1 3-Input LUT dataf0 datae0 datac dataa datab 5-Input LUT 4-Input LUT datad datae1 dataf1 2–9 (Note 1) combout0 dataf0 datae0 datac dataa datab 5-Input LUT combout0 5-Input LUT combout1 dataf0 datae0 dataa datab datac datad 6-Input LUT combout0 dataf0 datae0 dataa datab datac datad 6-Input LUT combout0 6-Input LUT combout1 combout1 datad datae1 dataf1 combout0 combout1 combout0 combout1 datae1 dataf1 Note to Figure 2–7: (1) Combinations of functions with fewer inputs than those shown are also supported. For example, combinations of functions with the following number of inputs are supported: 4 and 3, 3 and 3, 3 and 2, 5 and 2. The normal mode provides complete backward compatibility with four-input LUT architectures. For the packing of 2 five-input functions into one ALM, the functions must have at least two common inputs. The common inputs are dataa and datab. The combination of a four-input function with a five-input function requires one common input (either dataa or datab). © February 2009 Altera Corporation Stratix III Device Handbook, Volume 1 2–10 Chapter 2: Logic Array Blocks and Adaptive Logic Modules in Stratix III Devices Adaptive Logic Modules In the case of implementing 2 six-input functions in one ALM, four inputs must be shared and the combinational function must be the same. For example, a 4 × 2 crossbar switch (two 4-to-1 multiplexers with common inputs and unique select lines) can be implemented in one ALM, as shown in Figure 2–8. The shared inputs are dataa, datab, datac, and datad, while the unique select lines are datae0 and dataf0 for function0, and datae1 and dataf1 for function1. This crossbar switch consumes four LUTs in a four-input LUT-based architecture. Figure 2–8. 4 × 2 Crossbar Switch Example 4 × 2 Crossbar Switch sel0[1..0] inputa inputb out0 inputc inputd Implementation in 1 ALM dataf0 datae0 dataa datab datac datad Six-Input LUT (Function0) combout0 Six-Input LUT (Function1) combout1 out1 sel1[1..0] datae1 dataf1 In a sparsely used device, functions that could be placed into one ALM may be implemented in separate ALMs by the Quartus II software in order to achieve the best possible performance. As a device begins to fill up, the Quartus II software automatically utilizes the full potential of the Stratix III ALM. The Quartus II Compiler automatically searches for functions of common inputs or completely independent functions to be placed into one ALM and to make efficient use of the device resources. In addition, you can manually control resource usage by setting location assignments. Any six-input function can be implemented utilizing inputs dataa, datab, datac, datad, and either datae0 and dataf0 or datae1 and dataf1. If datae0 and dataf0 are utilized, the output is driven to register0, and/or register0 is bypassed and the data drives out to the interconnect using the top set of output drivers (refer to Figure 2–9). If datae1 and dataf1 are utilized, the output drives to register1 and/or bypasses register1 and drives to the interconnect using the bottom set of output drivers. The Quartus II Compiler automatically selects the inputs to the LUT. ALMs in normal mode support register packing. Stratix III Device Handbook, Volume 1 © February 2009 Altera Corporation Chapter 2: Logic Array Blocks and Adaptive Logic Modules in Stratix III Devices Adaptive Logic Modules Figure 2–9. Input Function in Normal Mode 2–11 (Note 1) To general or local routing dataf0 datae0 dataa datab datac datad 6-Input LUT D Q To general or local routing reg0 datae1 dataf1 (2) D Q To general or local routing reg1 labclk These inputs are available for register packing. Notes to Figure 2–9: (1) If datae1 and dataf1 are used as inputs to the six-input function, then datae0 and dataf0 are available for register packing. (2) The dataf1 input is available for register packing only if the six-input function is un-registered. Extended LUT Mode Use the extended LUT mode to implement a specific set of seven-input functions. The set must be a 2-to-1 multiplexer fed by two arbitrary five-input functions sharing four inputs. Figure 2–10 shows the template of supported seven-input functions utilizing extended LUT mode. In this mode, if the seven-input function is unregistered, the unused eighth input is available for register packing. Functions that fit into the template shown in Figure 2–10 occur naturally in designs. These functions often appear in designs as "if-else" statements in Verilog HDL or VHDL code. Figure 2–10. Template for Supported Seven-Input Functions in Extended LUT Mode datae0 datac dataa datab datad dataf0 5-Input LUT To general or local routing combout0 D 5-Input LUT Q To general or local routing reg0 datae1 dataf1 (1) This input is available for register packing. Note to Figure 2–10: (1) If the seven-input function is unregistered, the unused eighth input is available for register packing. The second register, reg1, is not available. Arithmetic Mode The arithmetic mode is ideal for implementing adders, counters, accumulators, wide parity functions, and comparators. The ALM in arithmetic mode uses two sets of 2 four-input LUTs along with two dedicated full adders. The dedicated adders allow the LUTs to be available to perform pre-adder logic; therefore, each adder can add the output of 2 four-input functions. © February 2009 Altera Corporation Stratix III Device Handbook, Volume 1 2–12 Chapter 2: Logic Array Blocks and Adaptive Logic Modules in Stratix III Devices Adaptive Logic Modules The four LUTs share the dataa and datab inputs. As shown in Figure 2–11, the carry-in signal feeds to adder0, and the carry-out from adder0 feeds to carry-in of adder1. The carry-out from adder1 drives to adder0 of the next ALM in the LAB. ALMs in arithmetic mode can drive out registered and/or unregistered versions of the adder outputs. Figure 2–11. ALM in Arithmetic Mode carry_in datae0 adder0 4-Input LUT To general or local routing D dataf0 datac datab dataa To general or local routing reg0 4-Input LUT adder1 4-Input LUT datad datae1 Q To general or local routing D 4-Input LUT Q To general or local routing reg1 dataf1 carry_out While operating in arithmetic mode, the ALM can support simultaneous use of the adder's carry output along with combinational logic outputs. In this operation, the adder output is ignored. This usage of the adder with the combinational logic output provides resource savings of up to 50% for functions that can use this ability. An example of such functionality is a conditional operation, such as the one shown in Figure 2–12. Stratix III Device Handbook, Volume 1 © February 2009 Altera Corporation Chapter 2: Logic Array Blocks and Adaptive Logic Modules in Stratix III Devices Adaptive Logic Modules 2–13 Figure 2–12. Conditional Operation Example Adder output is not used. ALM 1 X[0] Comb & Adder Logic Y[0] X[0] D R[0] To general or local routing R[1] To general or local routing R[2] To general or local routing Q reg0 syncdata syncload X[1] Comb & Adder Logic Y[1] X[1] D Q reg1 syncload Carry Chain ALM 2 X[2] Y[2] Comb & Adder Logic X[2] D Q reg0 syncload Comb & Adder Logic carry_out To local routing & then to LAB-wide syncload The equation for this example is: R = (X < Y) ? Y : X To implement this function, the adder is used to subtract Y from X. If X is less than Y, the carry_out signal is 1. The carry_out signal is fed to an adder where it drives out to the LAB local interconnect. It then feeds to the LAB-wide syncload signal. When asserted, syncload selects the syncdata input. In this case, the data Y drives the syncdata inputs to the registers. If X is greater than or equal to Y, the syncload signal is de-asserted and X drives the data port of the registers. The arithmetic mode also offers clock enable, counter enable, synchronous up/down control, add/subtract control, synchronous clear, and synchronous load. The LAB local interconnect data inputs generate the clock enable, counter enable, synchronous up/down, and add/subtract control signals. These control signals are good candidates for the inputs that are shared between the four LUTs in the ALM. The synchronous clear and synchronous load options are LAB-wide signals that affect all registers in the LAB. These signals can also be individually disabled or enabled per register. The Quartus II software automatically places any registers that are not used by the counter into other LABs. © February 2009 Altera Corporation Stratix III Device Handbook, Volume 1 2–14 Chapter 2: Logic Array Blocks and Adaptive Logic Modules in Stratix III Devices Adaptive Logic Modules Carry Chain The carry chain provides a fast carry function between the dedicated adders in arithmetic or shared arithmetic mode. The two-bit carry select feature in Stratix III devices halves the propagation delay of carry chains within the ALM. Carry chains can begin in either the first ALM or the sixth ALM in an LAB. The final carry-out signal is routed to a ALM, where it is fed to local, row, or column interconnects. The Quartus II Compiler automatically creates carry chain logic during design processing, or you can create it manually during design entry. Parameterized functions such as LPM functions automatically take advantage of carry chains for the appropriate functions. The Quartus II Compiler creates carry chains longer than 20 (10 ALMs in arithmetic or shared arithmetic mode) by linking LABs together automatically. For enhanced fitting, a long carry chain runs vertically allowing fast horizontal connections to TriMatrix™ memory and DSP blocks. A carry chain can continue as far as a full column. To avoid routing congestion in one small area of the device when a high fan-in arithmetic function is implemented, the LAB can support carry chains that only utilize either the top half or the bottom half of the LAB before connecting to the next LAB. This leaves the other half of the ALMs in the LAB available for implementing narrower fan-in functions in normal mode. Carry chains that use the top five ALMs in the first LAB carry into the top half of the ALMs in the next LAB within the column. Carry chains that use the bottom five ALMs in the first LAB carry into the bottom half of the ALMs in the next LAB within the column. In every alternate LAB column, the top half can be bypassed; in the other MLAB columns, the bottom half can be bypassed. 1 For more information on carry chain interconnect, refer to “ALM Interconnects” on page 2–20. Shared Arithmetic Mode In shared arithmetic mode, the ALM can implement a three-input add within an ALM. In this mode, the ALM is configured with 4 four-input LUTs. Each LUT either computes the sum of three inputs or the carry of three inputs. The output of the carry computation is fed to the next adder (either to adder1 in the same ALM or to adder0 of the next ALM in the LAB) via a dedicated connection called the shared arithmetic chain. This shared arithmetic chain can significantly improve the performance of an adder tree by reducing the number of summation stages required to implement an adder tree. Figure 2–13 shows the ALM using this feature. Stratix III Device Handbook, Volume 1 © February 2009 Altera Corporation Chapter 2: Logic Array Blocks and Adaptive Logic Modules in Stratix III Devices Adaptive Logic Modules 2–15 Figure 2–13. ALM in Shared Arithmetic Mode shared_arith_in carry_in labclk 4-Input LUT To general or local routing D datae0 datac datab dataa datad datae1 Q To general or local routing reg0 4-Input LUT 4-Input LUT To general or local routing D 4-Input LUT Q To general or local routing reg1 carry_out shared_arith_out You can find adder trees in many different applications. For example, the summation of the partial products in a logic-based multiplier can be implemented in a tree structure. Another example is a correlator function that can use a large adder tree to sum filtered data samples in a given time frame to recover or to de-spread data that was transmitted utilizing spread spectrum technology. An example of a three-bit add operation utilizing the shared arithmetic mode is shown in Figure 2–14. The partial sum (S[3..0]) and the partial carry (C[3..0]) is obtained using the LUTs, while the result (R[3..0]) is computed using the dedicated adders. © February 2009 Altera Corporation Stratix III Device Handbook, Volume 1 2–16 Chapter 2: Logic Array Blocks and Adaptive Logic Modules in Stratix III Devices Adaptive Logic Modules Figure 2–14. Example of a 3-Bit Add Utilizing Shared Arithmetic Mode shared_arith_in = '0' carry_in = '0' ALM Implementation ALM 1 3-Input LUT 3-Bit Add Example S0 R0 X3 X2 X1 X0 1st stage add is implemented Y3 Y2 Y1 Y0 in LUTs. + in s. 3-Input LUT C0 X1 Y1 Z1 3-Input LUT S1 3-Input LUT C1 3-Input LUT S2 Z3 Z2 Z1 Z0 S3 S2 S1 S0 2nd stage add is implemented X0 Y0 Z0 + C3 C2 C1 C0 R1 R4 R3 R2 R1 R0 Binary Add Decimal Equivalents 1110 0100 +1101 0111 +1100 14 4 + 13 7 + 2 x 12 ALM 2 R2 X2 Y2 Z2 3-Input LUT C2 X3 Y3 Z3 3-Input LUT S3 R3 31 11111 3-Input LUT C3 R4 Shared Arithmetic Chain The shared arithmetic chain available in enhanced arithmetic mode allows the ALM to implement a three-input add. This significantly reduces the resources necessary to implement large adder trees or correlator functions. The shared arithmetic chains can begin in either the first or sixth ALM in an LAB. The Quartus II Compiler creates shared arithmetic chains longer than 20 (10 ALMs in arithmetic or shared arithmetic mode) by linking LABs together automatically. For enhanced fitting, a long shared arithmetic chain runs vertically allowing fast horizontal connections to TriMatrix memory and DSP blocks. A shared arithmetic chain can continue as far as a full column. Similar to the carry chains, the top and bottom half of shared arithmetic chains in alternate LAB columns can be bypassed. This capability allows the shared arithmetic chain to cascade through half of the ALMs in a LAB while leaving the other half available for narrower fan-in functionality. Every other LAB column is top-half bypassable, while the other LAB columns are bottom-half bypassable. Stratix III Device Handbook, Volume 1 © February 2009 Altera Corporation Chapter 2: Logic Array Blocks and Adaptive Logic Modules in Stratix III Devices Adaptive Logic Modules 1 2–17 Refer to “ALM Interconnects” on page 2–20 for more information on shared arithmetic chain interconnect. LUT-Register Mode LUT-Register mode allows third register capability within an ALM. Two internal feedback loops allow combinational ALUT1 to implement the master latch and combinational ALUT0 to implement the slave latch needed for the third register. The LUT register shares its clock, clock enable, and asynchronous clear sources with the top dedicated register. Figure 2–15 shows the register constructed using two combinational blocks within the ALM. Figure 2–16 shows the ALM in LUT-Register mode. Figure 2–15. LUT Register from Two Combinational Blocks sumout clk aclr LUT regout 4-input LUT combout sumout datain(datac) 5-input LUT combout sclr © February 2009 Altera Corporation Stratix III Device Handbook, Volume 1 2–18 Chapter 2: Logic Array Blocks and Adaptive Logic Modules in Stratix III Devices Adaptive Logic Modules Figure 2–16. ALM in LUT-Register Mode with 3-Register Capability clk [2:0] aclr [1:0] reg_chain_in datain DC1 lelocal 0 aclr aclr sclr regout datain latchout sdata leout 0 a regout leout 0 b E0 F1 lelocal 1 aclr datain E1 sdata F0 leout 1 a regout leout 1 b reg_chain_out Register Chain In addition to the general routing outputs, the ALMs in an LAB have register chain outputs. The register chain routing allows registers in the same LAB to be cascaded together. The register chain interconnect allows a LAB to use LUTs for a single combinational function and the registers to be used for an unrelated shift register implementation. These resources speed up connections between ALMs while saving local interconnect resources (refer to Figure 2–17). The Quartus II Compiler automatically takes advantage of these resources to improve utilization and performance. Stratix III Device Handbook, Volume 1 © February 2009 Altera Corporation Chapter 2: Logic Array Blocks and Adaptive Logic Modules in Stratix III Devices Adaptive Logic Modules Figure 2–17. Register Chain within an LAB 2–19 (Note 1) From previous ALM within the LAB reg_chain_in labclk To general or local routing adder0 D Q To general or local routing reg0 Combinational Logic adder1 D Q To general or local routing reg1 To general or local routing To general or local routing adder0 D Q To general or local routing reg0 Combinational Logic adder1 D Q To general or local routing reg1 To general or local routing reg_chain_out To next ALM within the LAB Note to Figure 2–17: (1) You can use the combinational or adder logic to implement an unrelated, un-registered function. 1 © February 2009 For more information on register chain interconnect, refer to “ALM Interconnects” on page 2–20. Altera Corporation Stratix III Device Handbook, Volume 1 2–20 Chapter 2: Logic Array Blocks and Adaptive Logic Modules in Stratix III Devices Adaptive Logic Modules ALM Interconnects There are three dedicated paths between ALMs: Register Cascade, Carry-chain, and Shared Arithmetic chain. Stratix III devices include an enhanced interconnect structure in LABs for routing shared arithmetic chains and carry chains for efficient arithmetic functions. The register chain connection allows the register output of one ALM to connect directly to the register input of the next ALM in the LAB for fast shift registers. These ALM-to-ALM connections bypass the local interconnect. The Quartus II Compiler automatically takes advantage of these resources to improve utilization and performance.Figure 2–18 shows the shared arithmetic chain, carry chain, and register chain interconnects. Figure 2–18. Shared Arithmetic Chain, Carry Chain, and Register Chain Interconnects Local interconnect routing among ALMs in the LAB Carry chain & shared arithmetic chain routing to adjacent ALM ALM 1 Register chain routing to adjacent ALM's register input ALM 2 Local interconnect ALM 3 ALM 4 ALM 5 ALM 6 ALM 7 ALM 8 ALM 9 ALM 10 f For information about routing between LABs, refer to the MultiTrack Interconnect in Stratix III Devices chapter in volume 1 of the Stratix III Device Handbook. Clear and Preset Logic Control LAB-wide signals control the logic for the register's clear signal. The ALM directly supports an asynchronous clear function. You can achieve the register preset through the Quartus II software’s NOT-gate push-back logic option. Each LAB supports up to two clears. Stratix III devices provide a device-wide reset pin (DEV_CLRn) that resets all registers in the device. An option set before compilation in the Quartus II software controls this pin. This device-wide reset overrides all other control signals. Stratix III Device Handbook, Volume 1 © February 2009 Altera Corporation Chapter 2: Logic Array Blocks and Adaptive Logic Modules in Stratix III Devices Conclusion 2–21 LAB Power Management Techniques The following techniques are used to manage static and dynamic power consumption within the LAB: ■ Stratix III low-voltage devices (L ordering code suffix) offer selectable core voltage to reduce both DC and AC power. ■ To save AC power, Quartus II forces all adder inputs low when ALM adders are not in use. ■ Stratix III LABs operate in high-performance mode or low-power mode. The Quartus II software automatically chooses the appropriate mode for an LAB based on the design to optimize speed vs. leakage trade-offs. ■ Clocks represent a significant portion of dynamic power consumption due to their high switching activity and long paths. The LAB clock that distributes a clock signal to registers within a LAB is a significant contributor to overall clock power consumption. Each LAB's clock and clock enable signal are linked. For example, a combinational ALUT or register in a particular LAB using the labclk1 signal also uses the labclkena1 signal. To disable LAB-wide clock power consumption without disabling the entire clock tree, use the LAB-wide clock enable to gate the LAB-wide clock. The Quartus II software automatically promotes register-level clock enable signals to the LAB-level. All registers within an LAB that share a common clock and clock enable are controlled by a shared gated clock. To take advantage of these clock enables, use a clock enable construct in your HDL code for the registered logic. f Refer to the Power Optimization chapter in section 3 of the Quartus II Handbook for details on implementation. f For detailed information about Stratix III programmable power capabilities, refer to the Programmable Power and Temperature Sensing Diode in Stratix III Devices chapter in volume 1 of the Stratix III Device Handbook. Conclusion Logic array block and adaptive logic modules are the basic building blocks of the Stratix III device. You can use these to configure logic functions, arithmetic functions, and register functions. The ALM provides advanced features with efficient logic utilization and is completely backward-compatible. Chapter Revision History Table 2–1shows the revision history for this document. Table 2–1. Chapter Revision History(Sheet 1 of 2) Date and Revision February 2009, version 1.5 October 2008, version 1.4 © February 2009 Changes Made Removed “Referenced Documents” section. ■ Updated “LAB Control Signals”, and “Carry Chain” Sections. ■ Updated New Document Format. Altera Corporation Summary of Changes — — Stratix III Device Handbook, Volume 1 2–22 Chapter 2: Logic Array Blocks and Adaptive Logic Modules in Stratix III Devices Chapter Revision History Table 2–1. Chapter Revision History(Sheet 2 of 2) Date and Revision May 2008, version 1.3 Changes Made Updated Figure 2–2 and Figure 2–6. October 2007, version 1.2 ■ Added section “Referenced Documents”. ■ Added live links for references. May 2007, version 1.1 ■ Minor formatting changes. ■ Updated Figure 2–6 to include a missing connection. November 2006, version 1.0 Summary of Changes — Minor changes. Minor changes. Initial Release. Stratix III Device Handbook, Volume 1 — © February 2009 Altera Corporation 3. MultiTrack Interconnect in Stratix III Devices SIII51003-1.2 Introduction Stratix ® III devices contain a two-dimensional row- and column-based architecture to implement custom logic. A series of column and row interconnects of varying length and speed provides signal interconnects between logic array blocks (LABs), memory block structures, digital signal processing (DSP) blocks, and input/output elements (IOE). These blocks communicate with themselves and to one another through a fabric of routing wires. This chapter provides details on the Stratix III core routing structure. It also describes how Stratix III block types interface to this fabric. In the Stratix III architecture, connections between adaptive logic modules (ALMs), TriMatrix memory, DSP blocks, and device I/O pins are provided by the MultiTrack interconnect structure with DirectDrive technology. The MultiTrack interconnect consists of continuous, performance-optimized routing lines of different lengths and speeds used for inter- and intra-design block connectivity. The Quartus® II Compiler automatically routes critical design paths on faster interconnects to improve design performance. DirectDrive technology is a deterministic routing technology that ensures identical routing resource usage for any function regardless of placement in the device. The MultiTrack interconnect and DirectDrive technology simplify the integration stage of block-based designing by eliminating the re-optimization cycles that typically follow design changes and additions. The MultiTrack interconnect consists of row and column interconnects that span fixed distances. A routing structure with fixed length resources for all devices allows predictable and repeatable performance when migrating through different device densities. Row Interconnects Dedicated row interconnects route signals to and from LABs, DSP blocks, and TriMatrix memory blocks in the same row. These row interconnect resources include: ■ Direct link interconnects between LABs and adjacent blocks ■ R4 interconnects traversing four blocks to the right or left ■ R20 row interconnects for high-speed access across the length of the device The direct link interconnect allows a LAB, DSP block, or TriMatrix memory block to drive into the local interconnect of its left and right neighbors. This capability provides fast communication between adjacent LABs and blocks without using row interconnect resources. The direct link interconnect is the fastest way to communicate between two adjacent blocks. The R4 interconnects span a combination of four LABs, memory logic array blocks (MLAB), DSP blocks, M9K blocks, and M144K blocks. Use these resources for fast row connections in a four-LAB region. Figure 3–1 shows R4 interconnect connections from a LAB. R4 interconnects can drive and be driven by DSP blocks and RAM blocks and row IOEs. For LAB interfacing, a primary LAB or LAB neighbor can drive a given R4 © October 2008 Altera Corporation Stratix III Device Handbook, Volume 1 3–2 Chapter 3: MultiTrack Interconnect in Stratix III Devices Column Interconnects interconnect. For R4 interconnects that drive to the right, the primary LAB and right neighbor can drive to the interconnect. For R4 interconnects that drive to the left, the primary LAB and its left neighbor can drive the interconnect. R4 interconnects can drive other R4 interconnects to extend the range of LABs they drive. R4 interconnects can also drive C4 and C12 (column interconnects) for connections from one row to another. Additionally, R4 interconnects can drive R20 interconnects. Figure 3–1. R4 Interconnect Connections (Note 1), (2) Adjacent LAB can Drive onto Another LAB's R4 Interconnect C4 and C12 Column Interconnects (1) R4 Interconnect Driving Right R4 Interconnect Driving Left LAB Neighbor MLAB LAB Neighbor Notes to Figure 3–1 (1) C4 and C12 interconnects can drive R4 interconnects. (2) This pattern is repeated for every LAB in the LAB row. R20 row interconnects span 20 LABs and provide the fastest resource for row connections between distant LABs, TriMatrix memory, DSP blocks, and row IOEs. R20 row interconnects drive LAB local interconnects via R4 and C4 interconnects. R20 interconnects can drive R20, R4, C12, and C4 interconnects. Column Interconnects The column interconnect operates similarly to the row interconnect. It vertically routes signals to and from LABs, TriMatrix memory, DSP blocks, and IOEs. Each column of LABs is served by a dedicated column interconnect. These column interconnect resources include: ■ Shared arithmetic chain interconnects in a LAB and from LAB to LAB ■ Carry chain interconnects in a LAB and from LAB to LAB ■ Register chain interconnects in a LAB ■ C4 interconnects traversing a distance of four blocks in the same device column ■ C12 column interconnects for high-speed vertical routing through the device Stratix III Device Handbook, Volume 1 © October 2008 Altera Corporation Chapter 3: MultiTrack Interconnect in Stratix III Devices Column Interconnects 3–3 Stratix III devices include an enhanced interconnect structure in LABs for routing-shared arithmetic chains and carry chains for efficient arithmetic functions. The register chain connection allows the register output of one ALM to connect directly to the register input of the next ALM in the LAB for fast shift registers. These ALM-to-ALM connections bypass the local interconnect. The Quartus II Compiler automatically takes advantage of these resources to improve utilization and performance. Figure 3–2 shows the shared arithmetic chain, carry chain, and register chain interconnects. Figure 3–2. Shared Arithmetic Chain, Carry Chain, and Register Chain Interconnects Local Interconnect Routing Among ALMs in the LAB Carry Chain & Shared Arithmetic Chain Routing to Adjacent ALM ALM 1 Register Chain Routing to Adjacent ALM's Register Input ALM 2 Local Interconnect ALM 3 ALM 4 ALM 5 ALM 6 ALM 7 ALM 8 ALM 9 ALM10 The C4 interconnects span four adjacent interfaces in the same device column. C4 interconnects also pass by M144K and DSP blocks. A single M144K block utilizes eight adjacent interfaces in the same column. A DSP block utilizes four adjacent interfaces in the same column. Figure 3–3 shows the C4 interconnect connections from a LAB in a column. The C4 interconnects can drive and be driven by all types of architecture blocks, including DSP blocks, TriMatrix memory blocks, and column and row IOEs. For LAB interconnection, a primary LAB or its LAB neighbor can drive a given C4 interconnect. C4 interconnects can drive each other to extend their range as well as drive row interconnects for column-to-column connections. © October 2008 Altera Corporation Stratix III Device Handbook, Volume 1 3–4 Chapter 3: MultiTrack Interconnect in Stratix III Devices Column Interconnects Figure 3–3. C4 Interconnect Connections (Note 1) C4 Interconnects Drives Local and R4 Interconnects up to Four Rows C4 Interconnects Driving Up LAB R4 Interconnects Adjacent LAB can drive onto neighboring LAB's C4 interconnect Local Interconnect C4 Interconnects Driving Down Note to Figure 3–3: (1) Each C4 interconnect can drive either up or down four rows. Stratix III Device Handbook, Volume 1 © October 2008 Altera Corporation Chapter 3: MultiTrack Interconnect in Stratix III Devices Column Interconnects 3–5 C12 column interconnects span a length of 12 LABs and provide the fastest resource for column connections between distant LABs, TriMatrix memory blocks, DSP blocks, and IOEs. C12 interconnects drive LAB local interconnects via C4 and R4 interconnects and do not drive LAB local interconnects directly. All embedded blocks communicate with the logic array through interconnects similar to LAB-to-LAB interfaces. Each block (for example, TriMatrix memory blocks and DSP blocks) connects to row and column interconnects and has local interconnect regions driven by row and column interconnects. These blocks also have direct link interconnects for fast connections to and from a neighboring LAB. Table 3–1 shows the Stratix III device's routing scheme. Table 3–1. Stratix III Device Routing Scheme C12 Inter-connect — — — — — — v — — — — — — Carry chain — — — — — — — — — v — — — — — — Register chain — — — — — — — — — v — — — — — — Local interconnect — — — — — — — — — v v v v v v v Direct link interconnect — — — v — — — — — — — — — — — — R4 interconnect — — — v — v v v v — — — — — — — R20 interconnect — — — v — v v v v — — — — — — — C4 interconnect — — — v — v — v — — — — — — — — C12 interconnect — — — v — v v v v — — — — — — — DSP Blocks Carry Chain Row IOE C4 Inter-connect — Column IOE R20 Inter-connect — MLAB RAM Block M9K RAM Block M144K Block R4 Inter-connect — Source ALM Direct Link Inter-connect Shared arithmetic chain Shared Arithmetic Chain Local Inter-connect Register Chain Destination ALM v v v v v v — v — — — — — — — — MLAB RAM block — — — v v v — v — — — — — — — — M9K RAM block — — — — v v — v — — — — — — — — M144K block — — — — v v — v — — — — — — — — DSP blocks — — — — v v — v — — — — — — — — Column IOE — — — — — — — v v — — — — — — — Row IOE — — — — v v v v — — — — — — — — Notes to Table 3–1: (1) Except column IOE local interconnects. (2) Row IOE local interconnects. (3) Column IOE local interconnects. © October 2008 Altera Corporation Stratix III Device Handbook, Volume 1 3–6 Chapter 3: MultiTrack Interconnect in Stratix III Devices Memory Block Interface The R4 and C4 interconnects provide superior and flexible routing capabilities. Stratix III has a three-sided routing architecture which allows the interconnect wires from each LAB to reach the adjacent LABs to its right and left. A given LAB can drive 32 other LABs using one R4 or C4 interconnect, in one hop. This routing scheme improves efficiency and flexibility by placing all the critical LABs within one hop of the routing interconnects. Table 3–2 shows how many LABs are reachable within one, two, or three hops using the R4 and C4 interconnects. Table 3–2. Number of LABs reachable using C4 and R4 interconnects Hops Number of LABs 1 34 2 96 3 160 Memory Block Interface TriMatrix memory consists of three types of RAM blocks: MLAB, M9K, and M144K. This section provides a brief overview of how the different memory blocks interface to the routing structure. The RAM blocks in Stratix III devices have local interconnects to allow ALMs and interconnects to drive into RAM blocks. The MLAB RAM block local interconnect is driven by the R4, C4, and direct link interconnects from adjacent LABs. The MLAB RAM blocks can communicate with LABs on either the left or right side through these row interconnects or with LAB columns on the left or right side with the column interconnects. Each MLAB RAM block has up to 20 direct link input connections from the left adjacent LAB and another 20 from the right adjacent LAB. MLAB RAM outputs can also connect to left and right LABs through a direct link interconnect. The MLAB RAM block has equal opportunity for access and performance to and from LABs on either its left or right side. Figure 3–4 shows the MLAB RAM block to LAB row interface. Stratix III Device Handbook, Volume 1 © October 2008 Altera Corporation Chapter 3: MultiTrack Interconnect in Stratix III Devices Memory Block Interface 3–7 Figure 3–4. MLAB RAM Block LAB Row Interface C4 Interconnects Direct link interconnect to adjacent LAB R4 Interconnects 20 Direct link interconnect to adjacent LAB dataout Direct link interconnect from adjacent LAB 20 Direct link interconnect from adjacent LAB MLAB clocks datain MLAB Local Interconnect Region control signals address LAB Row Clocks The M9K RAM block local interconnect is driven by the R4, C4, and direct link interconnects from adjacent LABs. The M9K RAM blocks can communicate with LABs on either the left or right side through these row resources or with LAB columns on either the right or left with the column resources. Up to 20 direct link input connections to the M9K RAM Block are possible from the left adjacent LABs and another 20 possible from the right adjacent LAB. M9K RAM block outputs can also connect to left and right LABs through direct link interconnect. Figure 3–5 shows the M9K RAM block to logic array interface. © October 2008 Altera Corporation Stratix III Device Handbook, Volume 1 3–8 Chapter 3: MultiTrack Interconnect in Stratix III Devices Memory Block Interface Figure 3–5. M9K RAM Block LAB Row Interface C4 Interconnects Direct link interconnect to adjacent LAB R4 Interconnects Direct link interconnect to adjacent LAB 20 36 dataout M9K Direct link interconnect from adjacent LAB 20 20 datain control signals Direct link interconnect from adjacent LAB byte enable clocks address M9K Local Interconnect LAB Row Clocks The M144K blocks use eight interfaces in the same device column. The M144K block local interconnects are driven by R4, C4, and direct link interconnects from adjacent LABs on either the right or left side of the MRAM block. Up to 20 direct link input connections to the M144K block are possible from the left adjacent LABs and another 20 possible from the right adjacent LAB. M144K block outputs can also connect to the LABs on the block’s left and right sides through direct link interconnect. Figure 3–6 shows the interface between the M144K RAM block and the logic array. Stratix III Device Handbook, Volume 1 © October 2008 Altera Corporation Chapter 3: MultiTrack Interconnect in Stratix III Devices DSP Block Interface 3–9 Figure 3–6. M144K Row Unit Interface to Interconnect R4 Interconnects C4 Interconnects C4 Interconnects M144K Block LAB LAB Up to 5 dataout_a[ ] Up to 10 20 20 Up to 14 Direct Link Interconnects Row Interface Block M144K Block to LAB Row Interface Block Interconnect Region datain_a[ ] addressa[ ] addressstall rden/wren byteena[ ] clocken_a clock_a aclr Direct Link Interconnects Up to 16 Row Interface Block M144K Block to LAB Row Interface Block Interconnect Region DSP Block Interface Stratix III device DSP block input registers can generate a shift register that cascades down in the same DSP block column. Dedicated connections between DSP blocks provide fast connections between the shift register inputs to cascade the shift register chains. You can cascade registers within multiple DSP blocks for 9-bit or 18-bit finite impulse response (FIR) filters larger than four taps, with additional adder stages implemented in ALMs. If the DSP block is configured as 36-bit blocks, the adder, subtractor, or accumulator stages are implemented in ALMs. Each DSP block can route the shift register chain out of the block to cascade multiple columns of DSP blocks. The DSP block is divided into four block units that interface with four LAB rows on the left and right. You can consider each block unit as two 18-bit multipliers followed by an adder with 72 inputs and 36 outputs. A local interconnect region is associated with each DSP block. Like a LAB, this interconnect region can be fed with 20 direct link interconnects from the LAB to the left or right of the DSP block in the same row. R4 and C4 routing resources can access the DSP block's local interconnect region. These outputs work similarly to LAB outputs. Eighteen outputs from the DSP block can drive to the left LAB through direct link interconnects and eighteen can drive to the right LAB though direct link interconnects. All 36 outputs can drive to R4 and C4 routing interconnects. Outputs can drive right- or left-column routing. Figure 3–7 and Figure 3–8 show the DSP block interfaces to LAB rows. © October 2008 Altera Corporation Stratix III Device Handbook, Volume 1 3–10 Chapter 3: MultiTrack Interconnect in Stratix III Devices DSP Block Interface Figure 3–7. High-Level View, DSP Block Interface to Interconnect DSP Block R4, C4 & Direct Link Interconnects OA[17..0] OB[17..0] R4, C4 & Direct Link Interconnects A1[35..0] B1[35..0] OC[17..0] OD[17..0] A2[35..0] B2[35..0] OE[17..0] OF[17..0] A3[35..0] B3[35..0] OG[17..0] OH[17..0] A4[35..0] B4[35..0] Stratix III Device Handbook, Volume 1 © October 2008 Altera Corporation Chapter 3: MultiTrack Interconnect in Stratix III Devices I/O Block Connections to Interconnect 3–11 Figure 3–8. Detailed View, DSP Block Interface to Interconnect Direct Link Interconnect from Adjacent LAB C4 Interconnects R4 Interconnects Direct Link Outputs to Adjacent LABs Direct Link Interconnect from Adjacent LAB 36 DSP Block Row Structure 36 LAB LAB 18 20 20 12 Control 72 A[35..0] B[35..0] OA[17..0] OB[17..0] 36 Row Interface Block DSP Block to LAB Row Interface Block Interconnect Region 72 Inputs per Row 36 Outputs per Row I/O Block Connections to Interconnect The IOEs are located in I/O blocks around the periphery of the Stratix III device. There are up to four IOEs per row I/O block and four IOEs per column I/O block. The row I/O blocks drive row, column, or direct link interconnects. The column I/O blocks drive column interconnects. Figure 3–9 shows how a row I/O block connects to the logic array. Figure 3–10 shows how a column I/O block connects to the logic array. © October 2008 Altera Corporation Stratix III Device Handbook, Volume 1 3–12 Chapter 3: MultiTrack Interconnect in Stratix III Devices I/O Block Connections to Interconnect Figure 3–9. Row I/O Block Connection to Interconnect R20 Interconnects R4 Interconnects C4 Interconnects I/O Block Local Interconnect 64 Data & Control Signals from Logic Array 64 LAB Horizontal I/O Block io_dataina[3..0] io_datainb[3..0] Direct Link Interconnect to Adjacent LAB LAB Local Interconnect Stratix III Device Handbook, Volume 1 Direct Link Interconnect from Adjacent LAB Horizontal I/O Block Contains up to Four IOEs © October 2008 Altera Corporation Chapter 3: MultiTrack Interconnect in Stratix III Devices Conclusion 3–13 Figure 3–10. Column I/O Block Connection to Interconnect 52 Data & Control Signals from Logic Array Vertical I/O Block Contains up to Four IOEs Vertical I/O Block 52 IO_dataina[3:0] IO_datainb[3:0] io_clk[7..0] I/O Block Local Interconnect R4 Interconnects LAB LAB Local Interconnects MLAB LAB C12 Interconnects C4 Interconnects Conclusion Stratix III devices consist of an array of logic blocks such as LABs, TriMatrix memory, DSP blocks, and IOEs. These blocks communicate with themselves and one another through the MultiTrack interconnect structures. The Quartus II compiler automatically routes critical design paths on faster interconnects to improve design performance and optimize the device resources. © October 2008 Altera Corporation Stratix III Device Handbook, Volume 1 3–14 Chapter 3: MultiTrack Interconnect in Stratix III Devices Chapter Revision History Chapter Revision History Table 3–3 shows the revision history for this document. Table 3–3. Chapter Revision History Date and Revision October 2008, version 1.2 October 2007, version 1.1 November 2006, version 1.0 Changes Made Summary of Changes Updated New Document Format. ■ Minor formatting changes. ■ Added section “Chapter Revision History”. ■ Added live links for references. — Minor formatting changes. Initial Release. Stratix III Device Handbook, Volume 1 — © October 2008 Altera Corporation 4. TriMatrix Embedded Memory Blocks in Stratix III Devices SIII51004-1.8 Introduction TriMatrix embedded memory blocks provide three different sizes of embedded SRAM to efficiently address the needs of Stratix® III FPGA designs. TriMatrix memory includes 640- (in ROM mode only) or 320-bit memory logic array blocks (MLABs), 9-Kbit M9K blocks, and 144-Kbit M144K blocks. The MLABs have been optimized to implement filter delay lines, small first-in first-out (FIFO) buffers, and shift registers. You can use the M9K blocks for general purpose memory applications, and the M144K blocks are ideal for processor code storage, packet buffering, and video frame buffering. You can independently configure each embedded memory block to be a single- or dual-port RAM, FIFO, ROM, or shift register via the Quartus® II MegaWizardTM Plug-In Manager. You can stitch together multiple blocks of the same type to produce larger memories with minimal timing penalty. TriMatrix memory provides up to 20,491 Kbits of embedded SRAM at up to 600 MHz operation. This chapter describes TriMatrix memory blocks, modes, features, and design considerations. Overview Table 4–1 summarizes the features supported by the three sizes of TriMatrix memory. Table 4–1. Summary of TriMatrix Memory Features (Part 1 of 2) Feature MLABs M9K Blocks M144K Blocks 600 MHz 580 MHz 580 MHz 640 (in ROM mode) or 320 (in other modes) 9,216 147,456 Configurations (depth × width) 16 × 8 8K×1 16 K × 8 16 × 9 4K×2 16 K × 9 (1) 16 × 10 2K×4 8 K × 16 16 × 16 1K×8 8 K × 18 16 × 18 1K×9 4 K × 32 16 × 20 512 × 16 4 K × 36 512 × 18 2 K × 64 256 × 32 2 K × 72 Maximum performance Total memory bits (including parity bits) 256 × 36 v Parity bits © May 2009 Altera Corporation v v Stratix III Device Handbook, Volume 1 4–2 Chapter 4: TriMatrix Embedded Memory Blocks in Stratix III Devices Overview Table 4–1. Summary of TriMatrix Memory Features (Part 2 of 2) Feature MLABs M9K Blocks M144K Blocks Byte-enable v v v Packed mode — v v Address clock enable v v v Single-port memory v v v Simple dual-port memory v v v True dual-port memory — v v Embedded shift register v v v ROM v v v FIFO buffer v v v Simple dual-port mixed width support — v v True dual-port mixed width support — v v Memory initialization file (.mif) v v v Mixed-clock mode v v v Power-up condition Outputs cleared if registered, otherwise reads memory contents Outputs cleared Outputs cleared Output registers Output registers Output registers — v v Write/Read operation triggering Write: Falling clock edges Write and Read: Rising clock edges Write and Read: Rising clock edges Same-port read-during-write Outputs set to don’t care Outputs set to old or new data Outputs set to old or new data Mixed-port read-during-write Outputs set to old data or don’t care Outputs set to old data or don’t care Outputs set to old data or don’t care Soft IP support via Quartus II software Soft IP support via Quartus II software Built-in support in ×64 wide SDP mode or soft IP support via Quartus II software Register clears Asynchronous clear on output latch ECC Support Read: Rising clock edges Notes to Table 4–1: (1) In ROM mode, MLABs support the (depth × width) configurations of 64×8, 64×9, 64×10, 32×16, 32×18, or 32× 20. (2) MLABs support byte-enable via emulation. Stratix III Device Handbook, Volume 1 © May 2009 Altera Corporation Chapter 4: TriMatrix Embedded Memory Blocks in Stratix III Devices Overview 4–3 Table 4–2 shows the capacity and distribution of the TriMatrix memory blocks for each Stratix III family member Table 4–2. TriMatrix Memory Capacity and Distribution in Stratix III Devices MLABs M9K Blocks M144K Blocks Total Dedicated RAM Bits (dedicated memory blocks only) Total RAM Bits (including MLABs) (1) EP3SL50 950 108 6 1,836 Kb 2,133 Kb EP3SL70 1,350 150 6 2,214 Kb 2,636 Kb EP3SL110 2,150 275 12 4,203 Kb 4,875 Kb EP3SL150 2,850 355 16 5,499 Kb 6,390 Kb EP3SL200 4,000 468 36 9,396 Kb 10,646 Kb EP3SL340 6,750 1,040 48 16,272 Kb 18,381 Kb EP3SE50 950 400 12 5,328 Kb 5,625 Kb EP3SE80 1,600 495 12 6,183 Kb 6,683 Kb EP3SE110 2,150 639 16 8,055 Kb 8,727 Kb EP3SE260 5,100 864 48 14,688 Kb 16,282 Kb Device Note to Table 4–2: (1) For total ROM Kbits, use this equation to calculate: Total ROM Kbits = Total Embedded RAM Kbits + [(number of MLAB blocks × 640)/1024] TriMatrix Memory Block Types While the M9K and M144K memory blocks are dedicated resources, the MLABs are dual-purpose blocks. They can be configured as regular logic array blocks (LABs) or as memory logic array blocks (MLABs). Ten adaptive logic modules (ALMs) make up one MLAB. Each ALM in an MLAB can be configured as a 16 × 2 block, resulting in a 16 × 20 simple dual-port SRAM block in a single MLAB. In ROM mode, each ALM in an MLAB can be configured as either a 64 × 1 or a 32 × 2 block, resulting in a 64 × 10 or 32 × 20 ROM block in a single MLAB. 1 All the ALMs share the same address bits. Therefore, you cannot combine multiple memories with different address bits and implement them in a single MLAB. 1 When you are using an MLAB as memory, you will not be able to use the unused ALMs in the MLAB even if you do not use the full capacity of an MLAB. Parity Bit Support All TriMatrix memory blocks have built-in parity-bit support. The ninth bit associated with each byte can store a parity bit or serve as an additional data bit. No parity function is actually performed on the ninth bit. Byte-Enable Support All TriMatrix memory blocks support byte-enables that mask the input data so that only specific bytes of data are written. The unwritten bytes retain the previous written value. The write enable (wren) signals, along with the byte-enable (byteena) signals, control the RAM blocks’ write operations. © May 2009 Altera Corporation Stratix III Device Handbook, Volume 1 4–4 Chapter 4: TriMatrix Embedded Memory Blocks in Stratix III Devices Overview 1 MLABs support byte-enable via emulation. There will be increased logic utilization when the byte-enables are emulated. The default value for the byte-enable signals is high (enabled), in which case writing is controlled only by the write enable signals. The byte-enable registers have no clear port. When using parity bits on the M9K and M144K blocks, the byte-enable controls all nine bits (eight bits of data plus one parity bit). When using parity bits on the MLAB, the byte-enable controls all 10 bits in the widest mode. Byte-enables operate in a one-hot fashion, with the LSB of the byteena signal corresponding to the least significant byte of the data bus. For example, if you are using a RAM block in ×18 mode, with byteena = 01, data[8..0] is enabled and data[17..9] is disabled. Similarly, if byteena = 11, both data[8..0] and data[17..9] are enabled. Byte-enables are active high. 1 You cannot use the byte-enable feature when using the ECC feature on M144K blocks. Figure 4–1 shows how the write enable (wren) and byte-enable (byteena) signals control the operations of the M9K and M144K. When a byte-enable bit is de-asserted during a write cycle, the corresponding data byte output can appear as either a “don’t care” value or the current data at that location. The output value for the masked byte is controllable via the Quartus II software. When a byte-enable bit is asserted during a write cycle, the corresponding data byte output also depends on the setting chosen in the Quartus II software. Figure 4–1. Stratix III Byte-Enable Functional Waveform for M9K and M144K inclock wren address data byteena contents at a0 a0 an a1 a2 a0 a1 ABCD XXXX 10 XX XXXX 01 11 FFFF XX ABFF FFFF contents at a1 a2 FFCD FFFF contents at a2 ABCD don't care: q (asynch) doutn ABXX XXCD ABCD ABFF FFCD ABCD current data: q (asynch) doutn ABFF FFCD ABCD ABFF FFCD ABCD Stratix III Device Handbook, Volume 1 © May 2009 Altera Corporation Chapter 4: TriMatrix Embedded Memory Blocks in Stratix III Devices Overview 4–5 Figure 4–2 shows how the write enable (wren) and byte-enable (byteena) signals control the operations of the MLABs. The write operation in MLABs is triggered by failing clock edges. Figure 4–2. Stratix III Byte-Enable Functional Waveform for MLABs inclock wren address data byteena contents at a0 an a1 a2 a0 a1 ABCD XXXX 10 XX 01 11 XX ABFF FFFF FFCD FFFF contents at a2 doutn a2 XXXX FFFF contents at a1 current data: q (asynch) a0 FFFF ABCD ABFF FFFF FFCD FFFF ABCD ABFF FFCD FFCD Packed Mode Support Stratix III M9K and M144K blocks support packed mode. The packed mode feature packs two independent single-port RAMs into one memory block. The Quartus II software automatically implements packed mode where appropriate by placing the physical RAM block into true dual-port mode and using the MSB of the address to distinguish between the two logical RAMs. The size of each independent single-port RAM must not exceed half of the target block size. Address Clock Enable Support All Stratix III memory blocks support address clock enable, which holds the previous address value for as long as the signal is enabled (addressstall = 1). When the memory blocks are configured in dual-port mode, each port has its own independent address clock enable. The default value for the address clock enable signals is low (disabled). © May 2009 Altera Corporation Stratix III Device Handbook, Volume 1 4–6 Chapter 4: TriMatrix Embedded Memory Blocks in Stratix III Devices Overview Figure 4–3 shows an address clock enable block diagram. The address clock enable is referred to by the port name addressstall. Figure 4–3. Stratix III Address Clock Enable Block Diagram address[0] 1 0 address[N] 1 0 address[0] register address[0] address[N] register address[N] addressstall clock Figure 4–4 shows the address clock enable waveform during the read cycle. Figure 4–4. Stratix III Address Clock Enable during Read Cycle Waveform inclock rdaddress a0 a1 a2 a3 a4 a5 a6 rden addressstall latched address (inside memory) an q (synch) doutn-1 q (asynch) Stratix III Device Handbook, Volume 1 doutn doutn dout0 a4 a1 a0 dout0 dout4 dout1 dout1 a5 dout4 dout5 © May 2009 Altera Corporation Chapter 4: TriMatrix Embedded Memory Blocks in Stratix III Devices Overview 4–7 Figure 4–5 shows the address clock enable waveform during the write cycle for M9K and M144K. Figure 4–5. Stratix III Address Clock Enable during Write Cycle Waveform for M9K and M144K inclock wraddress a0 a1 a2 a3 a4 a5 a6 00 01 02 03 04 05 06 data wren addressstall latched address (inside memory) contents at a0 contents at a1 a1 a0 XX 01 02 XX contents at a3 XX contents at a5 Altera Corporation a4 a5 00 XX contents at a2 contents at a4 © May 2009 an 03 04 XX XX 05 Stratix III Device Handbook, Volume 1 4–8 Chapter 4: TriMatrix Embedded Memory Blocks in Stratix III Devices Overview Figure 4–6 shows the address clock enable waveform during the write cycle for MLABs. Figure 4–6. Stratix III Address Clock Enable during Write Cycle Waveform for MLABs inclock wraddress data a0 a1 a2 a3 a4 a5 a6 00 01 02 03 04 05 06 wren addressstall latched address (inside memory) contents at a0 contents at a1 a1 a0 an a4 00 XX XX 01 02 contents at a2 XX contents at a3 XX contents at a4 contents at a5 a5 03 04 XX XX 05 Mixed Width Support M9K and M144K memory blocks inherently support mixed data widths. MLABs can support mixed data widths through emulation via the Quartus II software. When using simple dual-port or true dual-port mixed width support allows you to read and write different data widths to a memory block. Refer to “Memory Modes” on page 4–10 for details on the different widths supported per memory mode. 1 You cannot use the ECC on M144 memory blocks when using the mixed width support. 1 MLABs do not support mixed-width FIFO mode. Asynchronous Clear Stratix III M9K and M144K memory blocks support asynchronous clears on the output latches and output registers. MLABs supports asynchronous clear on the output registers only as the output is not latched. Therefore, if your M9K and M144K are not using the output registers, you can still clear the RAM outputs via the output latch asynchronous clear. The functional waveform in Figure 4–7 shows this functionality. Stratix III Device Handbook, Volume 1 © May 2009 Altera Corporation Chapter 4: TriMatrix Embedded Memory Blocks in Stratix III Devices Overview 4–9 Figure 4–7. Output Latch Asynchronous Clear Waveform outclk aclr aclr at latch q You can selectively enable asynchronous clears per logical memory via the Quartus II RAM MegaWizard Plug-In Manager. f For more information, refer to the RAM Megafunction User Guide. Error Correction Code Support Stratix III M144K blocks have built-in support for error correction code (ECC) when in ×64-wide simple dual-port mode. ECC allows you to detect and correct data errors in the memory array. The M144K blocks have a single-error-correction double-error-detection (SECDED) implementation. SECDED can detect and fix a single-bit error in a 64-bit word or detect two-bit errors in a 64-bit word. It cannot detect three or more errors. The M144K ECC status is communicated via a three-bit status flag eccstatus[2..0]. The status flag can be either registered or unregistered. When registered, it uses the same clock and asynchronous clear signals as the output registers. When not registered, it cannot be asynchronously cleared. Table 4–3 shows the truth table for the ECC status flags. Table 4–3. Truth Table for ECC Status Flags Status © May 2009 eccstatus[2] eccstatus[1] eccstatus[0] No error 0 0 0 Single error and fixed 0 1 1 Double error and no fix 1 0 1 Illegal 0 0 1 Illegal 0 1 0 Illegal 1 0 0 Illegal 1 1 X 1 You cannot use the byte-enable feature when ECC is engaged. 1 Read during write “old data” mode is not supported when ECC is engaged. Altera Corporation Stratix III Device Handbook, Volume 1 4–10 Chapter 4: TriMatrix Embedded Memory Blocks in Stratix III Devices Overview Figure 4–8 shows a block diagram of the ECC block of the M144K. Figure 4–8. ECC Block Diagram of the M144K 8 64 64 SECDED Encoder Data Input 8 72 RAM Array 72 64 SECDED Encoder Comparator 8 64 8 8 64 Error Locator 64 Error Correction Block Flag Generator 3 Status Flags 64 Data Output Memory Modes Stratix III TriMatrix memory blocks allow you to implement fully synchronous SRAM memory in multiple modes of operation. M9K and M144K blocks do not support asynchronous memory (unregistered inputs). MLABs support asynchronous (flow-through) read operations. Depending on which TriMatrix memory block you target, the following modes may be used: 1 ■ Single-port ■ Simple dual-port ■ True dual-port ■ Shift-register ■ ROM ■ FIFO When using the memory blocks in ROM, single-port, simple dual-port, or true dual-port mode, you can corrupt the memory contents if you violate the setup or hold-time on any of the memory block input registers. This applies to both read and write operations. Single Port RAM All TriMatrix memory blocks support single-port mode. Single-port mode allows you to do either one read or one write operation at a time. Simultaneous reads and writes are not supported in single-port mode. Figure 4–9 shows the single-port RAM configuration. Stratix III Device Handbook, Volume 1 © May 2009 Altera Corporation Chapter 4: TriMatrix Embedded Memory Blocks in Stratix III Devices Overview 4–11 Figure 4–9. Single-Port Memory (Note 1) data[ ] address[ ] wren byteena[] addressstall inclock clockena rden aclr q[] outclock Note to Figure 4–9: (1) You can implement two single-port memory blocks in a single M9K or M144K block. See “Packed Mode Support” on page 4–5 for more details. During a write operation, behavior of the RAM outputs is configurable. If you use the read-enable signal and perform a write operation with the read enable deactivated, the RAM outputs retain the values they held during the most recent active read enable. If you activate read enable during a write operation, or if you are not using the read-enable signal at all, the RAM outputs either show the new data being written, the old data at that address, or a don’t care value. To choose the desired behavior, set the read-during-write behavior to either new data, old data, or don’t care in the RAM MegaWizard Plug-In Manager in the Quartus II software. See “Read During Write” on page 4–21 for more details on this behavior. Table 4–4 shows the possible port width configurations for TriMatrix memory blocks in single-port mode. Table 4–4. Stratix III Port Width Configurations for MLABs, M9K Blocks, and M144K Blocks (Single-Port Mode) Port Width Port Width Configurations MLABs (1) M9K Blocks M144K Blocks 16 × 8 8K×1 16 K × 8 16 × 9 4K×2 16 K × 9 16 × 10 2K×4 8 K × 16 16 × 16 1K×8 8 K × 18 16 × 18 1K×9 4 K × 32 16 × 20 512 × 16 4 K × 36 512 × 18 2 K × 64 256 × 32 2 K × 72 256 × 36 Note to Table 4–4: (1) Configurations of 64 × 8, 64 × 9, 64 × 10, 32 × 16, 32 × 18, and 32 × 20 are supported by stitching multiple MLAB blocks. © May 2009 Altera Corporation Stratix III Device Handbook, Volume 1 4–12 Chapter 4: TriMatrix Embedded Memory Blocks in Stratix III Devices Overview Figure 4–10 shows the timing waveforms for read and write operations in single-port mode with unregistered outputs for M9K and M144K. In M9K and M144K registering the RAM’s outputs would simply delay the q output by one clock cycle. Figure 4–10. Timing Waveform for Read-Write Operations (Single-Port Mode) for M9K and M144K clk_a wrena rdena address_a data_a q_a (asynch) a0 A a1 B C A a0(old data) D B E F D a1(old data) E Figure 4–11 shows the timing waveforms for read and write operations in single-port mode with unregistered outputs for MLABs. For MLABs, the read operation is triggered by the rising clock edges whereas the write operation is triggered by the falling clock edges. Figure 4–11. Timing Waveform for Read-Write Operations (Single-Port Mode) for MLABs clk_a wrena rdena address_a data_a q_a (asynch) a0 A a0 (old data) B A a1 C B D C a1 (old data) E D F E Simple Dual-Port Mode All TriMatrix memory blocks support simple dual-port mode. Simple dual-port mode allows you to perform one-read and one-write operation to different locations at the same time. Figure 4–12 shows the simple dual-port configuration. Stratix III Device Handbook, Volume 1 © May 2009 Altera Corporation Chapter 4: TriMatrix Embedded Memory Blocks in Stratix III Devices Overview 4–13 Figure 4–12. Stratix III Simple Dual-Port Memory (Note 1) data[ ] wraddress[ ] wren byteena[] wr_addressstall wrclock wrclocken aclr rdaddress[ ] rden q[ ] rd_addressstall rdclock rdclocken ecc_status Note to Figure 4–12: (1) Simple dual-port RAM supports input/output clock mode in addition to the read/write clock mode shown. Simple dual-port mode supports different read and write data widths (mixed width support). Table 4–5 shows the mixed width configurations for the M9K blocks in simple dual-port mode. MLABs do not have native support for mixed width operation. The Quartus II software can implement mixed width memories in MLABs by using more than one MLAB. Table 4–5. Stratix III M9K Block Mixed-Width Configurations (Simple Dual-Port Mode) Write Port Read Port 8K×1 4K×2 2K×4 1K×8 512×16 256×32 1K×9 512×18 256×36 8K×1 v v v v v v — — — 4K×2 v v v v v v — — — 2K×4 v v v v v v — — — 1K×8 v v v v v v — — — 512×16 v v v v v v — — — 256×32 v v v v v v — — — 1K×9 — — — — — — v v v 512×18 — — — — — — v v v 256×36 — — — — — — v v v Table 4–6 shows the mixed width configurations for the M144K blocks in simple dual-port mode. Table 4–6. Stratix III M144K Block Mixed-Width Configurations (Simple Dual-Port Mode) Write Port Read Port 16K×8 8K×16 4K×32 2K×64 16K×9 8K×18 4K×36 2K×72 16K×8 v v v v — — — — 8K×16 v v v v — — — — 4K×32 v v v v — — — — 2K×64 v v v v — — — — 16K×9 — — — — v v v v 8K×18 — — — — v v v v 4K×36 — — — — v v v v 2K×72 — — — — v v v v © May 2009 Altera Corporation Stratix III Device Handbook, Volume 1 4–14 Chapter 4: TriMatrix Embedded Memory Blocks in Stratix III Devices Overview In simple dual-port mode, M9K and M144K blocks support separate write-enable and read-enable signals. You can save power by keeping the read-enable signal low (inactive) when not reading. Read-during-write operations to the same address can either output a don’t care value or old data. To choose the desired behavior, set the read-during-write behavior to either don’t care or old data in the RAM MegaWizard Plug-In Manager in the Quartus II software. See “Read During Write” on page 4–21 for more details about this behavior. MLABs only support a write-enable signal. Read-during-write behavior for the MLABs can be either don’t care, new data, or old data. The available choices depend on the configuration of the MLAB. Figure 4–13 shows the timing waveforms for read and write operations in simple dual-port mode with unregistered outputs in M9K and M144K. Registering the RAM’s outputs would simply delay the q output by one clock cycle in M9k and M144K. Figure 4–13. Stratix III Simple Dual-Port Timing Waveforms for M9K and M144K wrclock wren wraddress an-1 data din-1 a0 an a1 a2 a3 din a4 a5 din4 din5 a6 din6 rdclock rden rdaddress q (asynch) bn b1 b0 doutn-1 b2 b3 dout0 doutn Figure 4–14 shows the timing waveforms for read and write operations in simple dual-port mode with unregistered outputs in MLABs. In MLABs, the write operation is triggered by the falling clock edges. Figure 4–14. Stratix III Simple Dual-Port Timing Waveforms for MLABs wrclock wren wraddress an-1 data din-1 a0 an a1 a2 din a3 a4 a5 din4 din5 a6 din6 rdclock rden rdaddress q (asynch) bn doutn-1 Stratix III Device Handbook, Volume 1 b0 doutn b1 b2 b3 dout0 © May 2009 Altera Corporation Chapter 4: TriMatrix Embedded Memory Blocks in Stratix III Devices Overview 4–15 True Dual-Port Mode Stratix III M9K and M144K blocks support true dual-port mode. Sometimes called bi-directional dual-port, this mode allows you to perform any combination of two port operations: two reads, two writes, or one read and one write at two different clock frequencies. Figure 4–15 shows the true dual-port RAM configuration. Figure 4–15. Stratix III True Dual-Port Memory (Note 1) data_a[ ] address_a[ ] wren_a byteena_a[] addressstall_a clock_a rden_a aclr_a q_a[] data_b[ ] address_b[] wren_b byteena_b[] addressstall_b clock_b rden_b aclr_b q_b[] Note to Figure 4–15: (1) True dual-port memory supports input/output clock mode in addition to the independent clock mode shown. The widest bit configuration of the M9K and M144K blocks in true dual-port mode is as follows: ■ 512 × 16-bit (×18-bit with parity) (M9K) ■ 4K × 32-bit (×36-bit with parity) (M144K) Wider configurations are unavailable because the number of output drivers is equivalent to the maximum bit width of the respective memory block. Because true dual-port RAM has outputs on two ports, its maximum width equals half of the total number of output drivers. Table 4–7 lists the possible M9K block mixed-port width configurations in true dual-port mode. Table 4–7. Stratix III M9K Block Mixed-Width Configuration (True Dual-Port Mode) Write Port Read Port 8K×1 4K×2 2K×4 1K×8 512×16 1K×9 512×18 8K×1 v v v v v — — 4K×2 v v v v v — — 2K×4 v v v v v — — 1K×8 v v v v v — — 512×16 v v v v v — — 1K×9 — — — — — v v 512×18 — — — — — v v © May 2009 Altera Corporation Stratix III Device Handbook, Volume 1 4–16 Chapter 4: TriMatrix Embedded Memory Blocks in Stratix III Devices Overview Table 4–8 lists the possible M144K block mixed-port width configurations in true dual-port mode. Table 4–8. Stratix III M144K Block Mixed-Width Configurations (True Dual-Port Mode) Write Port Read Port 16K×8 8K×16 4K×32 16K×9 8K×18 4K×36 16K×8 v v v — — — 8K×16 v v v — — — 4K×32 v v v — — — 16K×9 — — — v v v 8K×18 — — — v v v 4K×36 — — — v v v In true dual-port mode, M9K and M144K blocks support separate write-enable and read-enable signals. You can save power by keeping the read-enable signal low (inactive) when not reading. Read-during-write operations to the same address can either output new data at that location or old data. To choose the desired behavior, set the read-during-write behavior to either new data or old data in the RAM MegaWizard Plug-In Manager in the Quartus II software. See “Read During Write” on page 4–21 for more details about this behavior. In true dual-port mode you can access any memory location at any time from either port. When accessing the same memory location from both ports, you must avoid possible write conflicts. A write conflict happens when you attempt to write to the same address location from both ports at the same time. This results in unknown data being stored to that address location. No conflict resolution circuitry is built into the Stratix III TriMatrix memory blocks. You must handle address conflicts external to the RAM block. Figure 4–16 shows the true dual-port timing waveforms for the write operation at port A and read operation at port B with the Read-During-Write behavior set to new data. Registering the RAM’s outputs would simply delay the q outputs by one clock cycle. Stratix III Device Handbook, Volume 1 © May 2009 Altera Corporation Chapter 4: TriMatrix Embedded Memory Blocks in Stratix III Devices Overview 4–17 Figure 4–16. Stratix III True Dual-Port Timing Waveform clk_a wren_a address_a an-1 an data_a din-1 din q_a (asynch) din-1 a0 din a1 dout0 a2 dout1 a3 dout2 a4 a5 a6 din4 din5 din6 dout3 din4 din5 clk_b wren_b address_b q_b (asynch) bn doutn-1 b0 b1 b2 b3 doutn dout0 dout1 dout2 Shift-Register Mode All Stratix III memory blocks support shift register mode. Embedded memory block configurations can implement shift registers for digital signal processing (DSP) applications, such as finite impulse response (FIR) filters, pseudo-random number generators, multi-channel filtering, and auto- and cross-correlation functions. These and other DSP applications require local data storage, traditionally implemented with standard flipflops that quickly exhaust many logic cells for large shift registers. A more efficient alternative is to use embedded memory as a shift-register block, which saves logic cell and routing resources. The size of a shift register (w × m × n) is determined by the input data width (w), the length of the taps (m), and the number of taps (n). You can cascade memory blocks to implement larger shift registers. © May 2009 Altera Corporation Stratix III Device Handbook, Volume 1 4–18 Chapter 4: TriMatrix Embedded Memory Blocks in Stratix III Devices Overview Figure 4–17 shows the TriMatrix memory block in shift-register mode. Figure 4–17. Stratix III Shift-Register Memory Configuration w × m × n Shift Register m-Bit Shift Register W W m-Bit Shift Register W W n Number of Taps m-Bit Shift Register W W m-Bit Shift Register W W ROM Mode All Stratix III TriMatrix memory blocks support ROM mode. A .mif file initializes the ROM content of these blocks. The address lines of the ROM are registered on M9K and M144K blocks, but can be unregistered on MLABs. The outputs can be registered or unregistered. Output registers can be asynchronously cleared. The ROM read operation is identical to the read operation in the single-port RAM configuration. FIFO Mode All TriMatrix memory blocks support FIFO mode. MLABs are ideal for designs with many small, shallow FIFO buffers. To implement FIFO buffers in your design, use the Quartus II software FIFO MegaWizard Plug-In Manager. Both single and dual-clock (asynchronous) FIFOs are supported. f 1 For more information about implementing FIFO buffers, refer to the Single- and Dual-Clock FIFO Megafunctions User Guide. MLABs do not support mixed-width FIFO mode. Stratix III Device Handbook, Volume 1 © May 2009 Altera Corporation Chapter 4: TriMatrix Embedded Memory Blocks in Stratix III Devices Clocking Modes 4–19 Clocking Modes Stratix III TriMatrix memory blocks support the following clocking modes: ■ Independent ■ Input/output ■ Read/write ■ Single clock 1 Violating the setup or hold time on the memory block address registers could corrupt the memory contents. This applies to both read and write operations. 1 Altera recommends using a memory block clock that comes through global clock routing from an on-chip PLL set to 50% output duty cycle to achieve the maximum memory block performance. Use Quartus II to report timing for this and other memory block clocking schemes. f For more information refer to the Stratix III Device Family Errata Sheet. Table 4–9 shows the clocking mode versus memory mode support matrix. Table 4–9. Stratix III TriMatrix Memory Clock Modes True Dual-Port Mode Simple Dual-Port Mode Single-Port Mode ROM Mode FIFO Mode Independent v — — v — Input/output v v v v — Read/write — v — — v Single clock v v v v v Clocking Mode Independent Clock Mode Stratix III TriMatrix memory blocks can implement independent clock mode for true dual-port memories. In this mode, a separate clock is available for each port (A and B). Clock A controls all registers on the port A side, while clock B controls all registers on the port B side. Each port also supports independent clock enables for port A and port B registers. Asynchronous clears are supported only for output latches and output registers on both ports. Input/Output Clock Mode Stratix III TriMatrix memory blocks can implement input/output clock mode for true and simple dual-port memories. In this mode, an input clock controls all registers related to the data input to the memory block, including data, address, byte-enables, read enables, and write enables. An output clock controls the data output registers. Asynchronous clears are available on output latches and output registers only. © May 2009 Altera Corporation Stratix III Device Handbook, Volume 1 4–20 Chapter 4: TriMatrix Embedded Memory Blocks in Stratix III Devices Design Considerations Read/Write Clock Mode Stratix III TriMatrix memory blocks can implement read/write clock mode for simple dual-port memories. In this mode, a write clock controls the data-input, write-address, and write-enable registers. Similarly, a read clock control the data-output, read-address, and read-enable registers. The memory blocks support independent clock enables for both the read and write clocks. Asynchronous clears are available on data output latches and registers only. When using read/write mode, if you perform a simultaneous read/write to the same address location, the output read data will be unknown. If you require the output data to be a known value in this case, use either single-clock mode or input/output clock mode and choose the appropriate read-during-write behavior in the Megawizard. Single Clock Mode Stratix III TriMatrix memory blocks can implement single-clock mode for true dual-port, simple dual-port, and single-port memories. In this mode, a single clock, together with a clock enable, is used to control all registers of the memory block. Asynchronous clears are available on output latches and output registers only. Design Considerations This section describes guidelines for designing with TriMatrix memory blocks. Selecting TriMatrix Memory Blocks The Quartus II software automatically partitions user-defined memory into embedded memory blocks by taking into account both speed and size constraints placed on your design. For example, the Quartus II software may spread out a memory across multiple memory blocks when resources are available to increase the performance of the design. You can manually assign the memory to a specific block size via the RAM MegaWizard Plug-In Manager. MLABs can implement single-port SRAM through emulation via the Quartus II software. Emulation results in minimal additional logic resources being used. Because of the dual-purpose architecture of the MLAB, it only has data input registers and output registers in the block. MLABs gain input address registers and additional optional data output registers from adjacent ALMs by using register packing. f For more information about register packing, refer to the Logic Array Blocks and Adaptive Logic Modules in Stratix III Devices chapter in volume 1 of the Stratix III Device Handbook. Conflict Resolution When using the memory blocks in true dual-port mode, it is possible to attempt two write operations to the same memory location (address). Since no conflict resolution circuitry is built into the memory blocks, this results in unknown data being written to that location. Therefore, you must implement conflict resolution logic external to the memory block to avoid address conflicts. Stratix III Device Handbook, Volume 1 © May 2009 Altera Corporation Chapter 4: TriMatrix Embedded Memory Blocks in Stratix III Devices Design Considerations 4–21 Read During Write You can customize the read-during-write behavior of the Stratix III TriMatrix memory blocks to suit your design needs. Two types of read-during-write operations are available: same port and mixed port. Figure 4–18 shows the difference between the two types. Figure 4–18. Stratix III Read-During-Write Data Flow Port A data in Port B data in Mixed-port data flow Same-port data flow Port A data out Port B data out Same-Port Read-During-Write Mode This mode applies to either a single-port RAM or the same port of a true dual-port RAM. In same-port read-during-write mode, three output choices are available: new data mode (or flow-through), old data mode, or don’t care mode. In new data mode, the new data is available on the rising edge of the same clock cycle on which it was written. In old data mode, the RAM outputs reflect the old data at that address before the write operation proceeds. In don’t care mode, the RAM outputs don’t care values for a read-during-write operation. If you are not using the new data mode or old data mode, you should select the don’t care mode. Using the don’t care mode increases the flexibility in the type of memory block used, provided you do not assign block type when instantiating a memory block. You may also get potential performance gain by selecting the don’t care mode. © May 2009 Altera Corporation Stratix III Device Handbook, Volume 1 4–22 Chapter 4: TriMatrix Embedded Memory Blocks in Stratix III Devices Design Considerations Figure 4–19 shows the sample functional waveforms of same-port read-during-write behavior with new data. Figure 4–19. Same Port Read-During-Write: New Data Mode (Note 1) clk_a 0A address 0B rdena wrena bytenna data_a 01 10 00 A123 B456 C789 XX23 q_a (asyn) B4XX 11 XXXX DDDD EEEE DDDD EEEE FFFF FFFF Note to Figure 4–19: (1) “X” can be a don’t care value or current data at that location, depending on the setting chosen in the Quartus II software. Figure 4–20 shows the sample functional waveforms of same-port read-during-write behavior with old data mode. Figure 4–20. Same Port Read-During-Write: Old Data Mode (Note 1) clk_a A0 address A1 rdena wrena bytenna data_a q_a (asyn) 01 10 00 A123 B456 C789 A0 (old data) DoldDold23 11 B423 DDDD EEEE A1(old data) DDDD FFFF EEEE Note to Figure 4–20: (1) Dold is the old data bit at address A0, A0 (old data) is the old data at address A0, and A1 (old data) is the old data at address A1. Mixed-Port Read-During-Write Mode This mode applies to a RAM in simple or true dual-port mode which has one port reading and the other port writing to the same address location with the same clock. In this mode you also have two output choices: old data or don’t care. In old data mode, a read-during-write operation to different ports causes the RAM outputs to reflect the old data at that address location. In don’t care mode, the same operation results in a “don’t care” or “unknown” value on the RAM outputs. Stratix III Device Handbook, Volume 1 © May 2009 Altera Corporation Chapter 4: TriMatrix Embedded Memory Blocks in Stratix III Devices Design Considerations 1 4–23 For more details about how to implement the desired behavior, read-during-write behavior is controlled via the RAM MegaWizard Plug-In Manager refer to the RAM Megafunction User Guide. You should select don’t care mode if you do not use old data mode. This increases the flexibility in the type of memory block used, if you do not assign block type when instantiating a memory block. You may also get potential performance gain by selecting don’t care mode. Figure 4–21 shows a sample functional waveform of mixed-port read-during-write behavior for the old data mode. In don’t care mode, the old data shown in the figure is simply replaced with “don’t cares”. Figure 4–21. Mixed Port Read During Write: Old Data Mode (Note 1) clk_a&b wrena A0 address_a A1 data_a AAAA BBBB CCCC bytenna 11 01 10 DDDD EEEE FFFF 11 rdenb A0 address_b q_b_(asyn) A0 (old data) AAAA A1 AABB A1(old data) DDDD EEEE Note to Figure 4–21: (1) A0 (old data) is the old data at address A0 and A1 (old data) is the old data at address A1. Mixed-port read-during-write using two different clocks in simple-dual port RAM with old data output is supported via emulation. The Quartus II software takes two memory blocks to implement the widest width mode. Power-Up Conditions and Memory Initialization M9K and M144K memory block outputs power up to zero (cleared), regardless of whether the output registers are used or bypassed. MLABs power up to zero if output registers are used and power up reading the memory contents if output registers are not used. However, the actual RAM cells power up to an unknown state. Therefore, after power-up, if an address is read before being written, the output from the read operation is undefined because the contents are not initialized. All memory blocks support initialization via .mif file. You can create .mif files in the Quartus II software and specify their use with the RAM MegaWizard Plug-In Manager when instantiating a memory in your design. Even if a memory is pre-initialized (for example, by a .mif file), it still powers up with its outputs cleared. f © May 2009 For more information about .mif files, refer to the RAM Megafunction User Guide and the Quartus II Handbook. Altera Corporation Stratix III Device Handbook, Volume 1 4–24 Chapter 4: TriMatrix Embedded Memory Blocks in Stratix III Devices Conclusion Power Management Stratix III memory block clock-enables allow you to control clocking of each memory block to reduce AC power consumption. Use the read-enable signal to ensure that read operations only occur when you need them to. If your design does not require read-during-write, you can reduce your power consumption by de-asserting the read-enable signal during write operations, or any period when no memory operations occur. The Quartus II software automatically places any unused memory blocks in low power mode to reduce static power. Programming File Compatibility Beginning with version 8.1, the Quartus II software supports the logic option STRATIXIII_MRAM_COMPATIBILITY. When this option is set to on, the Quartus II software will generate programming files compatible with both affected and fixed silicons (for write speed decrease in M144K blocks). The default setting for this option is on. f For the list of devices that is affected by the write speed decrease for M144K blocks refer to the Stratix III Device Family Errata Sheet. To set the STRATIXIII_MRAM_COMPATIBILITY variable, enter the following line in the Quartus Settings File: set_global_assignment –name STRATIXIII_MRAM_COMPATIBILITY ON When targeting fixed silicon devices, set the STRATIXIII_MRAM_COMPATIBILITY variable to OFF. When the STRATIXIII_MRAM_COMPATIBILITY option is set to OFF, you will be able to achieve the higher FMAX that is published for M144K blocks in fixed silicons and the programming files will only be compatible with fixed silicons. These programming files will not configure other silicon revisions. The nSTATUS pin will drive out low and configuration will fail. Conclusion The Stratix III TriMatrix embedded memory structure provides three different on-chip RAM block sizes to address your design needs. All memory blocks are fully customizable and can be cascaded to implement wider or deeper memories with minimal speed penalty. You can independently configure each embedded memory block to be a single- or dual-port RAM, FIFO, ROM, or shift register via the Quartus II MegaWizard Plug-In Manager software. Stratix III Device Handbook, Volume 1 © May 2009 Altera Corporation Chapter 4: TriMatrix Embedded Memory Blocks in Stratix III Devices Chapter Revision History 4–25 Chapter Revision History Table 4–10 shows the revision history for this chapter. Table 4–10. Chapter Revision History Date and Revision May 2009, version 1.8 February 2009, version 1.7 November 2008, Version 1.6 October 2008, version 1.5 May 2008, version 1.4 November 2007, version 1.3 October 2007, version 1.2 Changes Made Summary of Changes ■ Updated Table 4–1. ■ Updated “Read/Write Clock Mode” and “Simple Dual-Port Mode” sections. ■ Updated Figure 4–2, Figure 4–4, and Figure 4–5. ■ Removed “Referenced Documents” section. ■ Updated “Byte-Enable Support”, “Address Clock Enable Support”, “Asynchronous Clear”, “Single Port RAM”, and “Simple Dual-Port Mode” sections. ■ Updated Figure 4–1, Figure 4–5, Figure 4–8, Figure 4–10, and Figure 4–15. ■ Added Figure 4–2, Figure 4–6, Figure 4–11, Figure 4–14, and Figure 4–16. ■ Updated Table 4–1. ■ Updated “Asynchronous Clear” and “Clocking Modes” section. ■ Added “Programming File Compatibility” section. ■ Updated New Document Format. ■ Updated “Introduction” section. ■ Updated “TriMatrix Memory Block Types” section. ■ Updated “Byte-Enable Support” section. ■ Updated “Mixed Width Support” section. ■ Updated “Same-Port Read-During-Write Mode” section. ■ Updated Figure 4–16, Figure 4–17, and Figure 4–18. ■ Updated “Mixed-Port Read-During-Write Mode” section. ■ Updated Table 4–1, Table 4–2, and Table 4–4. Updated Table 4–2. ■ Updated Table 4–1. ■ Added section “Referenced Documents”. ■ Added live links for references. — — — — — — — May 2007, version 1.1 Updated Table 4–2, Table 4–9. — November 2006, version 1.0 Initial Release. — © May 2009 Altera Corporation Stratix III Device Handbook, Volume 1 4–26 Stratix III Device Handbook, Volume 1 Chapter 4: TriMatrix Embedded Memory Blocks in Stratix III Devices Chapter Revision History © May 2009 Altera Corporation 5. DSP Blocks in Stratix III Devices SIII51005-1.7 Introduction The Stratix ® III family of devices have dedicated high-performance digital signal processing (DSP) blocks optimized for DSP applications. These DSP blocks of the Altera® Stratix device family are the third generation of hardwired, fixed function silicon blocks dedicated to maximizing signal processing capability, ease of use, and lowest silicon cost. Many complex systems such as WiMAX, 3GPP WCDMA, high-performance computing (HPC), voice over Internet protocol (VoIP), H.264 video compression, medical imaging, and HDTV use sophisticated digital signal processing techniques, and this typically requires a large number of mathematical computations. Stratix III devices are ideally suited as the DSP blocks consist of a combination of dedicated elements that perform multiplication, addition, subtraction, accumulation, summation, and dynamic shift operations. Along with the high-performance Stratix III soft logic fabric and TriMatrix™ memory structures, you can configure these blocks to build sophisticated fixed-point and floating-point arithmetic functions. These can be manipulated easily to implement common larger computationally intensive subsystems such as finite impulse response (FIR) filters, complex FIR filters, infinite impulse response (IIR) filters, fast Fourier transform (FFT) functions, and discrete cosine transform (DCT) functions. DSP Block Overview Each Stratix III device has two to seven columns of DSP blocks that implement multiplication, multiply-add, multiply-accumulate (MAC), and dynamic shift functions efficiently. The logical functionality of the Stratix III DSP block is a superset of the previous generation of the DSP block found in Stratix and Stratix II devices. Architectural highlights of the Stratix III DSP block include: © March 2010 ■ High-performance, power-optimized, fully registered and pipelined multiplication operations ■ Natively supported 9-bit, 12-bit, 18-bit, and 36-bit wordlengths ■ Natively supported 18-bit complex multiplications ■ Efficiently supported floating-point arithmetic formats (24-bit for single precision and 53-bit for double precision) ■ Signed and unsigned input support ■ Built-in addition, subtraction, and accumulation units to combine multiplication results efficiently ■ Cascading 18-bit input bus to form tap-delay line for filtering applications ■ Cascading 44-bit output bus to propagate output results from one block to the next block without external logic support ■ Rich and flexible arithmetic rounding and saturation units Altera Corporation Stratix III Device Handbook, Volume 1 5–2 Chapter 5: DSP Blocks in Stratix III Devices DSP Block Overview ■ Efficient barrel shifter support ■ Loopback capability to support adaptive filtering Table 5–1 lists the number of DSP blocks for the Stratix III device family. Table 5–1. Number of DSP Blocks in Stratix III Devices Independent Input and Output Multiplication Operators Family Device DSP Blocks 9×9 12 × 12 Multipliers Multipliers Stratix III Logic Stratix III Enhanced 18 × 18 18 × 18 36 × 36 Multipliers Complex Multipliers Four Multiplier Adder Mode High Precision Multiplier Adder Mode 18 × 18 18 × 36 EP3SL50 27 216 162 108 54 54 216 108 EP3SL70 36 288 216 144 72 72 288 144 EP3SL110 36 288 216 144 72 72 288 144 EP3SL150 48 384 288 192 96 96 384 192 EP3SL200 72 576 432 288 144 144 576 288 EP3SE260 96 768 576 384 192 192 768 384 EP3SL340 72 576 432 288 144 144 576 288 EP3SE50 48 384 288 192 96 96 384 192 EP3SE80 84 672 504 336 168 168 672 336 EP3SE110 112 896 672 448 224 224 896 448 EP3SE260 (1) 96 768 576 384 192 192 768 384 Note to Table 5–1: (1) The EP3SE260 device is rich in LE, memory, and multiplier resources. Hence, it aligns with both logic (L) and enhanced (E) variants. Table 5–1 lists that the largest Stratix III DSP centric device (EP3SE110) provides up to 896 18 × 18 multiplier functionality in the 36 × 36, complex 18 × 18, and summation modes. Each DSP block occupies four LAB blocks in height and can be divided further into two half-blocks that share some common clock signals, but are for all common purposes identical in functionality. The layout of each block is shown in Figure 5–1. 1 The Stratix III DSP block input data lines of 288-bits are double that of Stratix and Stratix II, but the number of output data lines remains at 144 bits. Stratix III Device Handbook, Volume 1 © March 2010 Altera Corporation Chapter 5: DSP Blocks in Stratix III Devices Simplified DSP Operation 5–3 Figure 5–1. Overview of DSP Block Signals 34 Control 144 Input Data Half-DSP Block 72 Output Data 72 Output Data 288 144 Half-DSP Block Full DSP Block Simplified DSP Operation In Stratix and Stratix II devices, the fundamental building block consists of an 18-bit × 18-bit multiplier that can also function as two 9-bit × 9-bit multipliers. For Stratix III, the fundamental building block is a pair of 18-bit × 18-bit multipliers followed by a first-stage 37-bit addition/subtraction unit, as shown in Equation 5–1 and Figure 5–2. Note that for all signed numbers, input and output data is represented in 2’s complement format only. Equation 5–1. Multiplier Equation P[36..0] = A0[17..0] × B0 [17..0] ± A1 [17..0] × B1[17..0] Figure 5–2. Basic Two-Multiplier Adder Building Block A0[17..0] B0[17..0] +/− © March 2010 A1[17..0] D Q B1[17..0] D Q Altera Corporation P[36..0] Stratix III Device Handbook, Volume 1 5–4 Chapter 5: DSP Blocks in Stratix III Devices Simplified DSP Operation The structure shown in Figure 5–2 is very useful for building more complex structures, such as complex multipliers and 36 × 36 multipliers, as described in later sections. Each Stratix III DSP block contains four Two-Multiplier Adder units (two Two-Multiplier Adder units per half-block). Therefore, there are eight 18 × 18 multiplier functionalities per DSP block. Following the Two-Multiplier Adder units are the pipeline registers, the second-stage adders, and an output register stage. You can configure the second-stage adders to provide the following alternative functions per Half-Block: Equation 5–2. Four-Multiplier Adder Equation Z[37..0] = P0[36..0] + P1[36..0] Equation 5–3. Four-Multiplier Adder Equation (44-Bit Accumulation) Wn[43..0] = W n-1[43..0] ± Zn [37..0] In these equations, n denotes sample time, and P[36..0] are the results from the Two-Multiplier Adder units. Equation 5–2 provides a sum of four 18-bit × 18-bit multiplication operations (Four-Multiplier Adder), and Equation 5–3 provides a four 18-bit × 18-bit multiplication operation but with maximum of a 44-bit accumulation capability by feeding the output of the unit back to itself. This is shown in Figure 5–3. You can bypass all register stages depending on which mode you select. Stratix III Device Handbook, Volume 1 © March 2010 Altera Corporation Chapter 5: DSP Blocks in Stratix III Devices Simplified DSP Operation 5–5 Output Register Bank Adder/ Accumulator 44 Result + 144 Input Register Bank Input Data Pipeline Register Bank + Figure 5–3. Four-Multiplier Adder and Accumulation Capability Half-DSP Block To support commonly found FIR-like structures efficiently, a major addition to the DSP block in Stratix III is the ability to propagate the result of one Half-Block to the next Half-Block completely within the DSP block without additional soft logic overhead. This is achieved by the inclusion of a dedicated addition unit and routing that adds the 44-bit result of a previous Half-Block with the 44-bit result of the current block. The 44-bit result is fed either to the next Half-Block or out of the DSP block through the output register stage. This is shown in Figure 5–4. Detailed examples are described in later sections. The combination of a fast, low-latency Four-Multiplier Adder unit and the “chained cascade” capability of the output-chaining adder provide an optimal FIR and vector multiplication capability. To support single-channel type FIR filters efficiently, you can configure one of the multiplier input’s registers to form a tap delay line input, saving resources and providing higher system performance. © March 2010 Altera Corporation Stratix III Device Handbook, Volume 1 5–6 Chapter 5: DSP Blocks in Stratix III Devices Simplified DSP Operation Figure 5–4. Output Cascading Feature for FIR Structures From Previous Half-Block DSP Output Register Bank Round/Saturate Adder/ Accumulator + 44 Result + 144 Input Register Bank Input Data Pipeline Register Bank + 44 Half DSP Block 44 To Next Half-Block DSP Also shown in Figure 5–4 is the optional Rounding and Saturation Unit (RSU). This unit provides a rich set of commonly found arithmetic round and saturation functions used in signal processing. In addition to the independent multipliers and sum modes, you can use the DSP blocks to perform shift operations. The DSP block can dynamically switch between logical shift left/right, arithmetic shift left/right, and rotation operation in one clock cycle. A top-level view of the Stratix III DSP block is shown in Figure 5–5. A more detailed diagram is shown in Figure 5–6. Stratix III Device Handbook, Volume 1 © March 2010 Altera Corporation Chapter 5: DSP Blocks in Stratix III Devices Simplified DSP Operation 5–7 Figure 5–5. Stratix III Full DSP Block Summary From Previous Half-Block DSP 44 Output Multiplexer Round/Saturate Output Register Bank Round/Saturate Output Register Bank + Output Multiplexer + Adder/Accumulator 144 Pipeline Register Bank Input Data Input Register Bank + Result Top Half-DSP Block 44 + Adder/Accumulator 144 Pipeline Register Bank Input Data Input Register Bank + + Result Bottom Half-DSP Block To Next Half-Block DSP © March 2010 Altera Corporation Stratix III Device Handbook, Volume 1 5–8 Chapter 5: DSP Blocks in Stratix III Devices Operational Modes Overview Operational Modes Overview Each Stratix III DSP block can be used in one of five basic operational modes. Table 5–2 lists the five basic operational modes and the number of multipliers that can be implemented within a single DSP block, depending on the mode. Table 5–2. Stratix III DSP Block Operation Modes Multiplier in Width # of Mults # per Block Signed or Unsigned RND, SAT In Shift Register Chainout Adder 1st Stage Add/Sub 2nd Stage Add/Acc 9-bits 1 8 Both No No No — — 12-bits 1 6 Both No No No — — 18-bits 1 4 Both Yes Yes No — — 36-bits 1 2 Both No No No — — Double 1 2 Both No No No — — Two-Multiplier Adder(1) 18-bits 2 4 Signed (4) Yes No No Both — Four-Multiplier Adder 18-bits 4 2 Both Yes Yes Yes Both Add Only High Precision Multiplier Adder 18 × 36-bits 2 2 Both No No No — Add Only Multiply Accumulate 18-bits 4 2 Both Yes Yes Yes Both Both Shift (2) 36-bits (3) 1 2 Both No No — — — Mode Independent Multiplier Notes to Table 5–2: (1) This mode also supports the loopback mode. In loopback mode, the number of loopback multipliers per DSP block is two and the remaining multipliers can be used in regular Two-Multiplier Adder mode. (2) The dynamic shift mode supports arithmetic shift left, arithmetic shift right, logical shift left, logical shift right, and rotation operation. (3) The dynamic shift mode operates on a 32-bit input vector but the multiplier width is configured as 36-bits. (4) Unsigned value is also supported but you must make sure that the result can be contained within 36-bits. The DSP block consists of two identical halves (top-half and bottom-half). Each half has four 18 × 18 multipliers. The Quartus® II software includes megafunctions used to control the mode of operation of the multipliers. After making the appropriate parameter settings using the megafunction’s MegaWizardTM Plug-In Manager, the Quartus II software automatically configures the DSP block. Stratix III DSP blocks can operate in different modes simultaneously. Each half-block is fully independent except for the sharing of the four clock, ena, and aclr signals. For example, you can break down a single DSP block to operate a 9 × 9 multiplier in one Half-Block and an 18 × 18 two-multiplier adder in the other Half-Block. This increases DSP block resource efficiency and allows you to implement more multipliers within a Stratix III device. The Quartus II software automatically places multipliers that can share the same DSP block resources within the same block. Stratix III Device Handbook, Volume 1 © March 2010 Altera Corporation Chapter 5: DSP Blocks in Stratix III Devices DSP Block Resource Descriptions 5–9 DSP Block Resource Descriptions The DSP block consists of the following elements: ■ Input register bank ■ Four Two-Multiplier Adders ■ Pipeline register bank ■ Two second-stage adders ■ Four round and saturation logic units ■ Second adder register and output register bank A detailed overall architecture of the top half of the DSP block is shown in Figure 5–6. Figure 5–6. Half-DSP Block Architecture clock[3..0] ena[3..0] alcr[3..0] chainin[ ] (1) signa signb output_round output_saturate rotate shift_right zero_loopback accum_sload zero_chainout chainout_round chainout_saturate overflow (2) chainout_sat_overflow (3) scanina[ ] dataa_3[ ] Multiplexer Shift/Rotate Output Register Bank Second Round/Saturate (4) Chainout Adder Second Adder Register Bank First Round/Saturate datab_2[ ] Second Stage Adder/Accumulator dataa_2[ ] Pipeline Register Bank datab_1[ ] Input Register Bank datab_0[ ] dataa_1[ ] First Stage Adder loopback First Stage Adder dataa_0[ ] result[ ] datab_3[ ] Half-DSP Block scanouta chainout Notes to Figure 5–6: (1) (2) (3) (4) chainin[] can only come from the chainout port of the previous DSP blocks and not from general routing. Block output for accumulator overflow and saturate overflow. Block output for saturation overflow of chainout. When the chainout adder is not in use, the second adder register banks are known as output register banks. © March 2010 Altera Corporation Stratix III Device Handbook, Volume 1 5–10 Chapter 5: DSP Blocks in Stratix III Devices DSP Block Resource Descriptions Input Registers All of the DSP block registers are triggered by the positive edge of the clock signal and are cleared upon power up. Each multiplier operand can feed an input register or directly to the multiplier, bypassing the input registers. (This is configured at compile time.) The following DSP block signals control the input registers within the DSP block: ■ clock[3..0] ■ ena[3..0] ■ aclr[3..0] Every DSP block has nine 18-bit data input register banks per half DSP block. Every half DSP block has the option to use the eight data register banks as inputs to the four multipliers. The special ninth register bank is a delay register required by modes that use both the cascade and chainout features of the DSP block and is for balancing the latency requirements when using the chained cascade feature. A feature of the input register bank is to support a tap delay line. Therefore, the top leg of the multiplier input (A) could be driven from general routing or from the cascade chain, as shown in Figure 5–7. Stratix III Device Handbook, Volume 1 © March 2010 Altera Corporation Chapter 5: DSP Blocks in Stratix III Devices DSP Block Resource Descriptions 5–11 Figure 5–7. Input Register of Half-DSP Block clock[3..0] ena[3..0] aclr[3..0] signa signb scanina[17..0] dataa_0[17..0] loopback datab_0[17..0] +/− dataa_1[17..0] datab_1[17..0] dataa_2[17..0] datab_2[17..0] +/− dataa_3[17..0] datab_3[17..0] Delay Register You must select whether the A-input comes from general routing or from the cascade chain at compile time. In cascade mode, the dedicated shift outputs from one multiplier block directly feeds input registers of the adjacent multiplier below it (within the same half DSP block) or the first multiplier in the next half DSP block, to form an 8-tap shift register chain per DSP Block. The DSP block can increase the length of the shift register chain by cascading to the lower DSP blocks. The dedicated shift register chain spans a single column, but you can implement longer shift register chains requiring multiple columns using the regular FPGA routing resources. © March 2010 Altera Corporation Stratix III Device Handbook, Volume 1 5–12 Chapter 5: DSP Blocks in Stratix III Devices DSP Block Resource Descriptions Shift registers are useful in DSP functions such as FIR filters. When implementing 18 × 18 or smaller width multipliers, you do not need external logic to create the shift register chain because the input shift registers are internal to the DSP block. This implementation significantly reduces the logical element (LE) resources required, avoids routing congestion, and results in predictable timing. The first multiplier in every half DSP block (top- and bottom-half) in Stratix III devices has a multiplexer for the first multiplier B-input (lower-leg input) register to select between general routing and loopback, as shown in Figure 5–6. In loopback mode, the most significant 18-bit registered outputs are connected as feedback to the multiplier input of the first top multiplier in each half DSP block. Loopback modes are used by recursive filters where the previous output is needed to compute the current output. The loopback mode is described in detail in “Two-Multiplier Adder Sum Mode” on page 5–21. Table 5–3 lists the input register modes for the DSP block. Table 5–3. Input Register Modes Register Input Mode (1) 9×9 12 × 12 18 × 18 36 × 36 Double Parallel input v v v v v Shift register input (2) — — v — — Loopback input (3) — — v — — Notes to Table 5–3: (1) The multiplier operand input wordlengths are statically configured at compile time. (2) Available only on the A-operand. (3) Only one loopback input is allowed per Half-Block. See Figure 5–15 for details. Multiplier and First-Stage Adder The multiplier stage natively supports 9 × 9, 12 × 12, 18 × 18, or 36 × 36 multipliers. Other wordlengths are padded up to the nearest appropriate native wordlength; for example, 16 × 16 would be padded up to use 18 × 18. Refer to “Independent Multiplier Modes” on page 5–15 for more details. Depending on the data width of the multiplier, a single DSP block can perform many multiplications in parallel. Each multiplier operand can be a unique signed or unsigned number. Two dynamic signals, signa and signb, control the representation of each operand, respectively. A logic 1 value on the signa/signb signal indicates that data A/data B is a signed number; a logic 0 value indicates an unsigned number. Table 5–4 lists the sign of the multiplication result for the various operand sign representations. The result of the multiplication is signed if any one of the operands is a signed value. Table 5–4. Multiplier Sign Representation Data A (signa Value) Data B (signb Value) Result Unsigned (logic 0) Unsigned (logic 0) Unsigned Unsigned (logic 0) Signed (logic 1) Signed Signed (logic 1) Unsigned (logic 0) Signed Signed (logic 1) Signed (logic 1) Signed Stratix III Device Handbook, Volume 1 © March 2010 Altera Corporation Chapter 5: DSP Blocks in Stratix III Devices DSP Block Resource Descriptions 5–13 Each Half Block has its own signa and signb signal. Therefore, all of the data A inputs feeding the same DSP Half Block must have the same sign representation. Similarly, all of the data B inputs feeding the same DSP Half Block must have the same sign representation. The multiplier offers full precision regardless of the sign representation in all operational modes except for full precision 18 x 18 loopback and Two-Multiplier Adder modes. Refer to “Two-Multiplier Adder Sum Mode” on page 5–21 for details. 1 When the signa and signb signals are unused, the Quartus II software sets the multiplier to perform unsigned multiplication by default. The outputs of the multipliers are the only outputs that can feed into the first-stage adder, as shown in Figure 5–6. There are four first-stage adders in a DSP block (two adders per half DSP block). The first-stage adder block has the ability to perform addition and subtraction. The control signal for addition or subtraction is static and has to be configured upon compile time. The first-stage adders are used by the sum modes to compute the sum of two multipliers, 18 × 18-complex multipliers, and to perform the first stage of a 36 × 36 multiply and shift operation. Depending on your specifications, the output of the first-stage adder has the option to feed into the pipeline registers, second-stage adder, round and saturation unit, or the output registers. Pipeline Register Stage The output from the first-stage adder can either feed or bypass the pipeline registers, as shown in Figure 5–6. Pipeline registers increase the DSP block’s maximum performance (at the expense of extra cycles of latency), especially when using the subsequent DSP block stages. Pipeline registers split up the long signal path between the input-registers/multiplier/first-stage adder and the second-stage adder/round-and-saturation/output-registers, creating two shorter paths. Second-Stage Adder There are four individual 44-bit second-stage adders per DSP block (2 adders per half DSP block). You can configure the second-stage adders as follows: © March 2010 ■ The final stage of a 36-bit multiplier ■ A sum of four (18 × 18) ■ An accumulator (44-bits maximum) ■ A chained output summation (44-bits maximum) 1 The chained-output adder can be used at the same time as a second-level adder in chained output summation mode. 1 The output of the second-stage adder has the option to go into the round and saturation logic unit or the output register. 1 You cannot use the second-stage adder independently from the multiplier and first-stage adder. Altera Corporation Stratix III Device Handbook, Volume 1 5–14 Chapter 5: DSP Blocks in Stratix III Devices DSP Block Resource Descriptions Round and Saturation Stage The round and saturation logic units are located at the output of the 44-bit second-stage adder (round logic unit followed by the saturation logic unit). There are two round and saturation logic units per half DSP block. The input to the round and saturation logic unit can come from one of the following stages: ■ Output of the multiplier (independent multiply mode in 18 × 18) ■ Output of the first-stage adder (Two-Multiplier Adder) ■ Output of the pipeline registers ■ Output of the second-stage adder (Four-Multiplier Adder, Multiply-Accumulate Mode in 18 × 18) These stages are discussed in detail in “Operational Mode Descriptions” on page 5–15. The round and saturation logic unit is controlled by the dynamic round and saturate signals, respectively. A logic 1 value on the round, saturate, or both enables the round, saturate, or both logic units. 1 You can use the round and saturation logic units together or independently. Second Adder and Output Registers The second adder register and output register banks are two banks of 44-bit registers that can also be combined to form larger 72-bit banks to support 36 × 36 output results. The outputs of the different stages in the Stratix III devices are routed to the output registers through an output selection unit. Depending on the operational mode of the DSP block, the output selection unit selects whether the outputs of the DSP blocks comes from the outputs of the multiplier block, first-stage adder, pipeline registers, second-stage adder, or the round and saturation logic unit. The output selection unit is set automatically by the software, based on the DSP block operational mode you specified, and has the option to either drive or bypass the output registers. The exception is when the block is used in shift mode, in which case the user dynamically controls the output-select multiplexer directly. When the DSP block is configured in “chained cascaded” output mode, both of the second-stage adders are used. The first one is used for performing Four-Multiplier Adder and the second is used for the chainout adder. The outputs of the Four-Multiplier Adder are routed to the second-stage adder registers before it enters the chainout adder. The output of the chainout adder goes to the regular output register bank. Depending on the configuration, the chainout results can be routed to the input of the next half-block’s chainout adder input or to the general fabric (functioning as regular output registers). Refer to “Operational Mode Descriptions” on page 5–15 for details. Stratix III Device Handbook, Volume 1 © March 2010 Altera Corporation Chapter 5: DSP Blocks in Stratix III Devices Operational Mode Descriptions 5–15 The second-stage and output registers are triggered by the positive edge of the clock signal and are cleared on power up. The following DSP block signals control the output registers within the DSP block: ■ clock[3..0] ■ ena[3..0] ■ aclr[3..0] Operational Mode Descriptions The various modes of operation are discussed below. Independent Multiplier Modes In independent input and output multiplier mode, the DSP block performs individual multiplication operations for general-purpose multipliers. 9-, 12-, and 18-Bit Multiplier You can configure each DSP block multiplier for 9-, 12-, or 18-bit multiplication. A single DSP block can support up to eight individual 9 × 9 multipliers, six 12 × 12 multipliers, or up to four individual 18 × 18 multipliers. For operand widths up to 9 bits, a 9 × 9 multiplier is implemented. For operand widths from 10 to 12 bits, a 12 × 12 multiplier is implemented, and for operand widths from 13 to 18 bits, an 18 × 18 multiplier is implemented. This is done by the Quartus II software by zero-padding the LSBs. Figure 5–8, Figure 5–9, and Figure 5–10 show the DSP block in the independent multiplier operation mode. Figure 5–8. 18-Bit Independent Multiplier Mode for Half-DSP Block signa clock[3..0] signb overflow 18 datab_1[17..0] Pipeline Register Bank 18 dataa_1[17..0] Input Register Bank 18 datab_0[17..0] 36 result_0[ ] Output Register Bank 18 dataa_0[17..0] Round/Saturate output_round output_saturate Round/Saturate ena[3..0] aclr[3..0] 36 result_1[ ] Half-DSP Block © March 2010 Altera Corporation Stratix III Device Handbook, Volume 1 5–16 Chapter 5: DSP Blocks in Stratix III Devices Operational Mode Descriptions Figure 5–9. 12-Bit Independent Multiplier Mode for Half-DSP Block clock[3..0] ena[3..0] aclr[3..0] signa signb 12 dataa_0[11..0] 24 result_0[ ] 12 Output Register Bank 12 datab_1[11..0] Pipeline Register Bank 12 dataa_1[11..0] Input Register Bank datab_0[11..0] 24 result_1[ ] 12 dataa_2[11..0] 24 result_2[ ] 12 datab_2[11..0] Half-DSP Block Stratix III Device Handbook, Volume 1 © March 2010 Altera Corporation Chapter 5: DSP Blocks in Stratix III Devices Operational Mode Descriptions 5–17 Figure 5–10. 9-Bit Independent Multiplier Mode for Half-Block clock[3..0] ena[3..0] aclr[3..0] signa signb 9 dataa_0[8..0] 18 result_0[ ] 9 datab_0[8..0] 9 dataa_1[8..0] Output Register Bank 9 dataa_2[8..0] Pipeline Register Bank 9 datab_1[8..0] Input Register Bank 18 result_1[ ] 18 result_2[ ] 9 datab_2[8..0] 9 dataa_3[8..0] 18 result_3[ ] 9 datab_3[8..0] Half-DSP Block The multiplier operands can accept signed integers, unsigned integers, or a combination of both. You can change the signa and signb signals dynamically and can be registered in the DSP block. Additionally, the multiplier inputs and result can be registered independently. You can use the pipeline registers within the DSP block to pipeline the multiplier result, increasing the performance of the DSP block. 1 © March 2010 The round and saturation logic unit is supported for the 18-bit independent multiplier mode only. Altera Corporation Stratix III Device Handbook, Volume 1 5–18 Chapter 5: DSP Blocks in Stratix III Devices Operational Mode Descriptions 36-Bit Multiplier You can efficiently construct a 36 × 36 multiplier using four 18 × 18 multipliers. This simplification fits conveniently into one half-DSP block, and is implemented in the DSP block automatically by selecting the 36 × 36 mode. Stratix III devices can have up to two 36-bit multipliers per DSP block (one 36-bit multiplier per half DSP block). The 36-bit multiplier is also under the independent multiplier mode but uses the entire half DSP block, including the dedicated hardware logic after the pipeline registers to implement the 36 × 36 bit multiplication operation. This is shown in Figure 5–11. The 36-bit multiplier is useful for applications requiring more than 18-bit precision; for example, for the mantissa multiplication portion of single precision and extended single precision floating-point arithmetic applications. Figure 5–11. 36-Bit Independent Multiplier Mode for Half-DSP Block clock[3..0] ena[3..0] aclr[3..0] signa signb dataa_0[35..18] datab_0[35..18] datab_0[17..0] + Output Register Bank dataa_0[35..18] Input Register Bank datab_0[35..18] Pipeline Register Bank + dataa_0[17..0] 72 result[ ] + dataa_0[17..0] datab_0[17..0] Half-DSP Block Stratix III Device Handbook, Volume 1 © March 2010 Altera Corporation Chapter 5: DSP Blocks in Stratix III Devices Operational Mode Descriptions 5–19 Double Multiplier The Stratix III DSP block can be configured to efficiently support an unsigned 54 × 54 bit multiplier that is required to compute the mantissa portion of an IEEE double precision floating point multiplication. A 54 × 54 bit multiplier can be built using basic 18 × 18 multipliers, shifters, and adders. In order to efficiently utilize the Stratix III DSP block's built in shifters and adders, a special Double mode (partial 54 × 54 multiplier) is available that is a slight modification to the basic 36 × 36 Multiplier mode. This is shown in Figure 5–12 and Figure 5–13. Figure 5–12. Double Mode for Half-DSP Block clock[3..0] ena[3..0] aclr[3..0] signa signb dataa_0[35..18] datab_0[35..18] datab_0[17..0] + Output Register Bank dataa_0[35..18] Input Register Bank datab_0[35..18] Pipeline Register Bank + dataa_0[17..0] 72 result[ ] + dataa_0[17..0] datab_0[17..0] Half-DSP Block © March 2010 Altera Corporation Stratix III Device Handbook, Volume 1 5–20 Chapter 5: DSP Blocks in Stratix III Devices Operational Mode Descriptions Figure 5–13. Unsigned 54 × 54 Multiplier clock[3..0] ena[3..0] aclr[3..0] "0" "0" dataa[53..36] signa signb Two Multiplier Adder Mode + 36 datab[53..36] dataa[35..18] Double Mode 55 datab[35..18] dataa[53..36] datab[17..0] dataa[35..18] Final Adder (implemented with ALUT logic) datab[53..36] dataa[53..36] Shifters and Adders datab[53..36] dataa[17..0] 108 result[ ] 36 x 36 Mode datab[35..18] dataa[35..18] Shifters and Adders datab[35..18] dataa[17..0] 72 datab[17..0] dataa[17..0] datab[17..0] Unsigned 54 X 54 Multiplier Stratix III Device Handbook, Volume 1 © March 2010 Altera Corporation Chapter 5: DSP Blocks in Stratix III Devices Operational Mode Descriptions 5–21 Two-Multiplier Adder Sum Mode In the two-multiplier adder configuration, the DSP block can implement four 18-bit Two-Multiplier Adders (2 Two-Multiplier Adders per half DSP block). You can configure the adders to take the sum or difference of two multiplier outputs. Summation or subtraction has to be selected at compile time. The Two-Multiplier Adder function is useful for applications such as FFTs, complex FIR, and IIR filters. Figure 5–14 shows the DSP block configured in the two-multiplier adder mode. The loopback mode is the other sub-feature of the two-multiplier adder mode. Figure 5–15 shows the DSP block configured in the loopback mode. This mode takes the 36-bit summation result of the two multipliers and feeds back the most significant 18-bits to the input. The lower 18-bits are discarded. You have the option to disable or zero-out the loopback data by using the dynamic zero_loopback signal. A logic 1 value on the zero_loopback signal selects the zeroed data or disables the looped back data, while a logic 0 selects the looped back data. 1 The option to use the loopback mode or the general two-multiplier adder mode must be selected at compile time. For the Two-Multiplier Adder mode, if all the inputs are full 18-bit and unsigned, the result will require 37 bits. As the output data width in Two-Multiplier Adder mode is limited to 36 bits, this 37-bit output requirement is not allowed. Any other combination that does not violate the 36-bit maximum result is permitted; for example, two 16 × 16 signed Two-Multiplier Adders is valid. The two-multiplier adder mode supports the round and saturation logic unit. You can use the pipeline registers and output registers within the DSP block to pipeline the multiplier-adder result, increasing the performance of the DSP block. © March 2010 Altera Corporation Stratix III Device Handbook, Volume 1 5–22 Chapter 5: DSP Blocks in Stratix III Devices Operational Mode Descriptions Figure 5–14. Two-Multiplier Adder Mode for Half-DSP Block signa clock[3..0] ena[3..0] aclr[3..0] signb output_round output_saturate overflow + datab_2[17..0] + dataa_3[17..0] result_0[ ] Output Register Bank dataa_2[17..0] Input Register Bank datab_1[17..0] Pipeline Register Bank dataa_1[17..0] Round/Saturate datab_0[17..0] Round/Saturate dataa_0[17..0] result_1[ ] datab_3[17..0] Half-DSP Block Stratix III Device Handbook, Volume 1 © March 2010 Altera Corporation Chapter 5: DSP Blocks in Stratix III Devices Operational Mode Descriptions 5–23 Figure 5–15. Loopback Mode for Half-DSP Block clock[3..0] ena[3..0] aclr[3..0] signa signb output_round output_saturate zero_loopback overflow Output Register Bank dataa_1[17..0] + Round/Saturate datab_0[17..0] Pipeline Register Bank loopback Input Register Bank dataa_0[17..0] result[ ] datab_1[17..0] Half-DSP Block © March 2010 Altera Corporation Stratix III Device Handbook, Volume 1 5–24 Chapter 5: DSP Blocks in Stratix III Devices Operational Mode Descriptions 18 × 18 Complex Multiply You can configure the DSP block when used in Two-Multiplier Adder mode to implement complex multipliers using the two-multiplier adder mode. A single half DSP block can implement one 18-bit complex multiplier. A complex multiplication can be written as shown in Equation 5–4. Equation 5–4. Complex Multiplication Equation (a + jb) × (c + jd) = ((a × c) – (b × d)) + j((a × d) + (b × c)) To implement this complex multiplication within the DSP block, the real part ((a × c) – (b × d)) is implemented using two multipliers feeding one subtractor block while the imaginary part ((a × d) + (b × c)) is implemented using another two multipliers feeding an adder block. Figure 5–16 shows an 18-bit complex multiplication. This mode automatically assumes all inputs are using signed numbers. Figure 5–16. Complex Multiplier Using Two-Multiplier Adder Mode clock[3..0] ena[3..0] aclr[3..0] signa signb A B − 36 (A x C) − (B x D) (Real Part) 36 (A x D) − (B x C) (Imaginary Part) + Output Register Bank Input Register Bank D Pipeline Register Bank C Half-DSP Block Stratix III Device Handbook, Volume 1 © March 2010 Altera Corporation Chapter 5: DSP Blocks in Stratix III Devices Operational Mode Descriptions 5–25 Four-Multiplier Adder In the four-multiplier adder configuration shown in Figure 5–17, the DSP block can implement two four-multiplier adders (one four-multiplier adder per half DSP block). These modes are useful for implementing one-dimensional and two-dimensional filtering applications. The four-multiplier adder is performed in two addition stages. The outputs of two of the four multipliers are initially summed in the two first-stage adder blocks. The results of these two adder blocks are then summed in the second-stage adder block to produce the final four-multiplier adder result, as shown by Equation 5–2 and Equation 5–3. Figure 5–17. Four-Multiplier Adder Mode for Half-DSP Block clock[3..0] ena[3..0] aclr[3..0] signa signb output_round output_saturate overflow dataa_0[ ] datab_0[ ] + dataa_2[ ] + Output Register Bank datab_1[ ] Round/Saturate Input Register Bank Pipeline Register Bank dataa_1[ ] result[ ] datab_2[ ] + dataa_3[ ] datab_3[ ] Half-DSP Block The four-multiplier adder mode supports the round and saturation logic unit. You can use the pipeline registers and output registers within the DSP block to pipeline the multiplier-adder result, increasing the performance of the DSP block. © March 2010 Altera Corporation Stratix III Device Handbook, Volume 1 5–26 Chapter 5: DSP Blocks in Stratix III Devices Operational Mode Descriptions High Precision Multiplier Adder In the high precision multiplier adder configuration shown in Figure 5–18, the DSP block can implement two two-multiplier adders, with multiplier precision of 18 × 36 (one two-multiplier adder per DSP half block). This mode is useful in filtering or FFT applications where a data path greater than 18 bits is required, yet 18 bits is sufficient for the coefficient precision. This can occur in cases where that data has a high dynamic range. If the coefficients are fixed, as in FFT and most filter applications, the precision of 18 bits will provide a dynamic range over 100 dB if the largest coefficient is normalized to the maximum 18-bit representation. In these situations, the data path can be up to 36 bits, allowing ample headroom to bit growth, or gain changes in the signal source without loss of precision. This mode is also extremely useful in single precision block floating point applications. The high precision multiplier adder is preformed in two stages. The 18 × 36 multiply is decomposed into two 18 × 18 multipliers. The multiplier with the LSB of the data source is performed unsigned, while the multiplier with the MSB of the data source can be signed or signed. The latter multiplier has its result left shifted by 18 bits prior to the first adder stage, creating an effective 18 × 36 multiplier. The results of these two adder blocks are then summed in the second stage adder block to produce the final result. Equation 5–5. High Precision Multiplier Adder Equation Z[54..0] = P0[53..0] + P1 [53..0] where P0 = A[17..0] ´ B[35..0] and P1 = C[17..0] ´ D[35..0] Stratix III Device Handbook, Volume 1 © March 2010 Altera Corporation Chapter 5: DSP Blocks in Stratix III Devices Operational Mode Descriptions 5–27 Figure 5–18. Four-Multiplier Adder Mode for Half-DSP Block signa signb clock[3..0] ena[3..0] aclr[3..0] overflow dataA[17..0] dataB[17..0] Output Register Bank dataC[17..0]
EP3SE80F780C3N 价格&库存

很抱歉,暂时无法提供与“EP3SE80F780C3N”相匹配的价格&库存,您可以联系我们找货

免费人工找货