禁止語句

禁止語句

禁止語句使用關鍵字disable,能夠在任務或程式塊沒有執行完它的所有語句前終止其執行。它能夠用於對硬體中斷和全局復位進行建模。

形式

禁止語句是過程性語句,因此它只能出現在always語句和initial語句內,其形式如下:

disable task_id;

disable block_id;

其中,task_id是要終止的任務,block_id是要終止的語句塊。

如果disable語句用於終止語句塊,那么disable語句執行後,將繼續執行語句塊後面的語句。

禁止語句塊

一個語句塊的代碼片段,通過disable語句可以禁止語句塊:

禁止語句 禁止語句

這是一個begin—end語句塊,共有4條語句,但是在執行完前兩條語句後這個語句塊就被disable禁止了,所以語句3和語句4從未執行。在禁止語句被執行後,將執行這個語句塊後面的語句,即語句5。

如果disable語句用於終止任務,那么disable語句執行後,將繼續任務調用語句後面的語句。

禁止任務

一個任務的代碼片段,通過disable語句可以禁止任務:

禁止語句 禁止語句

當disable語句執行時,任務被禁止,即語句7永遠不會被執行。然後,緊跟在任務調用語句之後的語句9被執行。

建議在任務定義中最好不要使用禁止語句,尤其是當任務具有一定的返回值時更是如此。這是因為當任務禁止時,其輸出和輸入參數值是不確定的,返回的就是一個不確定的值。如果必須在任務中這樣做,一種比較穩妥的方法是在任務中禁止順序語句塊。

順序語句塊

一個任務的代碼片段,disable語句禁止任務內的順序語句塊。

禁止語句 禁止語句

當禁止語句開始執行時,順序程式塊LOCAL_BLK的執行被終止;語句11將不會被執行。由於這是任務中的惟一語句,因此間接地實現了任務的終止,此時輸出Count的值為10。如果禁止語句被替換為:

disable Example;

那么禁止語句的執行會直接終止任務,導致其輸出Count的值為不確定值。

相關詞條

熱門詞條

聯絡我們