三防平板應(yīng)用-Verilog HDL時(shí)序檢查
時(shí)間:2024-08-08 作者:樂凡信息 瀏覽:223

1、 三防平板應(yīng)用中的時(shí)序檢查概述

三防平板應(yīng)用中的時(shí)序檢查可以放在指定塊中,通過確保關(guān)鍵事件在給定的時(shí)間限制內(nèi)發(fā)生來驗(yàn)證設(shè)計(jì)的時(shí)序性能。為了方便起見,將時(shí)序檢查分成兩組。第一組時(shí)序檢查是根據(jù)穩(wěn)定性時(shí)間窗口描述的:

第二組中的定時(shí)檢查檢查時(shí)鐘和控制信號,并根據(jù)兩個(gè)事件之間的時(shí)間差進(jìn)行描述($nochange檢查涉及三個(gè)事件):


盡管它們以$開頭,但是時(shí)序檢查不是系統(tǒng)任務(wù)。由于歷史原因,出現(xiàn)前導(dǎo)“$”,定時(shí)檢查不應(yīng)該與系統(tǒng)任務(wù)混淆。特別是指定塊中不能出現(xiàn)任何系統(tǒng)任務(wù),在過程代碼中也不能出現(xiàn)任何時(shí)序檢查。

一些時(shí)序檢查能接受負(fù)限制值。所有時(shí)序檢查都有一個(gè)參考事件和一個(gè)數(shù)據(jù)事件,并且布爾條件可以與每個(gè)事件相關(guān)聯(lián)。有些檢查有兩個(gè)信號自變量,其中一個(gè)是引用事件,另一個(gè)是數(shù)據(jù)事件。其他檢查只有一個(gè)信號自變量,參考事件和數(shù)據(jù)事件都是從中得出的。只有當(dāng)相關(guān)條件為真時(shí),才能通過時(shí)序檢查檢測到參考事件和數(shù)據(jù)事件。


時(shí)序檢查評估基于兩個(gè)事件的時(shí)間,這兩個(gè)事件分別稱為時(shí)間戳事件和時(shí)間檢查事件。時(shí)間戳事件信號上的跳變使仿真器記錄(標(biāo)記)跳變時(shí)間,以供將來在評估時(shí)序檢查時(shí)使用。時(shí)間檢查事件信號上的跳變導(dǎo)致仿真器實(shí)際評估時(shí)序檢查以確定是否發(fā)生了沖突。

對于某些檢查,參考事件總是時(shí)間戳事件,數(shù)據(jù)事件總是時(shí)間檢查事件;而對于其他檢查,情況正好相反。對于其他檢查,關(guān)于哪個(gè)是時(shí)間戳事件、哪個(gè)是時(shí)間檢查事件的決定是基于下面更詳細(xì)討論的因素。

每個(gè)時(shí)序檢查都可以包括一個(gè)可選的通知程序,每當(dāng)時(shí)序檢查檢測到違規(guī)時(shí),該通知程序就會切換。該模型可以使用通知程序使行為成為時(shí)序檢查違規(guī)的函數(shù)。

與模塊路徑延遲表達(dá)式一樣,時(shí)序檢查限制值是常數(shù)表達(dá)式,可以包括指定參數(shù)。

2、 三防平板應(yīng)用中的使用穩(wěn)定窗口的時(shí)序檢查

三防平板應(yīng)用中的使用穩(wěn)定窗口的時(shí)序檢查接受兩個(gè)信號,即參考事件和數(shù)據(jù)事件,并定義一個(gè)信號的時(shí)間窗口,同時(shí)檢查另一信號相對于該窗口的跳變時(shí)間。通常,它們都執(zhí)行以下步驟:

(1)使用指定的一個(gè)或多個(gè)限制來定義關(guān)于參考信號的時(shí)間窗口;

(2)檢查數(shù)據(jù)信號相對于時(shí)間窗口的跳變時(shí)間;

(3)如果數(shù)據(jù)信號在時(shí)間窗口內(nèi)跳變,則報(bào)告時(shí)序沖突。1.$setup

語法格式為

其中,data_event為時(shí)間戳事件;reference_event為時(shí)間檢查事件;limit為非負(fù)常數(shù)表達(dá)式;notifier(可選)為Reg。

此外,數(shù)據(jù)(時(shí)間戳)事件通常是一個(gè)數(shù)據(jù)信號,而參考事件(時(shí)間檢查事件)通常是一個(gè)時(shí)鐘信號。時(shí)間窗口的終點(diǎn)由下式確定:

在下面情況下,$setup時(shí)序檢查報(bào)告時(shí)序沖突,即

圖1更清楚地說明以上公式給出的約束條件。從圖中可知允許的建立時(shí)間窗口寬度由limit決定。對于數(shù)據(jù)信號(時(shí)間戳事件)來說,它應(yīng)該在窗口的起點(diǎn)以外就應(yīng)該有效。如果數(shù)據(jù)信號的有效時(shí)間落在了時(shí)間窗口內(nèi),就表示時(shí)間戳事件沒有為參考事件(clk信號)提供足夠的建立時(shí)間,也就是不滿足建立時(shí)間要求,這就會產(chǎn)生建立時(shí)間的沖突。



圖1 $setup時(shí)序檢查的概念2.$hold

語法格式為

其中,reference_event為時(shí)間戳事件;data_event為時(shí)間檢查事件;limit為非負(fù)常數(shù)表達(dá)式;notifier(可選)為reg;

