
PCI9656總線上的主機(jī)可以對(duì)串行EEPROM進(jìn)行讀寫,寄存器位[31,27-24]控制著PCI9656對(duì)EEPROM位的讀寫。將重載配置寄存器位CNTRL[28]置1可以用串行EEPROM重新配置PCI9656。EEPROM的時(shí)鐘可由PCI總線時(shí)鐘分頻獲得。
2.4 內(nèi)部寄存器
PCI9656提供的一系列內(nèi)部寄存器可為總線接口設(shè)計(jì)提供最大的靈活性。這些寄存器主要有PCI配置寄存器、局部配置寄存器、DMA寄存器、運(yùn)行時(shí)間寄存器和消息隊(duì)列寄存器。
對(duì)PCI9656寄存器進(jìn)行讀寫操作的單位可以是字節(jié)、字、長(zhǎng)字。PCI9656的存儲(chǔ)器訪問可以是突發(fā)的,也可以是非突發(fā)的。
2.5 直接數(shù)據(jù)傳輸模式
PCI9656支持PCI總線上的主處理器對(duì)局部總線上的設(shè)備進(jìn)行直接訪問。PCI9656的配置寄存器將訪問映射到局部地址空間。其片內(nèi)讀寫FIFO存儲(chǔ)器可使PCI9656支持PCI總線與局部總線之間的高性能突發(fā)傳送。PCI總線主控訪問局部總線示意圖如圖2所示。
3 基于PCI9656的PCI接口設(shè)計(jì)
PCI9656是一種功能非常強(qiáng)大的64位PCI接口電路,用它來設(shè)計(jì)PCI適配卡將使接口變得非常方便。圖3是PCI主處理機(jī)讀寫一片RAM的接口示意圖,其主要功能是實(shí)現(xiàn)對(duì)RAM的單次或突發(fā)的讀、寫操作。
3.1 硬件設(shè)計(jì)
該P(yáng)CI接口的硬件電路分為3部分。第一部分是PCI9656和PCI插槽間的連接信號(hào)線。這些信號(hào)包括地址數(shù)據(jù)復(fù)用信號(hào)AD[31:0],總線命令信號(hào)C/BE[3:0],PCI協(xié)議控制信號(hào)PAR、FRAME、IRDY、TRDY、STOP、IDSEL、DEVSEL、PERR、SERR以及64位PCI總線擴(kuò)展信號(hào)AD[63:32]、C/BE[7:4]、PAR64、REQ64、ACK。第二部分是與串行EEPROM的連線。這部分有4根信號(hào)線:EESK、EEDO、EEDI、EECS,串行EEPROM的數(shù)據(jù)可以提前燒好,也可以在線燒寫。第三部分是PCI9656與FPGA的連接。對(duì)于FPGA的選擇及其內(nèi)部設(shè)計(jì)有必要作以下說明:ACEX1K50QC208-3是Altera公司推出的一款低成本FPGA,選擇該電路作為該設(shè)計(jì)的控制器,利用其內(nèi)部邏輯單元設(shè)計(jì)局部總線控制器,可用于實(shí)現(xiàn)局部總線的狀態(tài)控制。雙端口RAM可選用ALTERA公司提供的庫(kù)函數(shù)LPM_RAM_DP來設(shè)計(jì)實(shí)現(xiàn),其存儲(chǔ)容量為1.24x32bit,占用8個(gè)EAB,其余的邏輯單元和EAB用作內(nèi)部的其他控制。RAM的讀寫使能信號(hào)由局部總線狀態(tài)機(jī)產(chǎn)生,地址計(jì)數(shù)器的輸出可作為它的讀寫地址。
3.2 軟件設(shè)計(jì)
該P(yáng)CI接口軟件的設(shè)計(jì)主要分為2部分。一部分用于該P(yáng)CI9656各個(gè)配置寄存器賦值并初始化,另一部分為主程序,用來完成PCI9656與主機(jī)CPU之間的數(shù)據(jù)交互。
4 使用PCI9656時(shí)應(yīng)該注意的問題
PCI9656內(nèi)部的寄存器是通過外部串行EEPROM上電加載的,因此,PCI9656會(huì)自動(dòng)根據(jù)該EEPROM的狀態(tài)來決定其內(nèi)部寄存器的值。如果EEPROM內(nèi)部沒有燒寫為有效值,應(yīng)保證其開始的48位為全“1”,否則,系統(tǒng)上電時(shí)將會(huì)出錯(cuò)。

突發(fā)模式是為了提高本地總線操作速度而設(shè)計(jì)的。在該模式下,PCI9656只提供一次傳輸開始和終止信號(hào)。設(shè)計(jì)時(shí),可以利用BTERM引腳是否有效來中止突發(fā)操作。
還有一點(diǎn)需要說明,當(dāng)執(zhí)行64bit PCI數(shù)據(jù)傳輸時(shí),低32bit PCI數(shù)據(jù)(AD[31:0])總是首先被局部總線傳輸。基于32位、16位、8位局部總線操作的數(shù)據(jù)傳輸順序可由局部總線“字節(jié)通道”決定。局部總線“字節(jié)通道”分為“低字節(jié)通道”與“高字節(jié)通道”,字節(jié)通道由配置寄存器Big/Little Endian描述寄存器中的Byte Lane Mode位所決定。若該位為0(BIGEND[4]=0)時(shí),則為“低字節(jié)通道”模式,反之為“高字節(jié)通道”模式。
5 結(jié)束語
選用第三方EDA工具并采用VHDL硬件描述語言可對(duì)該狀態(tài)機(jī)進(jìn)行行為級(jí)描述和邏輯綜合,同時(shí)可將生成的網(wǎng)表文件送入Quartus軟件進(jìn)行再綜合、功能仿真和定時(shí)仿真。實(shí)驗(yàn)結(jié)果表明,該狀態(tài)機(jī)的最高工作頻率可達(dá)101MHz,完全能夠滿足PCI9656局部總線的性能要求。
PCI9656以其強(qiáng)大的功能和簡(jiǎn)單的用戶接口為基于64位PCI總線接口的開發(fā)提供了一種簡(jiǎn)潔的方法,設(shè)計(jì)者只需設(shè)計(jì)局部總線接口控制電路即可實(shí)現(xiàn)與PCI總線的高速數(shù)據(jù)傳輸。





