Method: Handshaker#write

Defined in:
lib/HDLRuby/hdr_samples/with_class.rb

#write(target, &blk) ⇒ Object

Generates a blocking write.


127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
# File 'lib/HDLRuby/hdr_samples/with_class.rb', line 127

def write(target,&blk)
    obuffer = @obuffer
    oread_valid  = @oread_valid
    oread_ready  = @oread_ready
    owrite_valid = @owrite_valid
    owrite_ready = @owrite_ready
    HDLRuby::High.cur_block.open do
        hif(owrite_valid) do
            oread_valid <= 0
            oread_ready <= 0
            hif(owrite_ready) do
                obuffer <= target
                oread_valid <= 1
                blk.call if blk
            end
        end 
        helse do
            oread_ready <= 1
        end
    end
end