モデリングに SystemC を使用していますが、信号、バッファ、FIFO を含む「チャネル」について少し混乱しています。
では、シグナルとバッファの違いを教えてもらえますか? Verilog HDL のワイヤとレジスタ変数の違いと同じですか? シグナルをバッファ変数にバインドできますか?
sc_buffer
とsc_signal
はどちらも を実装するプリミティブ チャネルですsc_signal_inout_if
。「バッファ」はタイプ のオブジェクトでsc_buffer
あり、「シグナル」はタイプ のオブジェクトですsc_signal
。2 つの唯一の違いは、バッファが値を変更するかどうかにかかわらず、バッファが書き込まれるたびに値変更イベントを取得することです。
Verilog には同等のものがないため、ワイヤやレジスタとは関係ありません。VHDLにも似たようなものがあります。変更の有無に関係なく、 が書き込ま<sig>'transaction
れるたびにデルタ サイクルで「0」と「1」の間で切り替わる暗黙のシグナルを提供します。が実際に変更された場合にのみ、デルタで真になります。<sig>
<sig>
<sig>'event
<sig>
つまり、書き込みが何も変更されていなくても、チャネルが書き込まれたかどうかを知る必要がある場合は、バッファを使用してください。