design cycle involving simulation, synthesis

Similar documents
Atmel-Synario CPLD/PLD Design Software ATDS1100PC ATDS1120PC ATDS1130PC ATDS1140PC. Features. Description

When is Data Susceptible to Corruption

OrCAD Support for Atmel PLDs. Application Note. OrCAD Support for Atmel PLDs. Overview

Parallel EEPROM Die Products. Die Products. Features. Description. Testing

AT40K FPGA IP Core AT40K-FFT. Features. Description

Secure Microcontrollers for Smart Cards. AT90SC Summary

Preparations. Creating a New Project

AT17A Series FPGA Configuration EEPROM Memory. Application Note. FPGAs. AT17A Series Conversions from Altera FPGA Serial Configuration Memories

Interrupt Controlled UART

AT94K Series Field Programmable System Level Integrated Circuit. Application Note. FPSLIC Baud Rate Generator

DatasheetDirect.com. Visit to get your free datasheets. This datasheet has been downloaded by

Atmel FPGA Integrated Development System (IDS)

Product Description. Application Note. AVR360: XmodemCRC Receive Utility for the AVR. Features. Theory of Operation. Introduction

a Serial Peripheral Interace (SPI). Embedded RISC Microcontroller Core Peripheral

2-wire Serial EEPROM AT24C512. Preliminary. 2-Wire Serial EEPROM 512K (65,536 x 8) Features. Description. Pin Configurations.

2-wire Serial EEPROM AT24C01A AT24C02 AT24C04 AT24C08 AT24C16

System Designer. Programmable SLI AT94K/AT94S Series. Features. Description

EPROM. Application Note CMOS EPROM. Interfacing Atmel LV/BV EPROMs on a Mixed 3-Volt/5- Volt Data Bus

System Designer. Programmable SLI AT94K/AT94S Series. Features. Description

Battery-Voltage. 16K (2K x 8) Parallel EEPROMs AT28BV16. Features. Description. Pin Configurations

hex file. The example described in this application note is written for the AT94K using the FPSLIC Starter Kit. Creating a New Project

Atmel FPGA Integrated Development System (IDS)

3-wire Serial EEPROMs AT93C46 AT93C56 AT93C57 AT93C66

1-Megabit (128K x 8) Low Voltage Paged Parallel EEPROMs

2-wire Serial EEPROM AT24C512

AT17 Series FPGA. Configuration Memory. Application Note. In-System Programming Circuits for AT17 Series Configurators with Atmel and Xilinx FPGAs

2-wire Serial EEPROMs AT24C128 AT24C256. Features. Description. Pin Configurations. 128K (16,384 x 8) 256K (32,768 x 8)

TSC695. Application Note. Annulled Cycle Management on the TSC695. References

2-wire Serial EEPROM Smart Card Modules AT24C32SC AT24C64SC

FPGA Configuration EEPROM Memory AT17C020A AT17LV020A

FPGA Configuration EEPROM Memory. Application Note. Programming Atmel s EEPROMs: AT17LV020(A) vs. AT17LV002(A) Introduction.

FPGA Configurator Programming Kit (Enhanced) ATDH2200E. Features. Description

8-bit Microcontroller. Application Note. AVR134: Real-Time Clock (RTC) using the Asynchronous Timer. Features. Theory of Operation.

256K (32K x 8) 3-volt Only Flash Memory

8051 Microcontrollers. Application Note. Migration from AT89C5131 & AT89C5131A-L to AT89C5131A-M

ATICE10... User Guide

Programmable SLI AT40K AT40KAL AT94K. Application Note. Implementing a Single-coefficient Multiplier

8-bit RISC Microcontroller. Application Note. AVR 305: Half Duplex Compact Software UART

Battery-Voltage. 256K (32K x 8) Parallel EEPROMs AT28BV256. Features. Description. Pin Configurations

AT17(A) Series FPGA Configuration Memory. Application Note

8-bit Microcontroller. Application Note. AVR031: Getting Started with ImageCraft C for AVR

