Tag: v0.37.0

Branch: ‘master’
by Stephen McGinty on 15-Nov-2018 17:21PM
  • Updated Origen.site_config to make it self-contained so that it is compatible with upcoming changes to the Origen boot system.
  • The network-based site config file system is broken by the update, it will be re-instated in a future release by Corey.

Tag: v0.36.1

Branch: ‘master’
by Ronnie Lajaunie on 01-Nov-2018 08:42AM
  • Patch Bootsnap for LSF remote job execution

Tag: v0.36.0

Branch: ‘master’
by Stephen McGinty on 08-Oct-2018 11:11AM
  • Added bootsnap gem to speed up application boot time, this can be disabled via the site config variable use_bootsnap if required
  • Bug fix in model exporter which crashed when it encountered a register whose reset value was set to a symbol like :undefined or :memory (Paul Derouen)

Tag: v0.35.1

Branch: ‘master’
by Stephen McGinty on 21-Sep-2018 15:31PM

Fixes bug introduced in 0.34.3 whereby jobs would not submit to the LSF when a value of ‘1’ was assigned to the lsf_cores site config parameter.

Tag: v0.35.0

Branch: ‘master’
by Stephen McGinty on 24-Aug-2018 10:52AM
  • Fix bugs related to initial remote population from older versions of Git
  • Added numeric wait helpers, e.g. 10.ms!
  • Patch to reg creation (Ronnie Lajaunie)
  • Improved logger with per job log creation

Tag: v0.34.3

Branch: ‘master’
by Priyavadan Kumar on 17-Aug-2018 12:13PM

Origen will now use site config variables for a LSF configuration setup. The application can always override the default values by specifiying them within the app config.

Tag: v0.34.2

Branch: ‘master’
by Stephen McGinty on 16-Aug-2018 12:15PM

Minor bug fixes to support org_file usage in OrigenSim and to enable Origen guides that are supplied from plugins to be compiled/viewed within a plugin workspace

Tag: v0.34.1

Branch: ‘master’
by Stephen McGinty on 14-Aug-2018 12:16PM

Really fix compatibility with Ruby 2.2

Tag: v0.34.0

Branch: ‘master’
by Stephen McGinty on 14-Aug-2018 11:34AM
  • Added read and write methods for pins as aliases for drive and expect (Paul Derouen)
  • Allow register bit names that are similar to reg level attributes, e.g. feature, reset, access (Ronnie Lajaunie)
  • Fix origen web compile on Windows (Corey Engelken)
  • Various spec testing and dev environment improvements (Corey Engelken)
  • Add API to allow application and plugins to add content to test pattern headers, see https://origen-sdk.org/origen/guides/pattern/documenting/#Pattern_Headers (Corey Engelken)
  • Fix compatibility with Ruby 2.2
  • Added API to allow plugins to add pages to the Origen guides (and moved pattern and program generator guides to OrigenTesters):

    # In the plugin's config/application.rb
    config.shared = {
      # Specify the local directory where the guides live, should be the same in most cases
      origen_guides: "templates/origen_guides",
      origen_guides_index: -> (index) do
        # Example of adding a section
        index.section :pattern, heading: "Pattern Generator", after: :controllers do |section|
          section.page :introduction, heading: "Introduction"
          section.page :creating, heading: "Creating Patterns"
        end
        # Example of adding a page to an existing section
        index.section :program do |section|
          section.page :smt8, heading: "V93K SMT8", after: :v93k
        end
      end
    }
    

Tag: v0.33.3

Branch: ‘master’
by Stephen McGinty on 20-Jun-2018 12:16PM
  • Removed OrigenTesters deprecation warning since the corresponding OrigenTesters release has been delayed
  • Fixed usage of regular comparison operators (<, >=, ==, etc) when comparing Origen::VersionString instances
  • Fixed a regex bug that has been causing runtime warnings

Tag: v0.33.2

Branch: ‘master’
by Ronnie Lajaunie on 19-Jun-2018 08:04AM
  • Remove volts as unit of measure for numeric attributes for inspect method PR-265 - (Brian C)
  • Fix for bug where mode query mode.blah? resulted in stack overflow PR-269 - (Ronnie L)
  • Added info on overlay styles PR-268 - (Stephen M)

Tag: v0.33.1

Branch: ‘master’
by Corey Engelken on 04-May-2018 10:10AM

Spec-ed and documented Origen’s Collector utility. Docs are available on the utilities page.

Fixes for issue #261 and issue #259

Tag: v0.33.0

Branch: ‘master’
by nxa13790 on 19-Mar-2018 13:50PM

Added basic password method (McGinty).

Here is an example of how it works:

stephen@ywing:~/Code/github/origen$ origen i
origen(main):001:0> User.current.id
=> "stephen"
origen(main):002:0> User.current.password
Please enter your password:
=> "blah"
origen(main):003:0> User.current.password
=> "blah"
origen(main):004:0> exit

# It survives across threads and will also be shared amongst all of a user's apps, since
the
# global Origen session store is used

stephen@ywing:~/Code/github/origen$ origen i
origen(main):001:0> User.current.password
=> "blah"
origen(main):002:0> exit

# The password is stored in the user's home dir, only readable by them:

stephen@ywing:~/Code/github/origen$ ls -al ~/.origen/.session/
total 20
drwxrwxr-x 2 stephen stephen 4096 Mar 19 14:50 .
drwxrwxr-x 5 stephen stephen 4096 Mar 19 10:27 ..
-rw-rw-r-- 1 stephen stephen  163 Mar 19 10:27 app_generators
-rw-rw-r-- 1 stephen stephen   67 Mar 19 14:50 _system
-rw------- 1 stephen stephen   57 Mar 19 14:57 user

Tag: v0.32.1

Branch: ‘master’
by Stephen McGinty on 19-Mar-2018 14:05PM

Moved Perforce driver to a plugin to remove dependency on p4ruby gem

Tag: v0.32.0

Branch: ‘master’
by Stephen McGinty on 14-Mar-2018 15:14PM
  • Removed nokogiri as a dependency of Origen (Welguisz)
  • Fix for sub_block.owner anomaly (McGinty)
  • Updated dev env to latest OrigenTesters (McGinty)
  • Cleaned up Origen::Clocks::Clock and added in feature to disable sub_block creation for clock users (info-rchitect)
add_clock :socclk do |c|
  c.description = 'SoC clock'
  c.nominal_frequency = 1.2.Ghz
  c.frequency_range = :fixed
  c.users = [:data_mesh]
  c.instantiate_users = false
end
  • Updated Origen::Clocks::Clock to have min, max methods based on frequency range (info-rchitect)
  • Fix for improper web url for web server (Priyavadan)
  • New param? method (rlaj)
dut.param?('tprog').should == 20
dut.param?(:tprog).should == 20
dut.param?('tprog_does_not_exist').should == nil
dut.param?(:tprog_does_not_exist).should == nil
  • Add on_mode_changed callback (info-rchitect)
def initialize
  @my_version = version
    add_mode :mode1
  @mode_changed_count = 0
end

def on_mode_changed(options)
  @mode_changed_count += 1
end

it 'on_mode_changed callback works' do
  m = MyModel.new
  m.modes.should == [:mode1]
  m.mode.should == nil
  m.mode_changed_count.should == 0
  m.mode = :mode1
  m.mode_changed_count.should == 1
end
  • Fixed bug in current_mode method (info-rchitect)
  • Fixed bug where exported pins metadata was being forced to be a number or a string (info-rchitect)
  • Added support for tag configuration in Origen remotes that does not get prepended with a ‘v’. Also added remotes support for the Perforce revision control software
