我正在使用 SystemC 进行建模,我对“通道”有点困惑,其中包括信号、缓冲区和 fifo。
那么谁能告诉我信号和缓冲区的区别?和Verilog HDL中wire和register变量的区别一样吗?信号可以绑定到缓冲区变量吗?
sc_buffer
并且sc_signal
都是实现的原始通道sc_signal_inout_if
;'buffer' 是 type 的对象sc_buffer
,而 'signal' 是 type 的对象sc_signal
。两者之间的唯一区别是,无论何时写入缓冲区,无论它是否更改值,都会收到值更改事件。
Verilog 中没有等价物,因此与电线和寄存器无关。VHDL中有类似的东西。<sig>'transaction
为您提供一个隐式信号,该信号在每次写入时在增量周期中在“0”和“1”之间切换<sig>
,无论是否<sig>
更改。<sig>'event
仅在<sig>
实际发生变化时才在 delta 中成立。
因此,简而言之,当您需要知道通道是否已写入时,请使用缓冲区,即使写入没有改变任何内容。