此外,數(shù)據(jù)事件(時(shí)間檢查事件)通常是一個(gè)數(shù)據(jù)信號,而參考事件(時(shí)間戳事件)通常是一個(gè)時(shí)鐘信號。時(shí)間窗口的起點(diǎn)和終點(diǎn)由下式確定:

在下面情況下,$hold時(shí)序檢查報(bào)告時(shí)序沖突,即

圖2更清楚地說明以上公式給出的約束條件。從圖中可知允許的保持時(shí)間窗口寬度由limit決定。三防平板應(yīng)用中的對于數(shù)據(jù)信號(時(shí)間檢查事件)來說,它應(yīng)該在窗口的起點(diǎn)開始一直到窗口終點(diǎn)一直有效。如果數(shù)據(jù)信號(時(shí)間檢查事件)的有效時(shí)間落在了時(shí)間窗口內(nèi),就表示時(shí)間檢查事件沒有為時(shí)間戳事件(clk信號)提供足夠的保持時(shí)間,也就是不滿足保持時(shí)間要求,這就會產(chǎn)生保持時(shí)間的沖突。



圖2 $hold時(shí)序檢查的概念3.$setuphold

語法格式為

三防平板應(yīng)用中的其中,reference_event表示當(dāng)建立限制條件的值是正數(shù)的時(shí)候,為時(shí)間檢查事件或者時(shí)間戳事件;當(dāng)建立限制條件的值是負(fù)數(shù)的時(shí)候,為時(shí)間戳事件。data_event表示當(dāng)保持限制條件的值是正數(shù)的時(shí)候,為時(shí)間檢查事件或者時(shí)間戳事件;當(dāng)保持限制條件值是負(fù)數(shù)時(shí),為時(shí)間戳事件。setup_limit為常數(shù)表達(dá)式;hold_limit為常數(shù)表達(dá)式;notifier(可選)為Reg;timestamp_cond(可選)為用于負(fù)的時(shí)序檢查的時(shí)間戳條件;timecheck_cond(可選)為用于負(fù)的時(shí)序檢查的時(shí)間檢查條件;delayed_reference(可選)為用于負(fù)的時(shí)序檢查延遲的參考信號;delayed_data(可選)為用于負(fù)的時(shí)序檢查延遲的數(shù)據(jù)信號。$setuphold時(shí)序檢查可以接受限制值為負(fù)數(shù)的條件。此處,數(shù)據(jù)事件通常是一個(gè)數(shù)據(jù)信號,而參考事件通常是一個(gè)時(shí)鐘信號。當(dāng)建立限制和保持限制的值均為正數(shù)時(shí),參考事件或數(shù)據(jù)事件可作為時(shí)間檢查事件,這將取決在仿真時(shí)首先發(fā)生的事件。

三防平板應(yīng)用中的如果建立限制或保持限制的值其中有一個(gè)為負(fù)數(shù)時(shí),限制條件變成如下表達(dá)式:

$setuphold時(shí)序檢查將$setup和$hold時(shí)序檢查功能組合為一個(gè)時(shí)序檢查。

因此,下面的調(diào)用:

等效于下面的功能(如果tSU和tHLD都不是負(fù)數(shù)時(shí)):

當(dāng)建立約束和保持約束為正,數(shù)據(jù)事件首先發(fā)生時(shí),時(shí)間窗口的起點(diǎn)和終點(diǎn)由下式確定:

在下面的情況下,$setuphold時(shí)序檢查報(bào)告一個(gè)時(shí)序沖突,即

當(dāng)建立約束和保持約束為正,數(shù)據(jù)事件第二個(gè)發(fā)生時(shí),時(shí)間窗口的起點(diǎn)和終點(diǎn)由下式確定:

在下面的情況下,$setuphold時(shí)序檢查報(bào)告一個(gè)時(shí)序沖突,即4.$removal

語法格式為

其中,data_event為時(shí)間戳事件;reference_event為時(shí)間檢查事件;limit為非負(fù)常數(shù)表達(dá)式;notifier(可選)為Reg。

此處,參考事件(時(shí)間檢查事件)通常是一個(gè)控制信號,如清除(clear)、復(fù)位(reset)或置位(set),而數(shù)據(jù)事件(時(shí)間戳事件)通常是一個(gè)時(shí)鐘信號。時(shí)間窗口的起點(diǎn)和終點(diǎn)由下式確定:

在下面的情況下,$removal時(shí)序檢查報(bào)告一個(gè)時(shí)序沖突,即

三防平板應(yīng)用中的時(shí)間窗口的端點(diǎn)不是沖突區(qū)域的一部分。當(dāng)限制值為零時(shí),$removal檢查將不發(fā)出沖突。

圖1.14更清楚地說明以上公式給出的約束條件。三防平板應(yīng)用中從圖中可知允許的去除時(shí)間窗口寬度由limit決定。對于參考事件(時(shí)間檢查事件)來說,它應(yīng)該在窗口的起點(diǎn)開始一直到窗口終點(diǎn)為止一直有效。如果參考事件(時(shí)間檢查事件)的有效時(shí)間落在了時(shí)間窗口內(nèi),就表示時(shí)間檢查事件沒有為時(shí)間戳事件(clk信號)提供足夠的去除時(shí)間,也就是不滿足去除時(shí)間要求,這就會產(chǎn)生去除時(shí)間沖突。