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 |