origen 0.5.0 → 0.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
 - data/config/version.rb +1 -1
 - data/lib/origen/application.rb +1 -0
 - data/lib/origen/model.rb +16 -0
 - data/lib/origen/registers.rb +8 -6
 - data/lib/origen/registers/bit.rb +1 -0
 - data/lib/origen/registers/bit_collection.rb +2 -0
 - data/lib/origen/registers/reg.rb +2 -2
 - metadata +1 -1
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA1:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 355a5d755ad608e02b9d2676a281a938f3963223
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: e2632fa01a0af74099c01d2b972f4e77567dd139
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 7182ff153b5811d71e43b327db0b8b9bbebbbddf1ceed51ee337b2bc44ae02a9d592cc010f9c9000e44445b481412a9aed7b73f429009bfbb305aa384ff51ad0
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: fc9a2a22b42be0d5a31b29a0f22bbf3d933c0dea90cafa90c22398db90a58324063556bce9d6f5aae1e286c33b83a320bbc2397d4831bc3f56b618f7ad2fe862
         
     | 
    
        data/config/version.rb
    CHANGED
    
    
    
        data/lib/origen/application.rb
    CHANGED
    
    
    
        data/lib/origen/model.rb
    CHANGED
    
    | 
         @@ -269,6 +269,22 @@ module Origen 
     | 
|
| 
       269 
269 
     | 
    
         
             
                  result
         
     | 
| 
       270 
270 
     | 
    
         
             
                end
         
     | 
| 
       271 
271 
     | 
    
         | 
| 
      
 272 
     | 
    
         
            +
                # Used to proxy all method and attribute requests not implemented on the model
         
     | 
| 
      
 273 
     | 
    
         
            +
                # to the controller.
         
     | 
| 
      
 274 
     | 
    
         
            +
                #
         
     | 
| 
      
 275 
     | 
    
         
            +
                # On first call of a missing method a method is generated to avoid the missing lookup
         
     | 
| 
      
 276 
     | 
    
         
            +
                # next time, this should be faster for repeated lookups of the same method, e.g. reg
         
     | 
| 
      
 277 
     | 
    
         
            +
                def method_missing(method, *args, &block)
         
     | 
| 
      
 278 
     | 
    
         
            +
                  if controller.respond_to?(method)
         
     | 
| 
      
 279 
     | 
    
         
            +
                    define_singleton_method(method) do |*args, &block|
         
     | 
| 
      
 280 
     | 
    
         
            +
                      controller.send(method, *args, &block)
         
     | 
| 
      
 281 
     | 
    
         
            +
                    end
         
     | 
| 
      
 282 
     | 
    
         
            +
                    send(method, *args, &block)
         
     | 
| 
      
 283 
     | 
    
         
            +
                  else
         
     | 
| 
      
 284 
     | 
    
         
            +
                    super
         
     | 
| 
      
 285 
     | 
    
         
            +
                  end
         
     | 
| 
      
 286 
     | 
    
         
            +
                end
         
     | 
| 
      
 287 
     | 
    
         
            +
             
     | 
| 
       272 
288 
     | 
    
         
             
                private
         
     | 
| 
       273 
289 
     | 
    
         | 
| 
       274 
290 
     | 
    
         
             
                def _modes
         
     | 
    
        data/lib/origen/registers.rb
    CHANGED
    
    | 
         @@ -618,12 +618,13 @@ module Origen 
     | 
|
| 
       618 
618 
     | 
    
         
             
                end
         
     | 
| 
       619 
619 
     | 
    
         | 
| 
       620 
620 
     | 
    
         
             
                def write_register_missing!(reg)
         
     | 
| 
      
 621 
     | 
    
         
            +
                  klass = (try(:controller) || self).class
         
     | 
| 
       621 
622 
     | 
    
         
             
                  puts ''
         
     | 
| 
       622 
623 
     | 
    
         
             
                  puts ''
         
     | 
| 
       623 
624 
     | 
    
         
             
                  puts <<-EOT
         
     | 
| 
       624 
     | 
    
         
            -
            You have made a request to write register: #{reg.name}, however the #{ 
     | 
| 
       625 
     | 
    
         
            -
            class does not know how to do this yet. You  
     | 
| 
       626 
     | 
    
         
            -
            method in the #{ 
     | 
| 
      
 625 
     | 
    
         
            +
            You have made a request to write register: #{reg.name}, however the #{klass}
         
     | 
| 
      
 626 
     | 
    
         
            +
            class does not know how to do this yet. You should implement a write_register
         
     | 
| 
      
 627 
     | 
    
         
            +
            method in the #{klass} like this:
         
     | 
| 
       627 
628 
     | 
    
         | 