Origen.config.remotes do
  [
    {
      dir: "mydir",
      vault: "p4://myserver:myport//path/to/my/remote/file/myfile.xlsx",
      tag: '0.1.0'
    }    
  ]
end
  • Model exporter fix (McGinty)
  • Added resolve_remotes! method that enables remotes defined outside the application.rb file to be donwloaded sometime during DUT init (info-rchitect)
  • Fixed SPI plugin link (McGinty)
  • Added hook to support testers where a pattern is multiple files for SmarTest8 (McGinty)

Tag: v0.31.0

Branch: ‘master’
by Stephen McGinty on 12-Feb-2018 07:00AM
  • Sub-blocks return to being immediately instantiated by default, but with the option of making them lazy by supplying lazy: true to the sub_block definition

    Note that this means that any large amount of imported/exported data will go back to taking 10 seconds or whatever to load the target again. That can be fixed by doing one of the following:

    • Re-import/export the data under this new version of Origen, the exporter will now add the lazy: true attribute to everything that it exports.
    • Set Origen::SubBlocks.lazy = true in your target before instantiating the DUT and it will go back to the previous behavior of lazy-loading by default.
  • Model data can now be exported/imported to a custom directory and not just vendor the API is as follows:

      my_model.export 'some_id', dir: "/any/dir/of/my/choosing"
    

    Then to import that data:

    my_model.import 'some_id', dir: "/any/dir/of/my/choosing"
    

    As before, the exported code is wrapped in the current application’s namespace and if you are exporting and importing back and forth within the same app you don’t need to worry about it. However, if you are exporting from one app and importing into another, then the importing app needs to know about the namespace that was used to do the exporting. The namespace can now be selected (or even set to nil if you want) via the following API:

    my_model.import 'some_id', namespace: 'NameOfExportingApp'
    

    You can also specify the namespace at the point of export if you want to use something other than the app’s name:

    my_model.export 'some_id', namespace: "design_data"
    

    Then to import that data:

    my_model.import 'some_id', namespace: "design_data"
    

    The :dir and :namespace options are independent of each other and can be used together if desired.

  • Fix for bug #218 (erroneous OrgFile::Interceptable integration error)

Tag: v0.30.0

Branch: ‘master’
by Engelken Corey-B50956 on 24-Jan-2018 09:49AM

Restored site config’s user_gem_dir to previous behavior (enabled backwards compatability if a user_gem_dir already exist and points to /.origen/gems). Bug fix to site config wherein it wasn’t finding a user’s site config.

Tag: v0.29.0

Branch: ‘master’
by Stephen McGinty on 19-Jan-2018 10:23AM
  • Various improvements and bug fixes to enable plugins to add global commands (i.e. available outside of an Origen application workspace).
  • Officially only support Ruby 2 now (though probably has effectively been the case for a long time).
  • Added internal infrastructure to enable the generation of org files (Origen native pattern vector format).

Tag: v0.28.2

Branch: ‘master’
by Stephen McGinty on 07-Dec-2017 15:48PM

on_create will now be called immediately when a sub-block (or any other model) is instantiated after the target has been loaded.

Tag: v0.28.1

Branch: ‘master’
by Stephen McGinty on 01-Dec-2017 09:19AM

Reinstated Origen.site_config.gem_install_dir ($ORIGEN_GEM_INSTALL_DIR) as a means of changing the location of where a user’s gems are installed.

Tag: v0.28.0

Branch: ‘master’
by Lajaunie Ronald-B01784 on 29-Nov-2017 13:55PM
  • Add block write!/read! ability to allow for better coding style for bit manipulations (PR 157, Chris Nappi)
  add_reg :blregtest,   0x00,  4,  :y       => { :pos => 0},
                                   :x       => { :pos => 1, :bits => 2 },
                                   :w       => { :pos => 3 }

  reg(:blregtest).write! do |r|
    r.bits(:y).write(1)
    r.bits(:x).write(0x2)
    r.bits(:w).write(1)
  end

  reg(:blregtest).write(0)
  reg(:blregtest).x.write! do |b|
    b[1].write(1)
  end

  reg(:blregtest).read! do |r|
    r.bits(:y).read
  end
  • Added in String.is_upcase? and String.is_lowercase? (PR 158, Brian Caquelin)
  • Updated power domains model guide and fixed ERB file name (PR 160, Brian Caquelin)
  • Added in Parameter inheritance between objects and added optional maximum_voltage_rating attribute to Origen::PowerDomain (PR 161, Brian Caquelin) - Documentation
  • Model import and export (PR 162, Stephen Mcginty) - RFC3
  • Fancy register output (PR 163, Adam Kohler)
  • Added a few more numeric unit methods (capacitance) (PR 166, Brian Caquelin)
  • Added in String excel_col_index method and added pins method_missing to hit self.meta(PR 167, Brian Caquelin)
  • Added in min, max attributes for Origen::PowerDomains::PowerDomain (PR 171, Brian Caquelin)
    add_power_domain :vdd do |domain|
      domain.description = 'CPU'
      domain.nominal_voltage = 1.0.V
      domain.unit_voltage_range = 0.7.V..1.1.V
      domain.maximum_voltage_rating = 1.50.V
      domain.min = 0.9.V
      domain.max = 1.1.V
      domain.display_names(Nokogiri::XML::DocumentFragment.parse 'OV<sub>DD</sub>')
    end
  • Enhanced model exporter for pins to account for packages (PR 172, Brian Caquelin)
  • Added in package scoped DIB metadata to Origen::Pins::Pin (PR 174, Brian Caquelin) - Documentation
  • Added Symbol.smatch(/blah blah blah/) method as shortcut for Symbol.to_s.match (PR 176, Brian Caquelin)
  • Bug fix for site_config environment variable (PR 177, Brian Caquelin)

Tag: v0.27.0

Branch: ‘master’
by Stephen McGinty on 26-Oct-2017 09:38AM
  • Added clocks model (Brian Caquelin)
add_clock :cclk do |c|
  c.description = 'Core complex clock'
  c.nominal_frequency = 2.5.Ghz
  c.frequency_range = 0.8.Ghz..3.2.Ghz
  c.users = [:core_complex]  # The names here refer to the sub-blocks that use it
end
  • Spec definitions can now reference ‘the current’ power domain or clock value via a symbol in an expression (Brian Caquelin)
spec :fmin, :ac do |s|
  s.symbol "Fmin"
  s.description = "Frequency Min"
  s.min = ":core_clk * 0.9"
end
spec :memio_voh, :dc do |s|
  s.symbol "Voh"
  s.description = "Output high voltage"
  s.max = ":vmemio * 0.8"
end
  • Renamed Origen::PowerDomains::PowerDomain#voltage_range to unit_voltage_range to better reflect its usage (Brian Caquelin)
  • Stopped String#symbolize method from injecting multiple underscores when faced with multiple spaces in a sting, these are now condensed to a single underscore (Brian Caquelin)
  • Sub blocks now inherit their current_mode attribute from their parent if not otherwise set on the sub-block specifically (Brian Caquelin)
  • Bug fix to regression manager to fix Bundler errors when generating the reference output

Tag: v0.26.0

Branch: ‘master’
by Lajaunie Ronald-B01784 on 16-Oct-2017 12:54PM
  • Added in Origen::Tests module and made add_mode more flexible PR.136 (Brian Caquelin)
  • Allow target preservation with inline compiler PR.137 (Ronnie Lajaunie)
  • Added in params.contexts method PR.138 (Brian Caquelin)
  • Added in Origen::PowerDomains module PR.140 (Brian Caquelin)
  • Fixed power_domain inspect output for some cases PR.142 (Adam Kohler)

Tag: v0.25.1

Branch: ‘master’
by Stephen McGinty on 15-Sep-2017 19:12PM

