2024年3月13日 星期三

******SystemC-- 訊號和變數

  • 訊號不能用 in、out 或 inout 來聲明,訊號的傳輸方向取決於連接部分的連接埠狀態。
  • 訊號常被用來連接模組和用於進程間通信,變數則用於進程和模組的本地儲存。
  • 變數模擬的賦值是立刻發生的,沒有 delta 延遲;而訊號和連接埠的值刷新要經過一個 delta 延遲。
  • 訊號應常被綜合為邏輯塊間的連線;變數常被綜合為邏輯塊,可以是組合或時序邏輯。


訊號和連接埠的關聯

關聯(Association)基本上等於連接(Connect),也成為了綁定(Bind)-

關聯分為位置關聯名字關聯

sc_signal<bool> a, b, f;

sc_clock clk("Clk", 20, SC_NS);

  • 位置關聯:依照連接埠定義的順序一一對應

適合少量連接埠的模組,但在大量連接埠的模組中非常危險,因為可能不經意修改了連接埠順序

nand2 N2("Nand2");
N2.A(a);
N2.B(b);
N2.F(f);

tb tb1("tb");
tb1.clk(clk);
tb1.a(a);
tb1.b(b);
tb1.f(f);

  • 名字關聯:依名字一一對應

對於大型的 SystemC 項目,一般建議統一使用名字關聯

nand2 N2("Nand2");
N2(a, b, f);

tb tb1("tb");
tb1(clk, a, b, f);

建構函數

使用 SC_CTOR 標識,建構函數的名字必須與模組的名字相同,用於初始化進程的類型並建立進程的敏感表。








 

沒有留言:

張貼留言

*******【WSL教學】在Windows上執行Linux + VSCode

安裝WSL: 以管理員身份運行PowerShell來開啟此功能。要做到這一點,您可以在Windows搜索欄中輸入“PowerShell”,然後右鍵單擊Windows PowerShell,選擇“以管理員身份運行”。 在PowerShell中,輸入以下指令以安裝WSL。 wsl -...