2016-02-13 37 views
-1

有時我們需要調用一個可綜合代碼中的任務,這是我們多次將參數傳遞給一個任務。 ,讓我們說或我們的通話任務太長 那麼如果我們多次調用任務 所以我的問題是,在每次它創建調用任務的實例我們只是傳遞參數?如何在verilog中使用任務?

+0

我認爲當'Task'定義中使用'automatic'關鍵字時,它會每次創建一個調用任務的新實例,但是當沒有指定'automatic'時,它只會創建一個實例並將其用於其他調用。 –

+0

所以你的意思是它不會在每個聲明中產生硬件,它只會將值傳遞給只有一個硬件,這將是我們的任務 – Mayur

+0

我認爲這是如此,只是改變硬件輸入信號。等待專家的回答。 –

回答

0

在模塊,接口,程序或包中定義的任務默認爲默認爲靜態的 。這些項目應該在同時執行的任務的所有用途 中共享。在課堂上定義的任務是始終自動的 。

在自動任務中聲明的所有項目都是爲每個調用動態分配的。所有形式參數和局部變量都存儲在堆棧中。

任務可能同時啓用多次。在每個併發任務調用上覆制自動任務的所有變量應爲以存儲特定於該調用的狀態。

靜態任務的所有變量應靜態在應有對應於每一個變量在一個模塊實例聲明的局部變量,無論併發激活任務的的數量。

但是,模塊不同實例中的靜態任務應該具有彼此獨立的存儲。

有關詳細信息,請訪問System Verilog LRM的主題13.3。

+0

問題是'Verilog',而不是'SystemVerilog'。主要問題是,每個「任務」調用都會生成新硬件嗎? –

+0

我問任務 – Mayur

+0

可合成的性質無論任務的性質我不想創建多個相同任務的實例意味着我不想複製硬件總是你在軟件告訴我想知道硬件級別的任務性質 – Mayur