當且僅當在該週期調用接口方法/任務時,是否可以合成在週期上聲明的啓用信號?需要類似以下內容:啓用功能/方法調用
interface RAM (logic clk);
logic enable;
// ...
always_ff @(posedge clk) enable = 0;
task Read(input address_t address);
enable = 1;
// ...
endtask
//...
modport server(input clk, input enable, ...);
modport client(input clk, export Read, ...);
endinterface
顯然上述是非法的。我唯一的想法是保存以前的狀態,比較當前和以前的賦值是否與always_ff相同或不相同,並在任務調用中取反。這看起來並不實際 - 它是非常具體的,因此不太可能在P期間優化掉。我真正需要的是一個具有語義的邏輯元素,當賦值給它賦值時,否則它會變爲默認值。
你能解釋一下時,任務'Read'被調用?Read是一個阻塞任務,還是它真的是一個函數? –
在控制用戶邏輯中將調用Read。因此,您將在某個地方有一個always_ff塊的模塊。有條件的有兩條路徑,一條是讀取被調用,另一條是不是。我不確定這是否回答你的問題。 – sudoer
當* *讀取被調用嗎?你能保證'enable'被設置爲eit她在想要清除它的「總是」之前還是之後,還是有一場比賽?你能畫一個你想要發生什麼的電路圖嗎? – EML