用 cpld設(shè)計(jì)所構(gòu)成的cpi接口系統(tǒng)具有簡(jiǎn)潔、可靠等優(yōu)點(diǎn),是一種行之有效的設(shè)計(jì)途徑。很多技術(shù)雜志和網(wǎng)站上,都有不少用cpld設(shè)計(jì)pci常規(guī)傳輸系統(tǒng)的文章。但用這些方法在mzxplusii、fundition等環(huán)境下進(jìn)行模擬仿真時(shí),其產(chǎn)生的時(shí)序往往與pci規(guī)范有很大出入。雖然 altera 等公司推出pci核可以直接使用,但這樣的內(nèi)核占用cpld資源較多,且能適配的器件種類少,同時(shí)價(jià)格也高,在實(shí)際設(shè)計(jì)應(yīng)用中有很大的局限性。因此,使用通用型cpld器件設(shè)計(jì)簡(jiǎn)易型pci接口有很大的現(xiàn)實(shí)意義。在compact接口的cpld設(shè)計(jì)中,筆者根據(jù)pci總線傳輸時(shí)序來進(jìn)行狀態(tài)機(jī)構(gòu)造,并使用 vhdl語言進(jìn)行功能模擬和定時(shí)分析,從而達(dá)到了預(yù)期目的。用該方法設(shè)計(jì)的cpld-pci接口既可支持pci常規(guī)傳輸,也可支持pci猝發(fā)傳輸,而且在系統(tǒng)編程和下載器件方面,效果也都很好。
pci總線傳輸時(shí)序分析
pci 總線傳輸至少需要40多條信號(hào)線,包括數(shù)據(jù)/地址線、接口控制線、仲裁、總線命令及系統(tǒng)線等。每次數(shù)據(jù)傳輸均由一個(gè)地址脈沖和一個(gè)或幾個(gè)數(shù)據(jù)脈沖組成。一次傳輸一個(gè)地址和一個(gè)數(shù)據(jù)的稱為常規(guī)傳輸;一次傳輸一個(gè)地址和一批數(shù)據(jù)的稱為猝發(fā)傳輸。常用的控制信號(hào)有:幀同步信號(hào)frame、主設(shè)備準(zhǔn)備好信號(hào) irdy、從設(shè)備準(zhǔn)備好信號(hào)trdy、從設(shè)備選通信號(hào)devsel、命令/字節(jié)信號(hào)c/be等。
分析pci總線的傳輸時(shí)序,可以看出,pci總線傳輸有以下幾個(gè)顯著特點(diǎn):
(1)每次數(shù)據(jù)傳輸時(shí)首先傳出地址和命令字,從設(shè)備一般可從地址中確定是不是對(duì)本機(jī)的訪問,并確定訪問的首地址;而從設(shè)備則從命令字中識(shí)別該訪問是讀操作還是寫操作;
(2)讀寫訪問只有在信號(hào)irdy、trdy、devsel都為低狀態(tài)時(shí)才能進(jìn)行;
(3)猝發(fā)傳輸通常需要通過邏輯來實(shí)現(xiàn)地址的自動(dòng)遞加;
(4)主從設(shè)備中任一方?jīng)]有準(zhǔn)備好,操作中都需要能夠引起等待狀態(tài)插入的活動(dòng);
(5)系統(tǒng)通常在幀同步信號(hào)frame的下降沿誘發(fā)數(shù)據(jù)傳輸,而在上升沿指明只有一個(gè)數(shù)據(jù)或只剩下一個(gè)數(shù)據(jù);
(6)讀操作比寫操作多一個(gè)中間準(zhǔn)備過程。