Sha256: 29cbd0e35494275bf450a44cdc494cee09500555d3cf98fdd2e5a89d47fe6ef4

Contents?: true

Size: 546 Bytes

Versions: 100

Compression:

Stored size: 546 Bytes

Contents

require 'HDLRuby'

configure_high


# Describes an 16-bit shift register.
system :shift16 do
    input :clk, :rst, :din
    output :dout

    [15..0].inner :reg

    dout <= reg[15] # The output is the last bit of the register.

    par(clk.posedge) do
        hif(rst) { reg <= 0 }
        helse seq do
            reg[0] <= din
            reg[15..1] <= reg[14..0]
        end 
    end
end

# Instantiate it for checking.
shift16 :shift16I

# Generate the low level representation.
low = shift16I.systemT.to_low

# Displays it
puts low.to_yaml

Version data entries

100 entries across 100 versions & 1 rubygems

Version Path
HDLRuby-2.6.2 lib/HDLRuby/high_samples/shift.rb
HDLRuby-2.5.1 lib/HDLRuby/high_samples/shift.rb
HDLRuby-2.5.0 lib/HDLRuby/high_samples/shift.rb
HDLRuby-2.4.29 lib/HDLRuby/high_samples/shift.rb
HDLRuby-2.4.28 lib/HDLRuby/high_samples/shift.rb
HDLRuby-2.4.27 lib/HDLRuby/high_samples/shift.rb
HDLRuby-2.4.26 lib/HDLRuby/high_samples/shift.rb
HDLRuby-2.4.25 lib/HDLRuby/high_samples/shift.rb
HDLRuby-2.4.22 lib/HDLRuby/high_samples/shift.rb
HDLRuby-2.4.21 lib/HDLRuby/high_samples/shift.rb
HDLRuby-2.4.20 lib/HDLRuby/high_samples/shift.rb
HDLRuby-2.4.19 lib/HDLRuby/high_samples/shift.rb
HDLRuby-2.4.18 lib/HDLRuby/high_samples/shift.rb
HDLRuby-2.4.17 lib/HDLRuby/high_samples/shift.rb
HDLRuby-2.4.15 lib/HDLRuby/high_samples/shift.rb
HDLRuby-2.4.14 lib/HDLRuby/high_samples/shift.rb
HDLRuby-2.4.12 lib/HDLRuby/high_samples/shift.rb
HDLRuby-2.4.11 lib/HDLRuby/high_samples/shift.rb
HDLRuby-2.4.10 lib/HDLRuby/high_samples/shift.rb
HDLRuby-2.4.9 lib/HDLRuby/high_samples/shift.rb