• 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

Runtime Environment

Global Setup


Origen re-loads the runtime environment immediately before every pattern, test program or compile job. Therefore both the target and environment files can be used to set some global state that will later be applied to all patterns or similar.

Note that you cannot actually generate any output from the target or environment, that will only happen from within the pattern, program or template source files. However what you can do is setup some initial state within your models to influence what will be generated by the source files later.

In other words any changes that you make to the models after instantiating them will persist into the remainder of the generation flow. It is not recommended to put a lot of logic into target files, but when used responsibly this can be a useful addition to your tool box.

Origen Configuration

The target and environment files can also be used to override any Origen configuration settings that would otherwise be specified in the config/application.rb file.

An example might be to set up product-specific LSF strings for utilization tracking:

# target/eagle_1.rb
$dut = MyApp::Eagle.new(version: 1)

Origen.config.lsf.project =  "eagle.te"

# target/falcon_1.rb
$dut = MyApp::Falcon.new(version: 1)

Origen.config.lsf.project =  "falcon.te"

Origen LSF command prefix

The Origen runtime environment can be configured to run a prefix command before running any job on the LSF. There is a site config variable now available to define what that prefix command is. By default, if the site_config variable is not defined the prefix is an empty string.

In your origen_site_config.yml file, you can specify the site_config variable as shown below

Origen.site_config.lsf_command_prefix = '/location/where_tool_is_installed/origen_setup'

Comments

Generated with the Origen Semiconductor Developer's Kit

Origen is released under the terms of the MIT license