我正在使用SystemC进行建模,我对“频道”有点困惑,其中包括信号,缓冲区和fifo。
那么有人能告诉我信号和缓冲的区别吗?它是否与Verilog HDL中的线和寄存器变量之间的差异相同?信号可以绑定到缓冲区变量吗?
答案 0 :(得分:3)
sc_buffer
和sc_signal
都是实现sc_signal_inout_if
的原始渠道; 'buffer'是sc_buffer
类型的对象,而'signal'是sc_signal
类型的对象。两者之间的唯一区别是,无论何时写入缓冲区,无论是否更改值,都会得到值更改事件。
在Verilog中没有相应的东西,所以与电线和寄存器无关。 VHDL中有类似的东西。 <sig>'transaction
为您提供一个隐式信号,无论<sig>
是否发生变化,只要写入<sig>
,就会在delta周期中在'0'和'1'之间切换。 <sig>'event
仅在<sig>
实际发生更改时才会生效。
因此,简而言之,当您需要知道是否已写入某个通道时,请使用缓冲区,即使写入没有改变任何内容。