比較表

結構、あちこちにありますが一応メモがてら。
変数(or 信号線)Aは4bit幅、Rubyの場合は%4bでフォーマットして表示させて、内部で処理させる符号は扱わないとしています。

操作内容 VHDL Ruby
ビット反転 not A (~a) & 0xf
2の補数 (not A) + ‘1’ ((~a) + 1) & 0xf)
左1bitシフト A & ‘0’ a << 1
右1bitシフト ‘0’ & A(3 downto 1) a >> 1
LSBを0ビット目とした場合のxビット目 A(x) a[x]