Removed some pre-release work that was included in the 0.25.0 release by accident

Tag: v0.25.0

Branch: ‘gym’
by Stephen McGinty on 15-Sep-2017 18:58PM
  • Added Fixnum#to_spreadsheet_column and Origen::Parameters::Set#to_flat_hash methods (Brian Caquelin)
  • Improved an application’s ability to add additional options to core Origen commands (Ronnie Lajaunie)
  • Bug fix - fixed option (-o) for generate command (Ronnie Lajaunie)
  • Bug fix - Accessing the base_address of a model/controller pair before later accessing a register does not crash.

Tag: v0.24.0

Branch: ‘master’
by Stephen McGinty on 02-Sep-2017 20:27PM
  • Remotes can now be optionally declared as private
  • Various bug fixes including fixing compatibility with Ruby 2.4

Tag: v0.23.0

Branch: ‘master’
by Stephen McGinty on 25-Aug-2017 21:38PM
  • Added numeric value to a string-with-units helper methods (@arkohler), e.g.
12_000_000.as_Ohm          # => '12.0MOhm'
123_000_000_000.as_Hz      # => '123.0GHz'
123_456_000_000_000.as_hz  # => '123.456Thz'
  • Stopped dumping the stack trace when Origen ends from ‘exit 1’. This makes the command line output cleaner, but an un-controlled exit via “fail ‘some error!’” will still cause a stack dump as before.
  • User.current will now always return the same user object (Corey Engelken)
  • The ‘origen web compile’ command will now always run in debug mode (Corey Engelken)
  • Fixed bug where an Origen app/plugin added via a remote would be actively loaded rather than just being treated like non-application files.
  • Cleanup command line output with Design Sync 2016 (Corey Engelken)
  • Model#reg now accepts a regex in string format to return a matching subset of registers (Ronnie Lajaunie):
# Ex 1: Only ADC cfg registers (:adc0_cfg, :adc1_cfg)
dut.regs('/acd\d_cfg/')  # => [reg_obj, reg_obj]

# Ex 2: Any cfg registers (:adc0_cfg, :adc1_cfg, :dac_cfg)
dut.regs('/cfg/')         # => [reg_obj, reg_obj, reg_obj]
  • Various documentation updates

Tag: v0.22.0

Branch: ‘master’
by Stephen McGinty on 16-Aug-2017 16:42PM
  • Updated the ‘origen new’ command to allow company specific application generators to hook into it.
  • Fixed bug whereby site_config variables set to true or false via environment variables were not converted into Ruby booleans.

Tag: v0.21.0

Branch: ‘master’
by Stephen McGinty on 14-Aug-2017 08:37AM
  • Added a system to allow plugins to extend and add commands to Origen outwith the scope of an application (Corey Engelken)
  • Added support for Verilog formatted numbers in the String#to_dec method and added an API for modelling fuse blocks (Brian Caquelin)

Tag: v0.20.3

Branch: ‘master’
by Stephen McGinty on 02-Aug-2017 11:38AM
  • Added keys method to session stores, very similar to the Hash#keys method (Brian Caquelin)
  • The current plugin’s config.pattern_name_translator is now given a chance to translate a pattern name when dispatched via a parent app.

Tag: v0.20.2

Branch: ‘master’
by Lajaunie Ronald-B01784 on 13-Jul-2017 14:04PM
  • Added methods to database key value stores PR #102 (info-rchitect)
  • Fixed a bug where the file handler was erroring when it found the same file twice with Dir.glob PR #95 (info-rchitect)

Tag: v0.20.1

Branch: ‘master’
by nxa19128 on 27-Jun-2017 14:33PM

Initialized @max_address_reg_size to prevent nil case for single-register sub-block. Pull Request #92 - Chris Hume.

Tag: v0.20.0

Branch: ‘master’
by Stephen McGinty on 16-Jun-2017 07:35AM

Changed to MIT license

Tag: v0.13.0

Branch: ‘master’
by Stephen McGinty on 08-Jun-2017 03:24AM
  • Added a global session to allow data to be easily exchanged between all of a user’s Origen application workspaces (Corey Engelken)
  • Added Regex#to_txt method (Brian Caquelin)
regex = /abc/i
regex.to_txt                    # => "\/abc\/i"
regex.to_txt(no_mods: true)     # => "\/abc\/"
  • Removed dependency on GCC (Brian Caquelin)

Tag: v0.12.1

Branch: ‘master’
by Stephen McGinty on 06-Jun-2017 06:02AM

Bug fix caused by recent bit_order feature addition when registers have a non-std parent object.

Tag: v0.12.0

Branch: ‘master’
by Stephen McGinty on 24-May-2017 21:06PM

Tag: v0.11.0

Branch: ‘master’
by Stephen McGinty on 24-May-2017 13:25PM

Bumped Nokogiri version to the latest, and new integration with the origen_updater plugin

Tag: v0.10.1

Branch: ‘master’
by Stephen McGinty on 23-May-2017 22:47PM

Removed some debug helpers that were left in the last release

Tag: v0.10.0

Branch: ‘master’
by Stephen McGinty on 23-May-2017 22:40PM

Added hooks to allow the integration of an origen updater plugin to help manage the process of updating an application’s gems.

Temporarily rolled back the Nokogiri version increase after initial problems in some environments, will update to the latest version soon one the updater plugin is available.

Tag: v0.9.1

Branch: ‘master’
by Stephen McGinty on 23-May-2017 10:33AM

Patch to the new use system gems process

Tag: v0.9.0

Branch: ‘master’
by Stephen McGinty on 23-May-2017 08:12AM
  • Improved how gems which should be used from the system (specified via the gem_use_from_system variable in the site config) are copied to the user’s gem area.
  • Applications can now place an origen_site_config.yml file in their config directory if they want to override any site-wide settings.
  • Bumped the required Nokogiri version to 1.7.2 to support Ruby 2.3 and enable installation on Windows.

Tag: v0.8.0

Branch: ‘master’
by Stephen McGinty on 23-May-2017 09:24AM

Tag: v0.7.47

Branch: ‘master’
by David Welguisz on 06-Apr-2017 14:05PM

Overall Release Note

  • Added symbols for samples per second with the following prefixes: k, M, G.
  • Should support kilo/Mega/Giga samples per second.
  • Useful for ADC and DAC modes.

Tag: v0.7.46