| 
       628 
629 
     | 
    
         
             
              def write_register(reg, options={})
         
     | 
| 
       629 
630 
     | 
    
         
             
                <logic to handle the writing of the reg object here>
         
     | 
| 
         @@ -634,12 +635,13 @@ method in the #{self.class} like this: 
     | 
|
| 
       634 
635 
     | 
    
         
             
                end
         
     | 
| 
       635 
636 
     | 
    
         | 
| 
       636 
637 
     | 
    
         
             
                def read_register_missing!(reg)
         
     | 
| 
      
 638 
     | 
    
         
            +
                  klass = (try(:controller) || self).class
         
     | 
| 
       637 
639 
     | 
    
         
             
                  puts ''
         
     | 
| 
       638 
640 
     | 
    
         
             
                  puts ''
         
     | 
| 
       639 
641 
     | 
    
         
             
                  puts <<-EOT
         
     | 
| 
       640 
     | 
    
         
            -
            You have made a request to read register: #{reg.name}, however the #{ 
     | 
| 
       641 
     | 
    
         
            -
            class does not know how to do this yet. You  
     | 
| 
       642 
     | 
    
         
            -
            method in the #{ 
     | 
| 
      
 642 
     | 
    
         
            +
            You have made a request to read register: #{reg.name}, however the #{klass}
         
     | 
| 
      
 643 
     | 
    
         
            +
            class does not know how to do this yet. You should implement a read_register
         
     | 
| 
      
 644 
     | 
    
         
            +
            method in the #{klass} like this:
         
     | 
| 
       643 
645 
     | 
    
         | 
| 
       644 
646 
     | 
    
         
             
              def read_register(reg, options={})
         
     | 
| 
       645 
647 
     | 
    
         
             
                <logic to handle reading the reg object here>
         
     | 
    
        data/lib/origen/registers/bit.rb
    CHANGED
    
    
| 
         @@ -255,6 +255,7 @@ module Origen 
     | 
|
| 
       255 
255 
     | 
    
         
             
                    end
         
     | 
| 
       256 
256 
     | 
    
         
             
                    self
         
     | 
| 
       257 
257 
     | 
    
         
             
                  end
         
     | 
| 
      
 258 
     | 
    
         
            +
                  alias_method :assert, :read
         
     | 
| 
       258 
259 
     | 
    
         | 
| 
       259 
260 
     | 
    
         
             
                  # Returns a value representing the bit collection / register where a bit value of
         
     | 
| 
       260 
261 
     | 
    
         
             
                  # 1 means the bit is enabled for the given operation.
         
     | 
| 
         @@ -387,6 +388,7 @@ module Origen 
     | 
|
| 
       387 
388 
     | 
    
         
             
                    @reg.request(:read_register, options)
         
     | 
| 
       388 
389 
     | 
    
         
             
                    self
         
     | 
| 
       389 
390 
     | 
    
         
             
                  end
         
     | 
| 
      
 391 
     | 
    
         
            +
                  alias_method :assert!, :read!
         
     | 
| 
       390 
392 
     | 
    
         | 
| 
       391 
393 
     | 
    
         
             
                  # Normally whenever a register is processed by the $top.read_register method
         
     | 
| 
       392 
394 
     | 
    
         
             
                  # it will call Reg#clear_flags to acknowledge that the read has been performed,
         
     | 
    
        data/lib/origen/registers/reg.rb
    CHANGED
    
    | 
         @@ -656,10 +656,10 @@ module Origen 
     | 
|
| 
       656 
656 
     | 
    
         
             
                  def request(operation, options = {}) # :nodoc:
         
     | 
| 
       657 
657 
     | 
    
         
             
                    if operation == :read_register
         
     | 
| 
       658 
658 
     | 
    
         
             
                      object = reader
         
     | 
| 
       659 
     | 
    
         
            -
                      owner.read_register_missing!(self) unless object
         
     | 
| 
      
 659 
     | 
    
         
            +
                      (Origen.top_level || owner).read_register_missing!(self) unless object
         
     | 
| 
       660 
660 
     | 
    
         
             
                    else
         
     | 
| 
       661 
661 
     | 
    
         
             
                      object = writer
         
     | 
| 
       662 
     | 
    
         
            -
                      owner.write_register_missing!(self) unless object
         
     | 
| 
      
 662 
     | 
    
         
            +
                      (Origen.top_level || owner).write_register_missing!(self) unless object
         
     | 
| 
       663 
663 
     | 
    
         
             
                    end
         
     | 
| 
       664 
664 
     | 
    
         
             
                    object.send(operation, self, options)
         
     | 
| 
       665 
665 
     | 
    
         
             
                    self
         
     |