四、 硬體模擬與驗證
4.3 包含錯誤資料的傳送與接收
錯誤的資料傳輸主要分為傳送資料的錯誤與接收資料的錯誤兩個部分。傳送 與接收資料發生錯誤的狀況不盡相同,在下面小節之中會做進一步的解釋。
4.3.1 傳送端錯誤測試
硬體傳送端發生的錯誤主要是因為XGMII 端傳送錯的資料訊息。XGMII 傳 送過來的錯誤資料主要分為兩種,第一種為XGMII 在傳送的資料與控制訊號中 已將錯誤的狀況顯示出來。例如在傳輸資料的過程中,XGMII 傳送過來的控制 訊號 TXC 被設定為 1,而傳送的資料顯示為錯誤控制字元,實體編碼子層不需 要做任處理,只需要將錯誤的訊息傳送出去。第二種傳送端發生的錯誤是為 XGMII 傳送給實體編碼子層的資料並沒有顯示出錯誤的訊息,但是實體編碼子 層接收到XGMII 的資料格式卻是錯誤,這時候實體編碼子層要將接收到的錯誤 資料轉換為合法的錯誤資料格式。
上述二種傳送端所發生的錯誤可以細分為以下五種狀況:
1. 傳輸初始階段錯誤
傳輸初始階段意謂硬體剛完成傳輸鏈結的動作,這時候系統已經準 備好做資料傳輸。實體編碼子層便會開始接收 XGMII 傳送過來的資 料,如果此時的資料為錯誤控制字元、終止控制字元或是純資料,則 資料傳輸發生錯誤,實體編碼子層也會進入錯誤資料處理狀態。
2. 傳輸控制字元發生錯誤
當系統進入傳輸控制字元的階段,如果這時候從 XGMII 傳送過來 的資料為錯誤控制字元、終止控制字元或是純資料,則同樣也會發生
傳輸的錯誤。
3. 純資料傳輸發生錯誤
在純資料傳輸階段,如果此時實體編碼子層從 XGMII 接收到的資 料為起始控制字元、錯誤控制字元或是控制字元(不包含終止控制字 元),則實體編碼子層發生編碼錯誤狀況。
4. 資料終止階段發生錯誤
當資料傳輸結束階段,也就是說當終止控制字元產生時,這時候 實體編碼子層從XGMII 接收到的資料為錯誤控制字元、終止控制字元 與純資料字元,則實體編碼子層也會進入錯誤處理狀態。
5. 在錯誤處理狀態發生錯誤
當實體編碼子層處理完傳送端發生的錯誤後,此時如果在從 XGMII 接收到錯誤控制字元與起始控制字元,則錯誤的狀態會持續的 產生。
在傳送端的資料傳輸驗證中,我們把這五種可能發生的傳送端錯誤加入測試向量 中,利用自動向量產生器隨機的產生這五種錯誤狀態。
4.3.2 接收端錯誤測試
資料傳遞的過程中,經過一些外在因素的影響導致接收的資料發生錯誤。在 實 體 媒 介 接 觸 子 層 中 會 監 測 資 料 訊 號 接 收 過 程 的 狀 態 , 並 且 透 過 PMA_SIGNAL.indicate告知實體編碼子層接收訊號的正確性。如果在傳輸的過程 中訊號不穩定,以致實體媒介相依子層無法分辨正確資料訊號,則實體媒介接觸 子層會產生接收訊號錯誤資訊並且傳給實體編碼子層,實體編碼子層就會重新啟 動資料鎖定狀態機,重新尋找接收資料區塊的邊界。這一部分的驗證會在後面章
節做詳細的說明。
實體編碼子層在資料接收的過程中也會發生資料接收的格式或是資料傳輸 的流程不符合規定,在這裡將這類的錯誤分為以下四種錯誤狀態︰
1. 接收初始階段錯誤
在系統初始階段,接收端必須接收到控制字元或是起始控制字元,
如果在這個階段接收到的資料為錯誤控制字元、純資料或是終止控制 字元,則接收會發生錯誤,實體編碼子層會進入錯誤資料處理狀態。
2. 接收控制字元發生錯誤
如果實體編碼子層正處於接收控制字元的狀態之下,這個狀態是 處於純控制字元的傳輸,在這個階段如果接收到錯誤控制字元、中斷 控制字元或是純資料,則接收資料發生錯誤,實體編碼子層也會進入 錯誤資料處理狀態。
3. 純資料接收發生錯誤
在純資料接收狀態下是意謂著在之前實體編碼子層接收到起始控 制字元,然後開始傳輸純資料,如果在這個階段接收到錯誤控制字元、
起始控制字元或是控制字元(不包含終止控制字元),則實體編碼子層 會進入錯誤資料處理狀態。
4. 在錯誤處理狀態下發生錯誤
實體編碼子層因為先前接收的錯誤資料進入錯誤處理狀態,如果 接下來接收的資料錯誤控制字元或是起始控制字元,則實體編碼子層 會一直維持在錯誤處理狀態下。
在接收端的資料接收驗證中會針對這四個部分做模擬與驗證,接收到的錯誤資料 訊息會送至自動測試向量檢查器與傳輸的資料做比對,看看我們所刻意加入的錯 誤資料格式是否能被驗證出來。