Branch: ‘master’
by Lajaunie Ronald-B01784 on 22-Mar-2017 20:40PM
  • Added better pin meta data API and some power pin attributes (PR #74)
  • Enhance pin clock feature to handle cases where 50% duty cycle isn’t best fit (PR #75)
  • Update remotes feature to use abstract RC API (PR #78)
  • Fix: Tiny release should send production email (PR #79)

Tag: v0.7.45

Branch: ‘master’
by Stephen McGinty on 09-Feb-2017 11:33AM

Added before_release_gem and after_release_gem callbacks

Tag: v0.7.44

Branch: ‘master’
by David Welguisz on 01-Feb-2017 13:15PM

Fixed an issue with add_pin_group when pins is an empty array.

Tag: v0.7.43

Branch: ‘master’
by David Welguisz on 18-Jan-2017 12:23PM

Overall Release Note

Tag: v0.7.42

Branch: ‘master’
by Chris Nappi on 15-Dec-2016 09:41AM

Added indication sync is being run to allow register action logging.

Tag: v0.7.41

Branch: ‘master’
by David Welguisz on 12-Dec-2016 17:41PM

Added color attr_accessor to pin_collection.rb Will allow for graphic generation to use color to coordinate pins.

Tag: v0.7.40

Branch: ‘master’
by Stephen McGinty on 08-Dec-2016 09:26AM

Instantiating a persistent callback handler no longer has a dependency on the app being loaded. This fixes some app boot issues when origen_testers is required.

Tag: v0.7.39

Branch: ‘master’
by David Welguisz on 06-Dec-2016 12:56PM

Overall Release Note

  • Added ability to switch_user for a block of code

New Feature (switch_user)

  • To switch the user for a block of code, you can do the following: ~~~~ # Origen.current_user ==> Original user Origen.with_user(User.new(‘user_id’)) do # Origen.current_user ==> user_id block of code end # Origen.current_user ==> Original User ~~~~

Tag: v0.7.38

Branch: ‘master’
by David Welguisz on 04-Nov-2016 15:13PM

Overall Release Note

  • Added label to Origen::Specs::Version_History class

Tag: v0.7.38.pre1

Branch: ‘develop’
by David Welguisz on 31-Oct-2016 22:30PM

Overall Release Note

  • Added label to Origen::Specs::Version_History class

Tag: v0.7.37

Branch: ‘master’
by Stephen McGinty on 28-Oct-2016 05:38AM
  • LSF
    • Changed the check for the amount of submitted jobs to be done every 100 submissions instead of on every submission. This cuts submission time by ~0.5s in trials.
    • Added some pre-work to provide the ability to specify a number of jobs that should be batched together, e.g. to setup such that each LSF job generates N patterns instead of 1 pattern/job.
  • Registers - added the ability to create bit collections from multiple named bits:
>> dut.myreg
=>
0x24 - :myreg
  ================================================================================================================
  |      7      |      6      |      5      |      4      |      3      |      2      |      1      |      0      |
  |         bitsx[1:0]        |         bitsy[1:0]        |                       bitsz[3:0]                      |
  |            0x0            |            0x0            |                          0x0                          |
  ----------------------------------------------------------------------------------------------------------------

>> dut.myreg.bits(:bitsx, :bitsz).write(0x2C)

>> dut.myreg
=>
0x24 - :myreg
  ================================================================================================================
  |      7      |      6      |      5      |      4      |      3      |      2      |      1      |      0      |
  |         bitsx[1:0]        |         bitsy[1:0]        |                       bitsz[3:0]                      |
  |            0x2            |            0x0            |                          0xC                          |
  ----------------------------------------------------------------------------------------------------------------

Tag: v0.7.36

Branch: ‘master’
by Stephen McGinty on 07-Oct-2016 05:02AM

Patch to the Origen::Utility.read_hex method to handle registers whose size is not nibble-aligned

Tag: v0.7.35

Branch: ‘master’
by Stephen McGinty on 07-Oct-2016 04:09AM

Added utility method to format a register to be read into a data string, indicating which bits will be read, stored, overlaid or don’t cared.

Origen::Utility.read_hex(0x55)      # => "0x55"
Origen::Utility.read_hex(nil)       # => "0xX"

myreg.size                          # => 32

Origen::Utility.read_hex(myreg)     # =>  "0xXXXXXXXX"
myreg[7..4].store
Origen::Utility.read_hex(myreg)     # =>  "0xXXXXXXSX"
myreg[23..16].read
Origen::Utility.read_hex(myreg)     # =>  "0xXX00XXSX"
myreg[23..16].read(0x12)
Origen::Utility.read_hex(myreg)     # =>  "0xXX12XXSX"
reg[31..28].overlay("sub")
reg[31..28].read
Origen::Utility.read_hex(myreg)     # =>  "0xVX12XXSX"
reg[5].clear_flags
Origen::Utility.read_hex(myreg)     # =>  "0xVX12XX_ssxs_X"
reg[21].overlay("sub")
reg[18].store
Origen::Utility.read_hex(myreg)     # =>  "0xVX_00v1_0s10_XX_ssxs_X"

Tag: v0.7.34

Branch: ‘master’
by Stephen McGinty on 06-Oct-2016 07:54AM

Added on_resource_start and end callbacks during program generation. These are equivalent to on_flow_start/end, but the resource version will be called when the top-level flow is a Resource.create block instead of a Flow.create block.

Tag: v0.7.33

Branch: ‘master’
by David Welguisz on 03-Oct-2016 21:23PM

Adding last two lines to allow rosetta_stone to be more robust.

Tag: v0.7.32

Branch: ‘master’
by David Welguisz on 03-Oct-2016 17:47PM
Overall Release Note
  • Added other_pins.rb to lib/origen/pins directory
  • Added improved features to expand functionality for notes.
Pin Addition
  • Added other_pins.rb. Allows for No-Connects, Reserved, and Depop Pins
  • Added tests to check other_pins.rb and its collection
Documentation Addition
  • Added easier support to change subscript for power supplies
  • Added tests to make sure that subscripts work correctly
  • Moved attributes from monkey code in other applications that need to be in Origen base.

Tag: v0.7.31

Branch: ‘master’
by Stephen McGinty on 09-Sep-2016 06:11AM
  • Added on_flow_start and on_flow_end callbacks for program generation
  • Patch to allow interfaces to include Origen::Callbacks

Tag: v0.7.30

Branch: ‘master’
by Stephen McGinty on 02-Sep-2016 10:09AM

Patch to the release process for compatibility with apps that are embedded in a parent repository.

Tag: v0.7.29

Branch: ‘master’
by Stephen McGinty on 02-Sep-2016 05:31AM

Updated Git driver to allow a plugin to be embedded within a parent repo, see the tester_std_lib repo for an example

Tag: v0.7.28

Branch: ‘master’
by Stephen McGinty on 24-Aug-2016 05:54AM

Another (hopefully final!) patch to the plugin load sequence

Tag: v0.7.27

Branch: ‘master’
by Stephen McGinty on 24-Aug-2016 05:36AM

Patch to add the top-level app’s lib dir to the load path early in the application load sequence. It seems that some plugins relied on this behavior from when the app was loaded first before the plugins.

Tag: v0.7.26

Branch: ‘master’
by Stephen McGinty on 24-Aug-2016 05:00AM
  • Origen will now maintain a lookup table of all log messages for programmatic access (David Welguisz). These are grouped by message level (debug, warning, etc), and additionally an identifier/category can now be supplied to all log statements to further group them below the message level categories.
Origen.log.success 'Good A'
Origen.log.success 'Good B'

Origen.log.error 'Bad A'

Origen.log.messages # => { :info=>{},
                    #      :warn=>{},
                    #      :error=>{nil=>[ "[ERROR] 10.050[7.424] || Bad A" ]},
                    #      :deprecate=>{},
                    #      :debug=>{},
                    #      :success=>{nil=>[ "[SUCCESS] 0.008[0.008] || Good A",
                    #                        "[SUCCESS] 2.626[2.618] || Good B"
                    #                      ]}
                    #    } 

Origen.log.messages[:success][nil].size  # => 2

# Note that as above, by default the messages will be stored within a
# sub-category of 'nil'.
# This category can be set when writing the message:

Origen.log.success 'Good A', :cat1
Origen.log.success 'Good B', :cat1
Origen.log.success 'Good C', :cat2

Origen.log.messages[:success][:cat1].size  # => 2
Origen.log.messages[:success][:cat2].size  # => 1
  • Removed recently added warning when a plugin is loaded after the top-level application. This situation can occur when the top-level app requires the plugin later, which may be perfectly valid for some plugins.

Tag: v0.7.25

Branch: ‘master’
by Stephen McGinty on 22-Aug-2016 10:57AM
  • Really fixed any issues with calling current? within config/application.rb this time.
  • Added an API to allow operations to be performed on the app instance before it might be fully loaded. This is mainly intended for internal use, but may be useful to plugin developers:
# This code may be hit before the app is fully loaded which can lead to runtime errors. This can
# now be resolved by wrapping with this method to defer execution until the app instance is fully
# available.
# It will execute immediately if the app is already loaded.
Origen.after_app_loaded do |app|
  app.do_something
end

Tag: v0.7.24

Branch: ‘master’
by Stephen McGinty on 22-Aug-2016 09:36AM
  • Changed the boot order to load all plugins before the top-level application. A log warning will be given in the event of a plugin implementing a non-standard loading mechanism which results in it getting loaded after the top-level app. The standard loading mechanism for a plugin is to have this as the first item in their top-level file:
# lib/my_plugin.rb
require 'origen'
require_relative '../config/application.rb'

# Plugin specific requires go here
  • Fixed any issues with calling current? within config/application.rb (probably the main reason for a plugin to implement a non-standard load before now)

  • Added an API for plugins to add additional application configuration attributes to their host app:

# config/application.rb (of the plugin)
require 'origen'
class MyPluginApplication < Origen::Application

  # Adds a new attribute with a default of nil
  add_config_attribute(:my_attribute)

  # Adds a new attribute with a default of an empty hash
  add_config_attribute(:my_attribute, default: {})

  # By default any attributes added in this way will raise an error if they are accessed before the
  # target is loaded (this is the case for the majority of standard config attributes).
  # If you need the attribute to be accessible before target load then do this:
  add_config_attribute(:my_attribute, depend_on_target: false)

  # Such attributes can then be set by the top-level application in exactly the same way as the
  # standard attributes:
  config.my_attribute = { some_val: true }

  # They will also accept a block:
  config.my_attribute do
    if some_condition
      { some_val: true }
    end
  end

Tag: v0.7.23

Branch: ‘master’
by Stephen McGinty on 12-Aug-2016 10:49AM

Internal updates to some hooks that support OrigenTesters

Tag: v0.7.22

Branch: ‘master’
by Stephen McGinty on 04-Aug-2016 11:43AM
  • Bug fixes to register console display
  • Added reg.data_reverse method, this reverses the order of the data bits in the returned value:
my_reg.write(0x00FF_AA55)
my_reg.data               # => 0x00FF_AA55
my_reg.data_b             # => 0xFF00_55AA
my_reg.data_reverse       # => 0xAA55_FF00

Tag: v0.7.21

Branch: ‘master’
by Priyavadan Kumar on 22-Jun-2016 11:31AM

Updates to regression manager with respect to running regressions with a service account. This is still a work in progress and will be updated often.

Tag: v0.7.20

Branch: ‘master’
by Stephen McGinty on 20-Jun-2016 10:12AM

Added the ability to lookup a parameter value via an explicitly supplied context:

dut.params.tprog        # => 20
dut.params(:ft).tprog   # => 15

Tag: v0.7.19

Branch: ‘master’
by Priyavadan Kumar on 17-Jun-2016 10:51AM

Added ‘bundle exec’ back to regression manager. Without it problems occur when regressions are run with a service account.

Tag: v0.7.18

Branch: ‘master’
by Stephen McGinty on 14-Jun-2016 05:42AM

Bug fix to allow parameters to be called ‘min’ and ‘max’

Tag: v0.7.17

Branch: ‘master’
by Stephen McGinty on 13-Jun-2016 22:15PM

Bug fixes to bin script

Tag: v0.7.16

Branch: ‘master’
by Priyavadan Kumar on 13-Jun-2016 10:39AM

Minor updates to the regression manager. Added options to pass version and reference workspace path to the regression manager

Tag: v0.7.15

Branch: ‘master’
by Stephen McGinty on 09-Jun-2016 21:28PM

Added Model and Register to_json methods

Tag: v0.7.14

Branch: ‘master’
by Stephen McGinty on 09-Jun-2016 09:21AM

Various minor improvements:

  • Fixes issue with hard links being generated in web pages whenever the application is at a production release version. Now hard links are only created if the –archive switch is supplied to ‘origen web compile’
  • Error dumps now show the full stack trace without requiring to run with -verbose, but it now separates out the application call stack from the full framework call stack
  • config.pattern_output_directory now works, by default is set to config.output_directory
  • The reference directory now automatically tracks the structure of the output directory for pattern generation as long as the output directory is some sub-directory of Origen.root/output. Previously the app config was responsible for keeping these aligned.
  • If a test program interface defines startup and shutdown methods, these will automatically be called at the start and end of every Flow.create block. Any arguments passed to Flow.create will be passed in when called from a top-level flow options[:top_level] will be present and set to true.
  • Added the target environment to pattern headers.
  • Fix for new application build crashing if dotfiles have been deleted from the new app template cache in /tmp.

Tag: v0.7.13

Branch: ‘master’
by Priyavadan Kumar on 02-Jun-2016 11:23AM

Fixes issue #52 and #53

Tag: v0.7.12

Branch: ‘master’
by Stephen McGinty on 26-May-2016 05:53AM

Fixed ‘origen rc init’ when using Git

Tag: v0.7.11

Branch: ‘master’
by Stephen McGinty on 26-May-2016 05:25AM

Improved error reporting when a sub block or controller model fails to instantiate

Tag: v0.7.10

Branch: ‘master’
by Kumar Priyavadan-B21094 on 13-May-2016 11:39AM

merged PR #50

Tag: v0.7.9

Branch: ‘master’
by Kumar Priyavadan-B21094 on 05-May-2016 22:18PM

retagging (merged PR #49)

Tag: v0.7.8

Branch: ‘master’
by Kumar Priyavadan-B21094 on 02-May-2016 13:38PM

Merged Pull Request #48. Making a release so David/Rebecca can use the gem release.

Tag: v0.7.7

Branch: ‘master’
by Stephen McGinty on 07-Apr-2016 12:30PM

Fixed issue with search boxes hanging the browser

Tag: v0.7.6

Branch: ‘master’
by Stephen McGinty on 07-Apr-2016 07:54AM
  • Added after_web_site_compile callback
  • Added ability for the inline compiler to take a template in the form of a string rather than a pointer to a file:
template =<<-END
X is: <%= options[:x] %>
END

Origen.compile(template, string: true, x: 10)
  • reg.named_bits now returns an array when a block is not given, these now both work:
myreg.named_bits do |name, bits|
  # ...
end

myreg.named_bits.each do |name, bits|
  # ...
end
  • Updated website builder to support multiple search domains on a single application website by suppling a search ID in the page frontmatter:
---
search_id: my_subsection
---
  • Specs can now be looked up via their symbol (Aaron Burgmeier):
dut.has_spec?(:gvdd, symbol: true)
  • Various bug fixes:
    • Fixed console display of registers whose size is not a multiple of 8
    • Fixed inline compiler block render bug when a scope is supplied
    • Fixed register description parsing when a reg has been defined with add_reg without a block
    • Register read requests will now update the expect value of non-writable bits

Tag: v0.7.5

Branch: ‘master’
by Stephen McGinty on 04-Apr-2016 15:34PM
  • Added interactive_startup and shutdown callbacks, this allows a device to be put into the correct mode when starting up a console session with an Origen Link compatible tester driver connected.
  • Fixed a bug where plugins that were development dependencies did not register with the application properly.
  • A few other minor bug fixes.

Tag: v0.7.4

Branch: ‘master’
by Stephen McGinty on 01-Apr-2016 16:50PM

Added a shorthand for syncing a register in an Origen Link debug session:

dut.my_reg        # Display register with current local content
dut.my_reg.sync   # Sync register and display with updated content
dut.my_reg!       # Sync register and display with updated content

Added a memory API to all DUTs and sub-blocks which enables read/write of any memory location using the conventional register API and without having to pre-define the register.

Note that at present the register object generated via the memory API will be different to that returned by a defined register with the same address.

dut.mem(0x2000_0000).write!(0x1111_2222)

dut.mem(0x2000_0000).data    # => 0x1111_2222

dut.mem(0x2000_0000).read!(0x1111_2222)

dut.mem(0x2000_0000)[15..0].read!(0x2222)

dut.mem(0x2000_0000)[31..16].store!

dut.mem(0x2000_0000).sync

Memory can be accessed via a sub-block with a local address, however there is only one memory and this will return the same register object as for the corresponding global address. Say here the NVM has a base_address of 0x4000_0000:

dut.nvm.mem(0x10).write!(0x5555_5555)

dut.mem(0x4000_0010).data  # => 0x5555_5555

By default this returns 32-bit register objects and the address must be aligned. The width can be changed on a per-DUT basis:

dut.memory_width = 16

dut.mem(0x2000_0000).size   # => 16

Finally, updated the sync method to take a size argument which corresponds to the number of memory locations to read out:

(byebug) dut.mem(0x40020000).sync(10)
40020000: FFFE0080
40020004: 00005555
40020008: 00000000
4002000C: 00000000
40020010: FFFFFFFF
40020014: 00000000
40020018: FFFFFFFF
4002001C: FFFFFFFF
40020020: FFFFFFFF
40020024: FFFFFFFF

Tag: v0.7.3

Branch: ‘master’
by Stephen McGinty on 01-Apr-2016 11:47AM

Update to the BitCollection#sync method to fix the data ordering. Also now preserves any flags that are set on the bitcollection prior to syncing.

Tag: v0.7.2

Branch: ‘master’
by Stephen McGinty on 31-Mar-2016 09:12AM
  • Added BitCollection#sync method, in combination with OrigenLink, this updates the value held by the register model with that currently on silicon…
(byebug) dut.atd.result

0x4000_4502 - :atd_result
  ---------------------------------------------------------------------------------
  |    7    |    6    |    5    |    4    |    3    |    2    |    1    |    0    |
  |                                     r[7:0]                                    |
  |                                      0x0                                      |
  ---------------------------------------------------------------------------------

(byebug) dut.atd.result.sync

0x4000_4502 - :atd_result
  ---------------------------------------------------------------------------------
  |    7    |    6    |    5    |    4    |    3    |    2    |    1    |    0    |
  |                                     r[7:0]                                    |
  |                                      0xE2                                     |
  ---------------------------------------------------------------------------------
  • Added Pin#hello and Pin#goodbye methods. Calling something like dut.pin(:tdi).hello from the console will cause it to continuously drive low and high with a period of 2 seconds. This is intended to be used as a debug aid for OrigenLink when checking connections. Calling dut.pin(:tdi).goodbye will turn it off.

Tag: v0.7.1

Branch: ‘master’
by Stephen McGinty on 24-Mar-2016 10:36AM

Reinstated use of geminabox to push internal gems, turned out to be required for some users

Tag: v0.7.0

Branch: ‘master’
by Stephen McGinty on 18-Mar-2016 05:44AM

Updated hard dependency on nokogiri to the latest version, this is to support latest Ruby on Windows, but also the latest nokogiri seems easier to build.

Tag: v0.6.12

Branch: ‘master’
by Stephen McGinty on 17-Mar-2016 11:54AM
  • Add the ability to have a spec hidden based off of the License Plate (David Welguisz)
  • Tweak to avoid reg->data conversion in pin group assert method (Chris Nappi)

Tag: v0.6.11

Branch: ‘master’
by Stephen McGinty on 16-Mar-2016 05:38AM

Patch to the regression command to enable regressions vs. NXP RGen v2

Tag: v0.6.10

Branch: ‘master’
by Stephen McGinty on 15-Mar-2016 04:29AM

No changes vs. 0.6.9, but releasing a new version of the gem to fix a Rubygems build error

Tag: v0.6.9

Branch: ‘master’
by Stephen McGinty on 14-Mar-2016 13:05PM

Patches to regression command

Tag: v0.6.8

Branch: ‘master’
by Kumar Priyavadan-B21094 on 10-Mar-2016 17:08PM

Updates to Virtual pin model - Aaron Burgmeier

Tag: v0.6.7

Branch: ‘master’
by Kumar Priyavadan-B21094 on 10-Mar-2016 16:57PM
  • New Class for Specs Documentation - David Welguisz
  • Respect masking in pin collections - Chris Nappi
  • Added spec tests for masking in pin collections - Chris Nappi

Tag: v0.6.6

Branch: ‘master’
by Stephen McGinty on 02-Mar-2016 03:53AM
  • #32 - Added API to add virtual pins to a model (Aaron Burgmeier)
 $dut.add_pin :pinx
 $dut.add_pin :piny
 $dut.add_virtual_pin(:virtual1, type: :virtual_bit)
 $dut.add_virtual_pin(:virtual2, type: :virtual_bit)
 $dut.add_virtual_pin(:virtual3, type: :ate_ch)
 $dut.pins.size          # => 2
 $dut.virtual_pins.size  # => 3
 $dut.virtual_pins(:virtual1).type # => :virtual_bit
 
 $dut.add_virtual_pin_group :virtual, :virtual1, :virtual2, package: :p1
 $dut.add_virtual_pin_group :virtual, :virtual1, :virtual2, :virtual3, package: :p2
 $dut.virtual_pin_groups.size                # => 0
 $dut.virtual_pin_groups(package: :p1).size  # => 1
 $dut.package = :p1
 $dut.virtual_pins(:virtual).size   # => 2
 $dut.package = :p2
 $dut.virtual_pins(:virtual).size   # => 3
  • #33 - Fix issue if a global variable is nil in spec model (David Welguisz)

Tag: v0.6.5

Branch: ‘master’
by Stephen McGinty on 25-Feb-2016 08:56AM

Minor update to make the program generator instantiate an empty interface, rather than raise an error, in the case where no interface is defined by the application. This allows an application to be able to generate a test flow only (i.e. no instances, etc.) without having to create an interface.

Tag: v0.6.4

Branch: ‘master’
by Ronnie Lajaunie on 22-Feb-2016 22:49PM

Introduce maillists for release notifications.

Origen uses maillists to send notifications of development and production releases. The maillist files should be located at config/maillist_dev.txt and config/maillist_prod.txt

Sample lists:

# config/maillist_dev.txt
#
# Product team X  (handles commenting like this)
first.last@company.com
john.smith@company.com
# config/maillist_prod.txt
#
# Some other product team
memory.expert@company.com       # Memory Test Lead (commenting like this is ok too)
# Example of an ID only
last.first
x49509

To get a list of your application’s mailists:

Origen.app.maillist_dev    # => [<first.last@company.com>, <john.smith@company.com>]
Origen.app.maillist_prod   # => [<memory.expert@company.com>, <last.first@MYcompany.com>,
<x49509@MYcompany.com>]

You can pass the returned array directly to the send_email method:

Origen.mailer.send_email(subject: "Hello", to: Origen.app.maillist_dev, body: "Hello to
all developers!")

Tag: v0.6.3

Branch: ‘master’
by Stephen McGinty on 16-Feb-2016 07:18AM

There is a bug with Hash.filter where if the Hash is NilClass, then the filter will fail. Changing to filter_hash allows for this corner case to be corrected. (David Welguisz)

Tag: v0.6.2

Branch: ‘master’
by Ronnie Lajaunie on 15-Feb-2016 13:14PM

Update front-page sponsors to NXP.

Tag: v0.6.1

Branch: ‘master’
by Stephen McGinty on 15-Feb-2016 04:18AM
  • Find some instances where knowing the override information is needed for exhibits. Added that to this code. (David Welguisz)
  • Improved Continuous Integration Environment for specs.rb. This find several issues in specs.rb. Coverage for specs.rb should be 90%+ now. (David Welguisz)
  • Patch to preserve internal file handler state when an Origen job is launched programmatically e.g. Origen.app.runner.launch action: :program, files: “program/production.list”

    This fixes bugs with some file references not working when the program generator is launched like this.

Tag: v0.6.0

Branch: ‘master’
by Stephen McGinty on 09-Feb-2016 06:31AM
  • Added a Features module to the Specs model. (David Welguisz) This allows for a one page document to be created that lists the features and sub features for a piece of Silicon. Allows granularity based off of the feature and the list of products within that device.
  • Disabled invocation tracking, no plans to re-enable at present.

Tag: v0.5.11

Branch: ‘master’
by Ronnie Lajaunie on 02-Feb-2016 12:26PM

Bug fix to remote manager that was mismatching version strings of requested and existing remote when version: “vX.X.X” was used instead of “X.X.X”.

Tag: v0.5.10

Branch: ‘master’
by Stephen McGinty on 28-Jan-2016 08:01AM

Origen.app.revision_control_root now returns Origen.root instead of crashing in the case where the app has not been committed to revision control yet

Tag: v0.5.9

Branch: ‘master’
by Stephen McGinty on 26-Jan-2016 11:24AM
  • Fixed compatibility issue with Net/LDAP gem version 0.13.0
  • Made string compare in filter_hash more dynamic by checking that the length of strings match. Fix for ISC-906 (David Welguisz)
  • Updated git remote branch check to be more robust (Daniel Hadad)
  • Fix and issue with power_supplies method where only the first value of the first key was showing. ISC-867 work started. (David Welguisz)
  • Changed the initialize block to request three hashes that have block information, mode information, and power information, instead of five different variables. (David Welguisz)
  • Caused specs.rb to be updated in the mode_select method. (David Welguisz)
  • Updated regression manager to provide exit 1 status if regression results fail, to support CI usage. (Daniel Hadad)
  • Added input_display_name and output_display_name for power_supply.rb in lib/origen/specs (David Welguisz)
  • Fix regression manager bug causing failure when reference directory does not exist (Priyavadan Kumar)
  • Expand power_supply for specs by adding voltage levels for power supply (David Welguisz)
  • Added attr_accessor called ip_block_name to creation_info in spec model. (David Welguisz) This will allow for instantiated versions of the ip to know where the base information is.
  • Added description attribute to Origen::Specs (David Welguisz)

Tag: v0.5.8

Branch: ‘master’
by Stephen McGinty on 08-Dec-2015 11:19AM

Re-enabled support for a legacy register definition API to make existing application upgrade to Origen easier.

Updated the DesignSync API to expose an import method, this allows files to be fetched from a vault to the local workspace without setting up a formal association between the local folder and the remote vault.

Tag: v0.5.7

Branch: ‘master’
by Stephen McGinty on 02-Oct-2015 08:50AM

Fixed bug with Origen.app.rc (app revision controller) which did not work if the workspace was based on a fork of the main app repo.

Tag: v0.5.6

Branch: ‘master’
by Stephen McGinty on 25-Sep-2015 05:52AM

Added a new API to get a path to an application’s imports directory. This is a directory that should be used to import 3rd party dependency data which is revision controlled outside of the current application.

Origen will ensure that this directory is outside of the scope of the current application’s revision control system to prevent any conflicts that could arise from having nested revision controlled workspaces.

Origen.root              # => "/home/thao/my_app"

Origen.app.imports_dir   # => "/home/thao/.my_app_imports_DO_NOT_HAND_MODIFY"

Tag: v0.5.5

Branch: ‘master’
by Stephen McGinty on 23-Sep-2015 09:57AM

Disabled ‘origen fetch’ command, this will be re-introduced in future once an Origen server is available

Tag: v0.5.4

Branch: ‘master’
by Stephen McGinty on 22-Sep-2015 09:47AM

Tweaked console inspect output of models/controllers

Tag: v0.5.3

Branch: ‘master’
by Stephen McGinty on 21-Sep-2015 17:31PM

Added concise inspect method to all controllers and models, this makes for much better browsing of a model’s hierarchy in the console

Tag: v0.5.2

Branch: ‘master’
by Stephen McGinty on 21-Sep-2015 08:11AM

Removed branch restrictions from ‘origen rc tag’ when using Git by default. Restrictions will only be in place if app.config.rc_workflow == :gitflow.

Tag: v0.5.1

Branch: ‘master’
by Stephen McGinty on 21-Sep-2015 08:01AM

Targets/environments can now just instantiate top-level models and testers and they will be automatically assigned to $dut and $tester respectively.

# target/eagle.rb
Eagle.new
OrigenTesters::J750.new

# Somewhere else
$dut      # => <eagle instance>
$tester   # => <j750 instance>

Update to Origen::Model to proxy unrecognized methods to the model’s controller.

Made bits.assert an alias of bits.read.

Tag: v0.5.0

Branch: ‘master’
by Stephen McGinty on 21-Sep-2015 04:07AM

Made ‘dut’ and ‘tester’ global methods e.g. allows tester.j750? from anywhere in addition to $tester.j750?

Tag: v0.4.3

Branch: ‘master’
by Stephen McGinty on 18-Sep-2015 08:52AM

Origen.add.rc will now return nil instead of a non-functional revision controller instance in the case where config.rc_url is undefined

Tag: v0.4.2

Branch: ‘master’
by Stephen McGinty on 14-Sep-2015 09:12AM

Added the ability for a given user environment to set their name and email details via environment variables, though via Git is still the preferred method to do this.

Minor update to the Git driver for initializing new applications.

Tag: v0.4.1

Branch: ‘master’
by Stephen McGinty on 10-Sep-2015 07:39AM

Removed the following legacy code/features:

  • Origen::Utility::SRecord, replaced by the OrigenMemoryImage plugin
  • Removed Origen.config.mode, now Origen.mode

Added new ‘origen mode’ command, this allows the operating more to be setup at a workspace level, similar to how the target and environment can be set:

origen mode         # => production, this is the default
origen m            # => production, m is an short cut alias

origen m debug      # Set the workspace mode to debug
origen m simulation # Set the workspace mode to simulation
origen m production # Set the workspace mode back to production

A target or environment file can override the workspace default as before:

Origen.mode = :simulation

Tag: v0.4.0

Branch: ‘master’
by Stephen McGinty on 02-Sep-2015 11:28AM

Added a guard to prevent Origen from loading whenever Freescale RGen is present. This is temporary to help Freescale transition to Origen and will have no effect on everyone else.

Tag: v0.3.0

Branch: ‘master’
by Stephen McGinty on 02-Sep-2015 08:40AM

Removed the following legacy code/features:

  • Origen::Tester module (J750, UltraFLEX, V93K, Doc), replaced by OrigenTesters plugin
  • Origen::Tester::JLink, replaced by OrigenDebuggers plugin
  • Origen::Tester::BDM, no replacement
  • Origen::NVM module, no replacement
  • Origen::Utility::DesignSync, replaced by Origen::RevisionControl::DesignSync
  • Removed the legacy imports system and added a cleaner API for working with plugins:
# Returns an array containing the application instance for all used plugins
Origen.app.plugins  # [<app>, <app>, <app>]

# Set the current plugin, this will persist across Origen threads
Origen.app.plugins.current = :origen_testers

Origen.app.plugins.current         # <origen_testers app instance>
Origen.app.plugins.current.name    # :origen_testers
Origen.app.plugins.current.root    # /path/to/origen_testers/root

# Temporarily set a different plugin, this will not persist to the next thread
Origen.app.plugins.temporary = :origen_debuggers

Origen.app.plugins.current         # <origen_debuggers app instance>

Origen.app.plugins.temporary = nil
Origen.app.plugins.current         # <origen_testers app instance>
Origen.app.plugins.current = nil
Origen.app.plugins.current         # => nil

Tag: v0.2.6

Branch: ‘master’
by Stephen McGinty on 31-Aug-2015 04:21AM

Fixed style issues in logo web page helper

Tag: v0.2.5

Branch: ‘master’
by Stephen McGinty on 31-Aug-2015 04:09AM

Fixed bug with the exit status of commands (e.g. origen lint) not being set correctly when failed

Tag: v0.2.4

Branch: ‘master’
by Stephen McGinty on 31-Aug-2015 03:35AM
  • Removed workspace path from pattern headers for external apps/plugins (@rlaj)
  • Updated logo helper with new Origen logo

Tag: v0.2.3

Branch: ‘master’
by Stephen McGinty on 12-Aug-2015 20:34PM
  • Fixed performance regression when generating multiple patterns back-back. This was caused by querying Git for workspace status info for every pattern, this is now cached after the first call.
  • Some application file cleanup:
    • config/users.rb is now ignored and can be removed, a different API may be introduced in future to define an application’s user list
    • config/development.rb will no longer be generated for new plugins and is considered deprecated, though for now it will continue to be loaded when present
    • config/environment.rb has been renamed to config/boot.rb to differentiate it from environment files. In this case of a plugin this is only loaded when the plugin is running from its own workspace, so it can be used to replace config/development.rb
  • General improvements to the controller API, added more tests for it.
  • The failing stacktrace shown in the console now only shows callers from within the current application. Previous behavior that would show the complete trace (including calls in plugins and Origen core) can be restored by running with –verbose.
  • A proc can now be assigned as a target to use some custom code rather than a target file, this is mainly intended to used within tests:
Origen.target.temporary = -> { $dut = SomeLocalClass.new }

 # Any calls to load or reload the target will now execute the above function
  • Multiple sub_block instances are now supported, this includes various ways to define the base_addresses as shown in the example below:
class Top
  include Origen::TopLevel

  def initialize
    sub_block  :vreg, class_name: "VReg", base_address: 0x1000_0000
    sub_blocks :atd, instances: 2, class_name: "ATD", base_address: 0x2000_0000
    sub_blocks :osc, instances: 2, class_name: "Oscillator", base_address: 0x3000_0000, base_address_step: 0x1000
    sub_blocks :pmc, instances: 2, class_name: "PMC", base_address: [0x4000_0000, 0x4001_0000]
  end
end

dut = Top.new
# The given instance is accessible by appending the index number to the sub_block name
dut.atd0      # => <ATD instance>
dut.atd1      # => <ATD instance>
# Append an 's' to the name to get an array of all instances
dut.atds      # => [<ATD instance>, <ATD instance>]

dut.vreg.base_address  # => 0x1000_0000
dut.atd0.base_address  # => 0x2000_0000
dut.atd1.base_address  # => 0x2000_0000
dut.osc0.base_address  # => 0x3000_0000
dut.osc1.base_address  # => 0x3000_1000
dut.pmc0.base_address  # => 0x4000_0000
dut.pmc1.base_address  # => 0x4001_0000

Tag: v0.2.2

Branch: ‘master’
by Stephen McGinty on 06-Aug-2015 09:38AM

Added support for applications to implement a command called ‘test’ which will accept a -c option to enable coverage.

Tag: v0.2.1

Branch: ‘master’
by Stephen McGinty on 23-Jul-2015 21:26PM

Added config.disqus_shortname attribute to link an application to a disqus forum, see the origen_doc_helpers plugin for more details.

Tag: v0.2.0

Branch: ‘master’
by Stephen McGinty on 20-Jul-2015 07:59AM

Various enhancements:

  • Single page web deploy to Git is now supported via “origen web compile path/to/template -r”
  • The current user’s Git profile to identify their name and email address unless otherwise defined.
  • Added support for Google analytics in generated web pages, add the tracking ID to the front matter of the given page/layout to track it:
---
title: My Page
analytics: UA-12345678-1
---

### My Page
  • No layout can now be specified if the application wants to handle a complete web page layout. When no layout is specified the page will not be wrapped with Origen’s bootstrap or any other template.
---
layout: None
---
<!DOCTYPE html>
<html>
  ...
  • Updated web page layout with Origen logo and footer.
  • Regression commands now work with Git.
  • Initial version of more powerful File diff utility has been added, in addition to reporting whether or not two files are different it will also generate a comparison file. (@priyavadan)
left_file = "#{Origen.root}/left.txt"
right_file = "#{Origen.root}/right.txt"
processor = Origen::Utility::FileDiff::Processor.new(left_file, right_file)

# To Generate a HTML file (diff.html) showing the differences
Origen::Utility::FileDiff::Formatter::Html.new(processor.process!, "#{Origen.root}/diff.html").format

# To Generate a TXT file (diff.txt) showing the differences
Origen::Utility::FileDiff::Formatter::Text.new(processor.process!, "#{Origen.root}/diff.txt").format
  • Various improvements to the Git driver.

Tag: v0.1.3

Branch: ‘master’
by Stephen McGinty on 13-Jul-2015 17:25PM

3rd time lucky…

Tag: v0.1.2

Branch: ‘master’
by Stephen McGinty on 13-Jul-2015 17:20PM

Another release bug fix attempt

Tag: v0.1.1

Branch: ‘master’
by Stephen McGinty on 13-Jul-2015 17:17PM

Bug fix to app release process introduced in last update

Tag: v0.1.0

Branch: ‘master’
by Stephen McGinty on 13-Jul-2015 17:13PM

Improved the Origen boot process, there is now no need for the user to modify their PATH to run Origen.

Tag: v0.0.9

Branch: ‘master’
by Stephen McGinty on 11-Jul-2015 21:32PM

Further improvements to boot process, the user now no longer needs to add anything to their PATH.

Tag: v0.0.8

Branch: ‘master’
by Stephen McGinty on 11-Jul-2015 17:56PM

Fixed rake (broken by last release).

Tag: v0.0.7

Branch: ‘master’
by Stephen McGinty on 11-Jul-2015 17:52PM

Made Origen boot up more robust and with better site control of what gems to use from the system Ruby.

Tag: v0.0.6

Branch: ‘master’
by Stephen McGinty on 30-Jun-2015 22:46PM

All tests now passing

Tag: v0.0.5

Branch: ‘master’
by Stephen McGinty on 26-Jun-2015 10:20AM

‘origen web compile’ can now deploy to a Git repository as well as to a Linux web server directory.

To deploy to Git, setup your application config to point to the required Git repo like this:

config.web_directory = "git@github.com:Origen-SDK/Origen-SDK.github.io.git"
config.web_domain = "https://origen-sdk.org"

A single Git repo can host many sites by deploying to a sub-directory like this:

config.web_directory = "git@github.com:Origen-SDK/Origen-SDK.github.io.git/doc_helpers"
config.web_domain = "https://origen-sdk.org/doc_helpers"

Version archiving is currently not supported with Git deploy, an alternative way of archiving old documentation snapshots may emerge in future.

Tag: v0.0.4

Branch: ‘master’
by Stephen McGinty on 24-Jun-2015 08:56AM

Fixed bug in ‘origen new’ command

Tag: v0.0.3

Branch: ‘master’
by Stephen McGinty on 24-Jun-2015 08:00AM

‘origen new’ command now works with origen_app_generators hosted on rubygems.org

Tag: v0.0.2

Branch: ‘master’
by Stephen McGinty on 24-Jun-2015 05:21AM

Periodic tag/gem release during initial development, many features not working yet


Comments