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-3.4.0 lib/HDLRuby/high_samples/shift.rb
HDLRuby-3.3.4 lib/HDLRuby/high_samples/shift.rb
HDLRuby-3.3.3 lib/HDLRuby/high_samples/shift.rb
HDLRuby-3.3.1 lib/HDLRuby/high_samples/shift.rb
HDLRuby-3.3.0 lib/HDLRuby/high_samples/shift.rb
HDLRuby-3.2.0 lib/HDLRuby/high_samples/shift.rb
HDLRuby-3.1.0 lib/HDLRuby/high_samples/shift.rb
HDLRuby-3.0.0 lib/HDLRuby/high_samples/shift.rb
HDLRuby-2.11.12 lib/HDLRuby/high_samples/shift.rb
HDLRuby-2.11.11 lib/HDLRuby/high_samples/shift.rb
HDLRuby-2.11.10 lib/HDLRuby/high_samples/shift.rb
HDLRuby-2.11.9 lib/HDLRuby/high_samples/shift.rb
HDLRuby-2.11.8 lib/HDLRuby/high_samples/shift.rb
HDLRuby-2.11.7 lib/HDLRuby/high_samples/shift.rb
HDLRuby-2.11.5 lib/HDLRuby/high_samples/shift.rb
HDLRuby-2.11.4 lib/HDLRuby/high_samples/shift.rb
HDLRuby-2.11.3 lib/HDLRuby/high_samples/shift.rb
HDLRuby-2.11.2 lib/HDLRuby/high_samples/shift.rb
HDLRuby-2.11.0 lib/HDLRuby/high_samples/shift.rb
HDLRuby-2.10.5 lib/HDLRuby/high_samples/shift.rb