DIP Top View VCC WE A17 NC A16 A15 A12 A14 A13 A8 A9 A11 A7 A6 A5 A4 A3 A2 A1 A0 I/O0 A10 CE I/O7 I/O6 I/O5 I/O4 I/O3 I/O1 I/O2 GND.

AT91 ARM Thumb Microcontrollers. Application Note. AT91M55800A Clock Switching Considerations using Advanced Power Management Controller.

FPGA Configuration EEPROM Memory AT17C65 AT17LV65 AT17C128 AT17LV128 AT17C256 AT17LV256

Section 1 ATAVRAUTOEK1 Getting Started

4-megabit (512K x 8) Single 2.7-volt Battery-Voltage Flash Memory AT49BV040 AT49BV040T AT49LV040 AT49LV040T

Bluetooth General Information White Paper

64K (8K x 8) Low-voltage Parallel EEPROM with Page Write and Software Data Protection AT28LV64B. 3-Volt, 64K E 2 PROM with Data Protection

AVR32 UC3 Software Framework... User Manual

AT17F Series. Application Note. Programming Circuits for AT17F Series Configurators with Xilinx FPGAs. 1. Introduction

MP3 Player Reference Design Based on AT89C51SND1 Microcontroller... User Guide

4-Megabit (512K x 8) 5-volt Only 256-Byte Sector Flash Memory AT29C040A. Features. Description. Pin Configurations

8-bit Microcontroller. Application Note. AVR030: Getting Started with C for AVR

Application Note Microcontrollers. C Flash Drivers for T89C51RC/RB/IC2 and AT89C51RC/RB/IC2 for Keil Compilers

AT89C5131 Starter Kit... Software User Guide

MARC4. Application Note. Hints and Tips for Hard- and Software Developments with MARC4 Microcontrollers

Programming Flash Devices

1-Megabit (128K x 8) 5-volt Only Flash Memory AT29C010A. Features. Description. Pin Configurations

Migration From AT89C51SND1C to AT83C51SDN1C. Application Note. MP3 Microcontrollers

AVR32752: Using the AVR32 UC3 Static Memory Controller. 32-bit Microcontrollers. Application Note. Features. 1 Introduction

Rad Hard FPGA. AT40KEL-DK Design Kit Content. Description. Kit Content. Reference Material. Support

UART. Embedded RISC Microcontroller Core Peripheral

FPGA-based FIR Filter. Application Note. FPGA-based FIR Filter Using Bit-Serial Digital Signal Processing. Introduction

CAN Microcontrollers. Application Note. Migrating from T89C51CC01 to AT89C51CC03. Feature Comparison

SPI Serial EEPROMs AT25010 AT25020 AT SPI, 1K Serial E 2 PROM. Features. Description. Pin Configurations 8-Pin PDIP. 1K (128 x 8) 2K (256 x 8)

SOIC VCC RESET A11 A10 A9 A8 A7 A6 A5 A4 A12 A13 A14 A15 A16 A17 A18 A19 NC NC NC NC I/O0 RDY/BUSY I/O1 I/O7 I/O6 I/O5 I/O4 VCC I/O2 I/O3 GND GND

AT89STK-09 Starter Kit for AT83C26... User Guide

1-megabit (64K x 16) 5-volt Only Flash Memory AT49F1024 AT49F1025

shown in Figure 3. An example where the command 0x35 is sent to system 5 is shown in Figure 4. Figure 2. RC5 Frame Format Figure 3.

8-Megabit 5-volt Only Serial DataFlash AT45D081. Features. Description

8-bit Microcontroller. Application Note. AVR201: Using the AVR Hardware Multiplier

ATAVRAUTO User Guide

CAN, 80C51, AVR, Microcontroller. Application Note

8-bit Microcontroller. Application Note. AVR033: Getting Started with the CodeVisionAVR C Compiler

AT91 ARM Thumb Microcontrollers. Application Note. AT91 Host Flash Loader. 1. Package Contents. 2. Definition of Terms. 3.

DIP Top View A18 A16 A15 A12 A7 A6 A5 A4 A3 A2 A1 A0 I/O0 I/O1 I/O2 GND VCC A17 A14 A13 A8 A9 A11 A10 I/O7 I/O6 I/O5 I/O4 I/O3 VCC A18 A17

