class Origen::Models::ScanRegister
Attributes
size[R]
Public Class Methods
new(options = {})
click to toggle source
# File lib/origen/models/scan_register.rb, line 8 def initialize(options = {}) # The shift register reg :sr, 0, size: size, reset: options[:reset] || 0 # The update register, this is the value presented to the outside world reg :ur, 0, size: size, reset: options[:reset] || 0 port :si # Scan in port :so # Scan out port :c, size: size # Capture in # Control signals port :se # Shift enable port :ce # Capture enable port :ue # Update enable so.connect_to(sr[0]) end
Public Instance Methods
clock_apply()
click to toggle source
# File lib/origen/models/scan_register.rb, line 61 def clock_apply if @mode == :shift sr.shift_right(@din) elsif @mode == :capture sr.write(@din) elsif @mode == :update ur.write(@din) end @din = nil @mode = nil end
clock_prepare()
click to toggle source
# File lib/origen/models/scan_register.rb, line 50 def clock_prepare @mode = mode if @mode == :shift @din = si.data elsif @mode == :capture @din = c.data elsif @mode == :update @din = sr.data end end
method_missing(method, *args, &block)
click to toggle source
Calls superclass method
Origen::Model#method_missing
# File lib/origen/models/scan_register.rb, line 26 def method_missing(method, *args, &block) if BitCollection.instance_methods.include?(method) ur.send(method, *args, &block) else super end end
mode()
click to toggle source
# File lib/origen/models/scan_register.rb, line 38 def mode if se.data == 1 :shift elsif ce.data == 1 :capture elsif ue.data == 1 :update else undefined end end
respond_to?(*args)
click to toggle source
Calls superclass method
Origen::Model#respond_to?
# File lib/origen/models/scan_register.rb, line 34 def respond_to?(*args) super(*args) || BitCollection.instance_methods.include?(args.first) end