Sha256: 8fc100bd405f63d1017cb4b74c4f82d8d2c9c908b460f16ae2cc9a50c0eaa045

Contents?: true

Size: 633 Bytes

Versions: 3

Compression:

Stored size: 633 Bytes

Contents

module OrigenVerilog
  class TopLevel
    include Origen::TopLevel

    attr_reader :name

    def initialize(options = {})
      @name = options[:ast].to_a[0]

      options[:ast].pins.each do |node|
        name = node.to_a.last
        if node.type == :input_declaration
          direction = :input
        elsif node.type == :ouput_declaration
          direction = :output
        else
          direction = :io
        end
        if r = node.find(:range)
          size = r.to_a[0] - r.to_a[1] + 1
        else
          size = 1
        end
        add_pin name, direction: direction, size: size
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
origen_verilog-0.2.2 lib/origen_verilog/top_level.rb
origen_verilog-0.2.1 lib/origen_verilog/top_level.rb
origen_verilog-0.2.0 lib/origen_verilog/top_level.rb