SOPC Builder User Guide
Contents
1. Introduction to SOPC Builder
Architecture of SOPC Builder Systems
SOPC Builder Modules
Example System
Available Components
Custom Components
Third-Party Components
Functions of SOPC Builder
Defining and Generating the System Hardware
Creating a Memory Map for Software Development
Creating a Simulation Model and Test Bench
SOPC Builder Design Flow
Visualization of SOPC Builder Systems
Operating System Support
Talkback Support
2. System Interconnect Fabric for Memory-Mapped Interfaces
High-Level Description
Fundamentals of Implementation
Functions of System Interconnect Fabric
Address Decoding
Datapath Multiplexing
Wait State Insertion
Pipelined Read Transfers
Dynamic Bus Sizing and Native Address Alignment
Dynamic Bus Sizing
Wider Master
Narrower Master
Native Address Alignment
Arbitration for Multimaster Systems
Traditional Shared Bus Architectures
Slave-Side Arbitration
Arbiter Details
Arbitration Rules
Setting Arbitration Parameters in SOPC Builder
Fairness-Based Shares
Round-Robin Scheduling
Burst Transfers
Burst Adapters
Interrupts
Individual Requests IRQ Scheme
Priority Encoded Interrupt Scheme
Assigning IRQs in SOPC Builder
Reset Distribution
3. System Interconnect Fabric for Streaming Interfaces
High-Level Description
Avalon Streaming and Avalon Memory-Mapped Interfaces
Adapters
Data Format Adapter
Timing Adapter
Channel Adapter
Error Adapter
Multiplexer Examples
Example to Double Clock Frequency
Example to Double Data Width and Maintain Frequency
Example to Boost the Frequency
4. SOPC Builder Components
Component Providers
Component Hardware Structure
Component Instances Inside the SOPC Builder System
Static HDL Components
Generated HDL Components
Composed HDL Components
Components Outside the SOPC Builder System
Exported Connection Points—Conduit Interfaces
SOPC Builder Component Search Path
Installing Additional Components
Copy to the IP Root Directory
Reference Components in an .ipx File
ip–catalog
ip-make-ipx
Understanding IPX File Syntax
Upgrading from Earlier Versions
Component Structure
Component Description File (_hw.tcl)
Component File Organization
Component Versioning
Classic Components in SOPC Builder
5. Using SOPC Builder with the Quartus II Software
Quartus II IP File
Quartus II Incremental Compilation
TimeQuest Timing Analyzer
Analyzing PLLs
Analyzing Slow Asynchronous I/O Paths
Analyzing Single Data Rate SDRAM and SSRAM
Analyzing Tristate Bridges and Asynchronous Devices
Analyzing DDR and DDR2 Memories
6. Component Editor
Component Hardware Structure
Starting the Component Editor
HDL Files Tab
Bottom-Up Design
Top-Down Design
Signals Tab
Naming Signals for Automatic Type and Interface Recognition
Templates for Interfaces to External Logic
Interfaces Tab
HDL Parameters Tab
Library Info
Saving a Component
Editing a Component
Software Assignments
Component Parameterization
7. Component Interface Tcl Reference
Information in a Hardware Component Description File
Component Phases
Writing a Hardware Component Description File
Providing Basic Information
Declaring Parameters
User Parameters
Derived Parameters
SYSTEM_INFO Parameters
Declaring Interfaces
Adding Files and Guiding Generation
Default Behaviors
Validation Phase Behavior
Elaboration Phase Behavior
Automatic Port Widths
Parameterized Parameter Widths
Generation Phase Behavior
Edit Phase Behavior
Overriding Default Behaviors
Validation Callback
Elaboration Callback
Generation Callback
Editor Callback
Hardware Tcl Command Reference
Module Definition
package
get_module_properties
get_module_property
set_module_property
get_module_ports
get_module_assignments
get_module_assignment
set_module_assignment
get_files
add_file
add_documentation_link
get_file_properties
get_file_property
set_file_property
send_message
Parameters
add_parameter
get_parameters
get_parameter_properties
get_parameter_property
set_parameter_property
get_parameter_value
set_parameter_value
decode_address_map
Display Items
add_display_item
GET_DISPLAY_ITEMS
GET_DISPLAY_ITEM_properties
GET_DISPLAY_ITEm_property
sET_DISPLAY_ITEm_property
Interfaces and Ports
add_interface
get_interfaces
get_interface_properties
get_interface_property
set_interface_property
add_interface_port
get_interface_ports
get_port_properties
get_port_property
set_port_property
get_interface_assignments
get_interface_assignment
set_interface_assignment
Generation
get_generation_properties
get_generation_property
Deprecated Commands and Properties
8. Archiving SOPC Builder Projects
Limitations
Required Files
9. SOPC Builder Memory Subsystem Development Walkthrough
Example Design
Example Design Structure
Example Design Starting Point
Hardware and Software Requirements
Design Flow
Component-Level Design in SOPC Builder
SOPC Builder System-Level Design
Simulation
Quartus II Project-Level Design
Board-Level Design
Simulation Considerations
Generic Memory Models
Vendor-Specific Memory Models
On-Chip RAM and ROM
Component-Level Design for On-Chip Memory
Memory Type
Size
Read Latency
Non-Default Memory Initialization
Enable In-System Memory Content Editor Feature
SOPC Builder System-Level Design for On-Chip Memory
Simulation for On-Chip Memory
Quartus II Project-Level Design for On-Chip Memory
Board-Level Design for On-Chip Memory
Example Design with On-Chip Memory
EPCS Serial Configuration Device
Component-Level Design for an EPCS Device
SOPC Builder System-Level Design for an EPCS Device
Simulation for an EPCS Device
Quartus II Project-Level Design for an EPCS Device
Board-Level Design for an EPCS Device
Example Design with an EPCS Device
SDR SDRAM
Component-Level Design for SDRAM
SOPC Builder System-Level Design for SDRAM
Simulation for SDRAM
Quartus II Project-Level Design for SDRAM
Connecting and Assigning the SDRAM-Related Pins
Accommodating Clock Skew
Board-Level Design for SDRAM
Example Design with SDR SDRAM
DDR SDRAM
DDR2 SDRAM
Off-Chip SRAM and Flash Memory
Component-Level Design for SRAM and Flash Memory
Avalon-MM Tristate Bridge
Flash Memory
SRAM
SOPC Builder System-Level Design for SRAM and Flash Memory
Simulation for SRAM and Flash Memory
Quartus II Project-Level Design for SRAM and Flash Memory
Board-Level Design for SRAM and Flash Memory
Aligning the Least-Significant Address Bits
Aligning the Most-Significant Address Bits
Example Design with SRAM and Flash Memory
Adding the Avalon-MM Tristate Bridge
Adding the Flash Memory Interface
Adding the SRAM Interface
SOPC Builder System Contents Tab
Connecting and Assigning Pins in the Quartus II Project
Connecting FPGA Pins to Devices on the Board
10. SOPC Builder Component Development Walkthrough
SOPC Builder Components and the Component Editor
Prerequisites
Hardware and Software Requirements
Component Development Flow
Typical Design Steps
Hardware Design
Design Example: Checksum Hardware Accelerator
Software Design
Verifying the Component
System Console
System-Level Verification
Sharing Components
System Information Files (.sopcinfo)
11. Avalon Memory-Mapped Bridges
Structure of a Bridge
Reasons for Using a Bridge
Address Mapping for Systems with Avalon-MM Bridges
Tools for Visualizing the Address Map
Differences between Avalon-MM Bridges and Avalon-MM Tristate Bridges
Avalon-MM Pipeline Bridge
Component Overview
Functional Description
Interfaces
Pipeline Stages and Effects on Latency
Burst Support
Example System with Avalon-MM Pipeline Bridges
Clock Crossing Bridge
Choosing Clock Crossing Methodology
Functional Description
Interfaces
Clock Crossing Bridge and FIFOs
Burst Support
Example System with Avalon-MM Clock-Crossing Bridges
Instantiating the Avalon-MM Clock-Crossing Bridge in SOPC Builder
Clock Domain Crossing Logic
Description of Clock Domain Adapter
Location of Clock Domain Adapter
Duration of Transfers Crossing Clock Domains
Implementing Multiple Clock Domains in SOPC Builder
Avalon-MM DDR Memory Half-Rate Bridge
Resource Usage and Performance
Functional Description
Instantiating the Core in SOPC Builder
Example System
Device Support
Hardware Simulation Considerations
Software Programming Model
12. Avalon Streaming Interconnect Components
Interconnect Component Usage
Address Mapping
Timing Adapter
Resource Usage and Performance
Instantiating the Timing Adapter in SOPC Builder
Data Format Adapter
Resource Usage and Performance
Instantiating the Data Format Adapter in SOPC Builder
Channel Adapter
Resource Usage and Performance
Instantiating the Channel Adapter in SOPC Builder
Error Adapter
Instantiating the Error Adapter in SOPC Builder
Installation and Licensing
Hardware Simulation Considerations
Software Programming Model
Additional Information
Document Revision History
How to Contact Altera
Typographic Conventions