新聞中心

EEPW首頁 > EDA/PCB > 設(shè)計(jì)應(yīng)用 > 基于PCD656的高速PCI總線接口的設(shè)計(jì)與實(shí)現(xiàn)

基于PCD656的高速PCI總線接口的設(shè)計(jì)與實(shí)現(xiàn)

作者: 時(shí)間:2011-03-22 來源:網(wǎng)絡(luò) 收藏

  4 局部端設(shè)計(jì)

  本設(shè)計(jì)中,局部端采用了C模式。C模式下可配置3種數(shù)據(jù)傳輸方式:單周期方式(Single Cycle Mode)、4字方式(Brust-4 Mode)和連續(xù)突發(fā)傳輸方式(Continuous Mode),在本設(shè)計(jì)中采用了連續(xù)突發(fā)方式,可以有效地提高輸出效率。

  9在局部為為主設(shè)備,始終占用局部總線,局部總線端的FPGA始終響應(yīng)9的操作。方案中使用9的DMA傳輸模式,在本地端不需要進(jìn)行地址譯碼,因此可以對PCI9656的控制信號進(jìn)行簡化處理,PCI9656的局部端主要控制信號如下

  ADS#:一次總線訪問開始;

  Blast#:總線訪問結(jié)束;

  LW/R#:讀寫控制信號;

  Ready#:從設(shè)備準(zhǔn)備好信號,有效時(shí)表示總線訪問進(jìn)行中;

  LHOLD:PCI9656占用本地總線申請信號;

  LHOLDA:占用本地總線應(yīng)答信號;

  Wait#:主設(shè)備傳輸暫停信號;

  EOT#:數(shù)據(jù)傳輸異常中止信號,用于FIFO溢出或空時(shí)中斷數(shù)據(jù)傳輸;

  Lint#:用于引起CompaetPCI總線端的中斷信號;

  LRST#:本地總線復(fù)位信號;

  CCS#:配置寄存器選擇信號。

  在DMA傳輸過程中主要關(guān)心的信號可簡化為:ADS#、Blast#、LW/R#、Ready#、LHOLD、LHOLDA,如圖3所示。

PCI局部總線控制時(shí)序

圖3 PCI局部總線控制時(shí)序

  圖3中,lclk為本地總線時(shí)鐘,當(dāng)PCI9656要發(fā)起一次DMA操作時(shí),先發(fā)送lhold信號申請本地總線,若本地總線空閑則FPGA發(fā)出lholda信號響應(yīng)PCI9656,然后PCI有效ads_n信號以示總線傳輸開始,F(xiàn)PGA使ready_n有效以示總線傳輸正在進(jìn)行中,此時(shí)本地?cái)?shù)據(jù)通過局部數(shù)據(jù)線傳送到PCI總線,或著數(shù)據(jù)由PCI總線傳送到局部邏輯。一次傳輸結(jié)束時(shí)PCI使blast_n信號有效并使lhold信號無效,然后FPGA使lholda信號和ready_n信號無效,一次DMA傳輸完成。傳輸中若是DMA讀操作則lwr信號拉低,若為寫操作則拉高。

  本地總線位寬為32位,因此本地總線理論速度為264MB·s-1,由于應(yīng)用程序的效率問題和傳輸中一些無效狀態(tài)的存在,目前PCI總線平均速率達(dá)到212 MB·s-1,可以滿足目前高速數(shù)據(jù)采集、傳輸對總線傳輸速度的要求。

  PCI9656本地總線時(shí)序設(shè)計(jì)中需要注意blast_n信號有效說明為突發(fā)傳輸最后一個(gè)時(shí)鐘周期,此時(shí)ready_n信號仍然為有效,否則會(huì)造成總線等待;在正常讀寫訪問中CCS#信號應(yīng)置高,否則總線訪問將指向配置空間而非內(nèi)存或I/O空間。

  5 結(jié)束語

  利用PCI9656和FPGA實(shí)現(xiàn)了一種高速PCI總線接口,較全面地論述了總線驅(qū)動(dòng)開發(fā)和局部時(shí)序設(shè)計(jì)的過程。這種設(shè)計(jì)提高了總線傳輸速度,為高速數(shù)據(jù)采集系統(tǒng)的實(shí)現(xiàn)創(chuàng)造了條件。


上一頁 1 2 3 下一頁

關(guān)鍵詞: PCD 656 PCI 總線

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