《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 解決方案 > Virtex-7 FPGA Gen3 Integrated Block Completion timeout機(jī)制

Virtex-7 FPGA Gen3 Integrated Block Completion timeout機(jī)制

2014-01-02
關(guān)鍵詞: FPGA Virtex-7

任何一種 split 交易協(xié)議都存在 Requesters 得不到期望的 Completion 的風(fēng)險,。為了允許 Requesters 使用一種標(biāo)準(zhǔn)方式從這種情況下恢復(fù),,規(guī)定了 Completion timeout機(jī)制,。


PCIE 規(guī)范規(guī)定發(fā)出需要 Completions 的 Requests 的 PCIE 設(shè)備必須實(shí)現(xiàn) Completion Timeout 機(jī)制。配置 Requests 除外,。PCIE 設(shè)備每發(fā)出一個需要 Completions 的Requests,,Completion timeout 機(jī)制被激活,。PCIE Root Complexes, PCI Express-PCI Bridges, 和 Endpoints 需要實(shí)現(xiàn) Completion timeout 機(jī)制,。Switches 不需要主動發(fā)起操作,,因而不需要 Completion timeout,。


Completion timeout 可以通過配置軟件禁止,。配置寄存器 Device Control 2 的bit 4 控制 Completion Timeout 的禁止。

 

1.jpg

圖1

 

在V7的Gen3 Integrated Block中,,對Completion Timeout的實(shí)現(xiàn)有一些特殊的地方,,在應(yīng)用時需要加以注意。


首先,,配置寄存器Device Control 2的bit[3:0]規(guī)定了Completion timeout的值,,bit4控制Completion timeout的disable。這一部分和規(guī)范一致,。

 

2.jpg

圖2

 

此外,,在Gen3 Integrated Block的屬性里面,有一些屬性和Completion timeout相關(guān),。首先是PF0_DEV_CAP2_CPL_TIMEOUT_DISABLE,,這個屬性控制是否允許Completion timeout被disable。默認(rèn)這個屬性是設(shè)置為FALSE的,。如果需要修改這個屬性,,需要在相應(yīng)的verilog/VHLD代碼里面修改。

 

3.jpg

圖3

 

其次還有TL_COMPL_TIMEOUT_REG0/1這兩個屬性,,控制timeout的值,。這兩個屬性分別對應(yīng)evice Control 2的bit[3:0]設(shè)置為0101和0110的情況。這兩種設(shè)置下,,timeout的值由這兩個屬性控制,。同樣,,這兩個屬性也可以通過相關(guān)的verilog/VHLD代碼修改。

 

4.jpg

圖4

 

事實(shí)上,,雖然Device Control 2的bit[3:0]定義了9種timeout的值,,只有bit3[3:0]設(shè)置為0101和0110時,Gen3 Integrated Block的Completion timeout機(jī)制才能工作,。設(shè)置為其他值時,,Completion timeout機(jī)制并不工作。這一點(diǎn)要特別注意,,如果需要timeout機(jī)制,,一定要把Device Control 2的bit[3:0]設(shè)置為這兩個值中的其中一個。


當(dāng)出現(xiàn)timeout時,,在Requester Completion總線上,,completion的bit[15:12]將設(shè)為1001,表示出現(xiàn)timeout,。這時,,Completion只有bit 30(request Completed bit), bits [71: 64] (tag field) 和bits [55: 48](requester Function field)有效。

 

5.jpg

圖5

 

下圖是一個仿真得到的TIMEOUT波形,,設(shè)置Device Control 2的bit[3:0]為0x5,,設(shè)置PF0_DEV_CAP2_CPL_TIMEOUT_DISABLE為FALSE,設(shè)置TL_COMPL_TIMEOUT_REG0/1為0x1(為了縮短仿真時間),。當(dāng)Requester沒有得到Completion,,timeout以后,可以看到RC總線上出現(xiàn)了1001的Error code,。

 

6.jpg

圖6

 

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn),。轉(zhuǎn)載的所有的文章,、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有,。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者,。如涉及作品內(nèi)容、版權(quán)和其它問題,,請及時通過電子郵件或電話通知我們,,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失,。聯(lián)系電話:010-82306118,;郵箱:[email protected]