TSSOP CLK/IN IN IN IN IN IN IN IN IN IN IN GND VCC IN I/O I/O I/O I/O I/O I/O I/O I/O IN OE/IN CLK/IN 1 VCC

Application Note. Microcontrollers. Using Keil FlashMon Emulator with AT89C51CC01/03 AT89C51CC01/ Summary. 2. Background overview

1-megabit (64K x 16) 3-volt Only Flash Memory AT49LV1024 AT49LV1025

Two-wire Serial EEPROM Smart Card Modules 128K (16,384 x 8) 256 (32,768 x 8) AT24C128SC AT24C256SC. Features. Description VCC NC

AVR1303: Use and configuration of IR communication module. 8-bit Microcontrollers. Application Note. Features. 1 Introduction

Embedded RISC Microcontroller Core ARM7TDMI

AT89ISP Programmer Cable Introduction AT89ISP Programmer Cable Parallel Port Settings Application Note AT89ISP Software AT89ISP Cable polarized

ATAVRAUTO User Guide

a clock signal and a bi-directional data signal (SCL, SDA)

Two-wire Serial EEPROM Smart Card Modules 1K (128 x 8) 2K (256 x 8) 4K (512 x 8) 8K (1024 x 8) 16K (2048 x 8)

8-bit Microcontroller. Application Note. AVR033: Getting Started with the CodeVisionAVR C Compiler

Interfacing the internal serial EEPROM

Trusted Platform Module AT97SC3203S. SMBus Two-Wire Interface. Summary

8-bit Microcontroller. Application Note. AVR320: Software SPI Master

4-megabit (512K x 8) Single 2.7-volt Battery-Voltage Flash Memory AT49BV040 AT49LV040

AT45DB Megabit 2.7-Volt Only Serial DataFlash AT45DB041. Features. Description. Pin Configurations

FPGA Configuration EEPROM Memory AT17C65A AT17LV65A AT17C128A AT17LV128A AT17C256A AT17LV256A

SPI Serial EEPROMs AT25010 AT25020 AT SPI, 1K Serial E 2 PROM

3-Wire Serial EEPROM AT93C46C

AVR -based Bridge between Full-speed USB and Fast Serial Asynchronous Interfaces AT76C711

P_D_OUT[31:0] SPI_INT SPI_MOSI_OUT SPI_MOSI_OEN

Highperformance EE PLD ATF16V8B ATF16V8BQ ATF16V8BQL. Features. Block Diagram. All Pinouts Top View

2-wire Serial EEPROMs AT24C128 AT24C256

Serial DataFlash. Application Note. Using Atmel s Serial DataFlash. Introduction (AN-4)

Transcription:

HDLPlanner : Design Development Environment for HDL-based FPGA Designs Abstract Rapid prototyping of designs using FPGAs requires HDL-based design entry which leverages upon highly parameterized components in conjunction with an ability to translate these components to layouts. Designs that are developed with layout related considerations more often tend to become technology specific. This has a direct consequence in migrating designs to ASICs and may require a design to go through an additional design cycle. HDLPlanner solves this problem by providing an environment for creating technology independent HDL designs, which when translated to Atmel FPGAs, are guaranteed to produce performance delivering layouts. The primary contribution of the HDLPlanner is its ability to address layout considerations up front in the design process without compromising the technology independence of the design. In doing so, the planner partitions the design creation process between itself and the synthesis software in the following way. It manages layout related considerations by itself and delegates the task of random logic optimization to synthesis software. The planner is tightly integrated with MGL Parameterized Layout Synthesis Software [1] which produces highly efficient layouts of the components. Motivation Hardware description languages (HDL) are increasingly replacing schematic oriented design entry methods because they offer a very short and efficient design cycle involving simulation, synthesis and testing. From a synthesis perspective, the most appealing benefits of using HDLs are the ability to parameterize modules and the technology independent manner in which designs can be created. Module parameterization encourages reusing existing design effort and offers a convenient and powerful method for customizing modules in the environment in which they are used. Another important advantage of using anhdl centric approach is to leverage upon the design optimization support that is built into all HDL tools. This optimization support allows rapid searching for a design solution that meets user s constraints in an automated, correct by construction fashion. All these benefits make HDLs a preferred choice for designers involved in rapidly prototyping digital systems using FPGAs. HDL centric approach, on the other hand, can result in severe penalty if the synthesis and optimization support that is built into it is used without giving a due consideration to underlying technology. This is particularly true in the case of FPGAs because synthesis tools cannot incorporate FPGA technology specific issues such as logic cell, RAMs, tri-state resources, clock and reset scheme etc. during synthesis, to produce good quality designs (these issues are dealt in the later part of this section). The outcome can be a large netlist which may not be placed and routed in an optimum fashion. Some recent improvements in synthesis technology have partially overcome these shortcomings. A notable improve- Design Development for HDL-based FPGA Designs Application Note Rev. 1444A 10/99 1

