Может ли в SystemC порт типа sc_signal_in/out быть привязан к первичному каналу sc_buffer?
Я использую SystemC для моделирования, и меня немного смущает "канал", который включает в себя сигнал, буфер и fifo.
Так может ли кто-нибудь сказать мне разницу сигнала и буфера? Это то же самое, что разница между проводной и регистровой переменными в Verilog HDL? Может ли сигнал быть связан с буферной переменной?
1 ответ
sc_buffer
а также sc_signal
оба примитивных канала, которые реализуют sc_signal_inout_if
; "буфер" - это объект типа sc_buffer
в то время как "сигнал" является объектом типа sc_signal
, Единственное различие между ними состоит в том, что вы получаете событие изменения значения всякий раз, когда записывается буфер, независимо от того, изменяет он значение или нет.
В Verilog нет аналога, так что ничего общего с проводами и регистрами нет. В VHDL есть нечто похожее. <sig>'transaction
дает вам неявный сигнал, который переключается между "0" и "1" в дельта-цикле всякий раз, когда <sig>
написано, независимо от того, <sig>
изменения. <sig>'event
верно только в дельте, когда <sig>
действительно изменился.
Короче говоря, используйте буфер, когда вам нужно знать, был ли записан канал, даже если запись ничего не изменила.