• 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

Pattern Generator

Introduction


Origen was initially conceived to be a pattern generator and as you would expect it provides powerful APIs to generate tester patterns from your device models. These APIs endeavour to abstract as much of the underlying ATE API as possible so that quite often all that is required to switch ATE platforms is to change the tester model instantiated by the environment.

With Origen, an application can also easily create custom tester drivers which (for example) can be used to generate patterns in a format that can be run on the bench (as a J-Link command file for example) or in a functional simulation - basically generating your pattern as a Verilog stimulus file.

Origen is a simulation-less pattern generation tool and it is therefore very quick and lightweight compared to more traditional simulation-based pattern generation workflows. When combined with the growing number of quality Origen plugins that are available to provide common hardware (e.g. JTAG) and protocol drivers (e.g. ARM Debug, Nexus), the speed of pattern development that can be achieved with Origen is unrivaled. With a bit of practice you can literally go from nothing to a working pattern for a new application within 10 minutes.

Use Simulations for What They Are Good At

Simulations still have their place, after all they are the only way to get pre-silicon feedback on whether a given pattern will actually work or not. An Origen-based workflow can still make heavy use of simulations for pre-silicon validation of test IP, however the downsides of requiring a simulation to actually generate a pattern (workflow complexity, slow generation times) are removed.

This leads to much quicker turn around of pattern changes, which means that they can be regenerated in real time while debugging on the tester.


Comments

Generated with the Origen Semiconductor Developer's Kit

Origen is released under the terms of the MIT license