ment called operator inferencing, identifies operator functions from HDL expressions and links them to their preferred layout implementation instead of constructing their gate level representations. In many cases, however, operator inferencing does not guarantee optimal results, a case for which is given in Figure 1. Figure 1. (a) VHDL template of registered adder. (b) Optimized implementation and (c) preferred implementation. PROCESS (CLOCK, RESET) BEGIN IF (RESET = 'B0) THEN SUM <= "00000000"; ELSE IF (CLOCK = '1' AND CLOCK EVENT) SUM <= A + B; END IF; END PROCESS; A B REGISTER BANK A B REGISTER BANK (A) (B) (C) The operator inferencing has one more limitation- only operators that are supported in the language can be inferred. Simple building blocks such as counters and decoders cannot be inferenced and must be explicitly used in the design. Explicit references to cells can cause design portability problem. In addition to the shortcomings in synthesis technology as discussed above, issues that are specific to FPGA technology and limitations that are inherent to HDL languages and synthesis systems are discussed below. FPGA Technology Specific Considerations Synthesis tools perform an architecture specific optimization, without giving due consideration to the technology contents of the FPGA device (1). Note: 1. The term FGPA architecture is broadly used to identify architecture of the basic logic cell in it. What is really desired from the performance standpoint is to accommodate technology specific resources in the design synthesis. Examples of such resources are clock and reset resources, tri-state resources, wired logic resources, I/O buffers, on-chip configurable memory resources and their address decoding circuitry etc. A cost driven optimization of these resources is important to uncover optimum performance from an underlying technology. We are not aware of any synthesis system which can fully understand and utilize technology specific information to perform constraint driven synthesis. The limiting factors described above leave designers very limited options for maintaining technology independence and a search for an optimal solution often requires manual intervention in the design process. Limitations in Languages and Software Tools Some limitations in HDLs, as described below can have a significant bearing on the quality of the synthesis results. An example of these limitations is the inability to parameterize design modules with respect to clock, set and reset schemes (i.e., according to active edges and polarities, respectively). In the absence of this capability, re-using modules can be a difficulty to achieve. In some cases, lack of the provision is also likely to create designs which may indiscriminately use limited numbers of clock and reset resources available on FPGAs. Besides the problem outlined above, CAE vendors do not seem to have a consistent method for supporting parameterization in Verilog. For example Synopsys recommends using the parameter construct and Exemplar recommends using the defparam construct to define the parameters. This difference can cause design migration problems between synthesis platforms. Proposed Solution Atmel Corporation has developed a design planning environment called HDLPlanner that encourages users to follow meet-in-the-middle methodology for creating HDL designs. HDLPlanner can be considered as a design manager tool which enforces design partitioning and generates instructions to synthesis and placement software towards an objective of creating highly regular and efficient implementations. It does so by encouraging designers to partition the system into a set of basic building blocks. It 2 FPGAs

FPGAs then provides highly parameterized behavioral HDL descriptions for them and a seamless link to generating layout descriptions via MGL Parameterized Layout Synthesis software. MGL generates layouts that are highly optimized to architecture and technology. In this fashion, layout-specific issues can be addressed much earlier in the design process in a technology independent fashion, resulting in a simplified and shortened design cycle. HDLPlanner has special code generation support with which modules can be parameterized with respect to clock and reset pins. It is also tightly integrated with the target synthesis tool and knows the inner workings of each tool such as the parameterization and elaboration mechanisms. The remainder of this paper is organized as follows. Section II describes the Graphical User Interfaces of HDLPlanner. Section III describes the central ideas in planning HDL designs using the planner. Section IV presents the features and benefits of using HDLPlanner. Section V discuss future work and presents the conclusion. HDLPlanner: An Environment for Design Planning The HDLPlanner Graphical User Interface is described briefly. Figure 2. HDLPlanner Graphical User Interface DESIGN EDITOR: The built-in editor contains buttons for project creation, saving and supports basic text editing operations such as cut, copy, paste, search, find etc. These buttons are located on the tool bar. MODULE DEFINITION AND INSTANTIATION PANES: Special list panes and buttons are provided to select, define and instantiate modules (Refer to Figure 2). A fully parameterized behavioral description of the module can be inserted into text view by pressing the Define button. The Instantiate button can be used to instantiate a component. The instantiation statement conforms to the parameterization mechanism recommended by the synthesis software being used. 3

Figure 3. Options window for parameterizing designs for clock and reset polarities. OPTIONS: The Options user interface (UI) in Figure 3 can be invoked by selecting the Tools > Options sub menu. The important options are listed below. Clock trigger: Specify clock trigger for the component being defined/instantiated. Clock signal: Specify global signals to be used in buffer insertion. Set or reset polarity: Specify polarity of the set or reset pin for the component being defined/instantiated. Set or reset: Specify if component has asynchronous set or reset. Synthesis script: Specify the name of the synthesis script generated automatically by HDLPlanner. Top level design: Specify the name of the top level design. It is used in the synthesis script to set the top level design name. VHDL package name: Specify the name of the package in which all defined components will be declared. This package is saved in the specified file name. This option is specific to VHDL only. LAYOUT SYNTHESIS: A menu button Tools > Invoke Macro Generators is provided to generate FPGA layouts for all components that are used in the design. Refer to Figure 4 for the Macro Generator UI. In this UI, users have the opportunity to specify floorplan-specific parameters such as pitch and folding options with which a layout is to be generated. 4 FPGAs

FPGAs Figure 4. A sample of a macro generator user interface. HDLPlanner: Planning Designs at HDL Level In FPGA technology, design planning contains the following key elements. 1. SYSTEM PARTITIONING: Identifying basic components contained in the system 2. CLOCK AND RESET SCHEME: Deciding upon a preferred clock and reset scheme for the design 3. COMPONENT GENERATION AT HDL LEVEL: Defining components (i.e. generating their behavioral descriptions) consistent with the set / reset scheme 4. COMPOSING THE DESIGN: Construct the top level design by instantiating components in step 3 5. LAYOUT SYNTHESIS: Generate hard layouts for the components by supplying layout specific parameters such as pitch, layout folding, and layout optimization options which create speed critical or area critical layouts. This process is illustrated in Figure 5. 5

Figure 5. Design Planning using HDLPlanner HDL PLANNER SCOPE PARTITION DESIGN INTO SET OF MODULES DEFINE AND INSTANTIATE MODULES ESTIMATE DESIGN RESOURCES NO IS PARTITIONING ACCEPTABLE? YES LIBRARY GENERATE MODULE LAYOUTS GENERATE SYNTHESIS SCRIPT SYNTHESIZE THE DESIGN INTO A NETLIST CONSTRAINTS PERFORM PLACEMENT AND ROUTING Summary The benefits and features of the HDLPlanner software are summarized below. Design Entry Specific DESIGN EDITING: HDLPlanner has an editing environment for planning, entering and maintaining HDL descriptions. It has a comprehensive set of pre-verified templates of complex HDL constructs that can be used to speed up design entry. TECHNOLOGY INDEPENDENT DESIGN ENTRY: Designs created in HDLPlanner are completely technology independent, conform to vendor laid out synthesis guidelines, and contain a complete simulation model within them (contains no black boxes). DESIGN REUSE: HDLPlanner has a User Interface to easily define and instantiate pre-verified functional modules. These modules can be parameterized for bit-widths and also clock and reset schemes. Technology Specific LINKS TO LAYOUTS: The layout synthesis software interface accessed from HDLPlanner translates functional modules to layouts that are highly optimized for the FPGA architecture and technology. 6 FPGAs

FPGAs MANAGEMENT OF CLOCKING AND RESET RESOURCES: HDLPlanner simplifies the task of managing of clock and set/reset resources on the FPGA. Parameterization around clock and reset resources is not supported by any of the HDL languages. Synthesis Tools Specific OVERCOMES LIMITATIONS IN SYNTHESIS TECHNOL- OGY: HDLPlanner partitions the task of design optimization between itself and the synthesis software, allowing each to focus on the job it can do the best. TIGHTLY INTEGRATED WITH SYNTHESIS TOOLS: The synthesis script generated by HDLPlanner contains toolspecific directives that are useful for efficient synthesis. Productivity Specific PERFORMANCE ESTIMATION: On line reports and statistics of modules aid in arriving at reasonable performance estimates quickly. SHORTER DESIGN CYCLE: Pre-verified, re-usable components and automatic template generation cuts down the length of the design cycle to a minimum. Software Architecture Specific COMPLETELY TRANSPARENT: HDLPlanner is an open system. Users can integrate their components and use them in their design process as if they were shipped from Atmel. KNOWLEDGE ARCHIVAL: HDLPanner has an open help system, allowing users to document their synthesis experiences and refer to them or share them with others at a later date. Future Work and Conclusion Many enhancements are being developed for the HDL- Planner. There is a need to support behavioral timing analysis for precise timing estimates. Support for generating state machine descriptions and generating VHDL/Verilog test benches are also planned in future releases. Here we have presented an HDL planning software, HDL- Planner. This software can be used for creating technology independent designs. The software has many key features that help in reducing design development cycle time and produce efficient designs for the given target technology. Presently only Atmel s AT6000 and AT40K FPGA families are supported. 7

Atmel Headquarters Corporate Headquarters 2325 Orchard Parkway San Jose, CA 95131 TEL (408) 441-0311 FAX (408) 487-2600 Europe Atmel U.K., Ltd. Coliseum Business Centre Riverside Way Camberley, Surrey GU15 3YL England TEL (44) 1276-686-677 FAX (44) 1276-686-697 Asia Atmel Asia, Ltd. Room 1219 Chinachem Golden Plaza 77 Mody Road Tsimhatsui East Kowloon Hong Kong TEL (852) 2721-9778 FAX (852) 2722-1369 Japan Atmel Japan K.K. 9F, Tonetsu Shinkawa Bldg. 1-24-8 Shinkawa Chuo-ku, Tokyo 104-0033 Japan TEL (81) 3-3523-3551 FAX (81) 3-3523-7581 Atmel Operations Atmel Colorado Springs 1150 E. Cheyenne Mtn. Blvd. Colorado Springs, CO 80906 TEL (719) 576-3300 FAX (719) 540-1759 Atmel Rousset Zone Industrielle 13106 Rousset Cedex France TEL (33) 4-4253-6000 FAX (33) 4-4253-6001 Fax-on-Demand North America: 1-(800) 292-8635 International: 1-(408) 441-0732 e-mail literature@atmel.com Web Site http://www.atmel.com BBS 1-(408) 436-4309 Atmel Corporation 1999. Atmel Corporation makes no warranty for the use of its products, other than those expressly contained in the Company s standard warranty which is detailed in Atmel s Terms and Conditions located on the Company s web site. The Company assumes no responsibility for any errors which may appear in this document, reserves the right to change devices or specifications detailed herein at any time without notice, and does not make any commitment to update the information contained herein. No licenses to patents or other intellectual property of Atmel are granted by the Company in connection with the sale of Atmel products, expressly or by implication. Atmel s products are not authorized for use as critical components in life support devices or systems. Marks bearing and/or are registered trademarks and trademarks of Atmel Corporation. Terms and product names in this document may be trademarks of others. Printed on recycled paper. 1444A 10/99/xM