• Guides
  • Videos
  • Publications
  • API
  • Github
  • Community
  • Release Notes
  • Plugins
Installing Origen
  • Introduction
  • How to Install
  • How to Install (Windows)
  • Company Customization
  • Understanding Gems
  • Invoking Considerations
  • Workspace Management
Getting Started with Origen
  • Core concepts
  • Creating a New App
  • Directory Structure
  • The Initial Commit
  • Creating New Files
  • Understanding Blocks
  • Application Architecture
Runtime Environment
  • Introduction
  • Mode
  • Environment
  • Target
  • Production Targets
  • Global Setup
  • Load Order
  • Programming
Models
  • Introduction
  • Naming
  • Definition & Hierarchy
  • Adding Attributes
  • Versioning
  • Bugs & Features
  • Package, Mode & Configuration
  • Registers
  • Pins
  • Power Domains
  • Hardware Attributes
  • Parameters
  • Specifications
  • Fuses
  • Generic Components
  • Creating Your Own Components
Compiler (Views)
  • Introduction
  • Creating Templates
  • Using Sub-Templates
  • Helpers
  • Running The Compiler
  • Inline Compiler
Controllers
  • Introduction
  • Shadow Controllers
  • Direct Controllers
Pattern Generator
  • Introduction
  • Creating Patterns
  • Pins
  • Timing and Waiting
  • Registers
  • Documenting Patterns
  • Generating by Name
  • Common API
  • J750 API
  • V93K API
  • UltraFlex API
  • STIL & Other Formats
  • Custom Testers
  • Running The PatGen
  • Concurrent Patterns
Test Program Generator
  • Introduction
  • Philosophy
  • Creating Flows
  • Managing Flow Control
  • Creating an Interface
  • Additional Resources
  • Dynamic Custom Code
  • Characterization API
  • J750 API
  • V93K Common API
  • V93K SMT7 API
  • V93K SMT8 API
  • UltraFLEX API
  • Documenting the Program
  • Creating Custom Testers
  • Running the ProgGen
Decompilation
  • Overview & Example
  • Decompiling, Adding Pins, & Executing
  • Working with Decompiled Patterns
  • Platform Specifics
Simulation
  • Introduction
  • How It Works
  • Compiling the DUT
  • AMS Support
  • Environment Setup
  • Application Setup
  • Simulating Patterns
  • Simulating Flows
  • Direct DUT Manipulation
  • Simulator Log Output
  • Artifacts
  • Debugging
Documentation Generator
  • Introduction
  • Markdown
  • Linking
  • Styling
  • Testing
  • API Generation
  • Deploying
Plugins
  • Introduction
  • Using a Plugin
  • Creating a Plugin
  • Current & Default Plugins
  • Dev Environment
  • Dev Considerations
  • Paths & Origen.root
  • Config & Origen.app
Miscellaneous
  • Revision Control
  • Origen Remotes
  • Lint Testing
  • Session Store
  • LSF API
  • Users, Emails & Maillists
  • Utilities & Helpers
  • Ruby Extensions
  • Logger
  • Adding Commands
  • Overriding Commands
  • Callbacks
  • Application Callbacks
  • Miscellaneous Topics
Advanced Topics
  • Introduction
  • Invocation Customization
  • Custom App Generators

Getting Started with Origen

Understanding Blocks


The app/blocks/ Directory

A “block” contains all of the Origen infrastructure to model and control a specific piece of silicon. Blocks can instantiate other blocks as sub-blocks, and therefore it is common to have a block that represents the top-level device, and then other blocks to represent the individual IPs that it contains.

├── app/    
    ├── blocks/        
        ├── dut/          
            ├── derivatives/        
            │   ├── falcon/  
            │   │   ├── derivatives/       
            │   │   ├── attributes.rb
            │   │   ├── controller.rb
            │   │   ├── model.rb
            │   │   ├── parameters.rb
            │   │   ├── pins.rb
            │   │   ├── registers.rb    
            │   │   ├── sub_blocks.rb    
            │   │   └── timesets.rb
            │   └── eagle/
            │       ├── derivatives/              
            │       ├── attributes.rb
            │       ├── controller.rb
            │       ├── model.rb
            │       ├── parameters.rb
            │       ├── pins.rb
            │       ├── registers.rb    
            │       ├── sub_blocks.rb    
            │       └── timesets.rb
            ├── attributes.rb
            ├── controller.rb
            ├── model.rb
            ├── parameters.rb
            ├── pins.rb
            ├── registers.rb    
            ├── sub_blocks.rb    
            └── timesets.rb

Comments

Generated with the Origen Semiconductor Developer's Kit

Origen is released under the terms of the MIT license