《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于IP核的PCI總線接口設計與實現
基于IP核的PCI總線接口設計與實現
劉 紅,李 勃,常 青,吳
摘要: 一種在計算機工業測控系統中應用FPGA和軟IP核實現PCI總線接口的方法。重點介紹了本地總線讀寫狀態機的設計,3.3V FPGA兼容PCI2.2、5V規范的電氣設計及其時序和布線問題,并給出了使用嵌入式邏輯分析儀實際捕獲的信號時序。實驗證明,該結構的PCI接口測控系統工作穩定可靠。
關鍵詞: SoPC IP核 PCI總線
Abstract:
Key words :

  摘 要: 一種在計算機工業測控系統中應用FPGA和軟IP核" title="IP核">IP核實現PCI總線" title="PCI總線">PCI總線接口的方法。重點介紹了本地總線讀寫狀態機的設計,3.3V FPGA兼容PCI2.2、5V規范的電氣設計及其時序和布線問題,并給出了使用嵌入式邏輯分析儀實際捕獲的信號時序。實驗證明,該結構的PCI接口測控系統工作穩定可靠。
  關鍵詞: 現場可編程門陣列 IP核 PCI總線


  PCI總線是高性能的32/64位同步總線,具有嚴格的規范保證數據傳輸的可靠性,為處理器與高集成度的外圍設備提供高速安全的接口,是迄今為止最成功的總線規范之一。
  由于PCI總線協議非常復雜,目前實現PCI總線接口主要使用兩種方式:(1)采用專用接口芯片,如AMCC公司的S5933和PLX公司的9054、9080。使用接口芯片開發人員可以不考慮PCI接口的實現問題,但是在實際應用中通常只用到接口芯片的部分功能,造成了資源的浪費。同時接口芯片占用了板卡上的有限空間,給應用設計帶來不便。(2)使用可編程邏輯器件實現PCI總線控制器。使用這種方式開發難度大,消耗周期長,系統驗證困難,且不具備通用性。
  隨著IC產業的迅速發展,傳統的、基于標準單元的數字IC設計方法已經發展到基于IP(知識產權)復用的SoC設計方法。根據實現的硬件描述級的不同,IP核分為軟核、硬核和固核。其中軟核是采用可綜合的HDL實現的RTL級設計,與具體實現工藝無關,相比于固核和硬核具有較大的靈活性。在FPGA中定制PCI接口軟核實現PCI接口控制具有明顯的優勢:可以在單片FPGA中同時完成PCI接口和用戶邏輯的設計,縮減成本,提高集成度,減少資源浪費;實現32/64位的PCI、PCI-X及兼容Compact PCI的PCI主設備/目標設備接口;消除PCI接口芯片與本地通信的信號線的硬線連接,提高用戶邏輯設計的彈性,降低因硬件設計不當造成的損失;統一設計工具和平臺,縮短開發周期。
  本文應用PCI接口控制IP實現了PCI多卡測控系統中PCI總線到本地總線的轉換。實際應用表明,采用此設計方案的PCI卡運行穩定可靠。
1 應用背景
  本文的應用背景為某一工業測控系統。該系統采用FPGA實現測量數據的采集和控制信號的輸出,通過定制PCI接口IP實現一個32位目標設備的PCI總線接口轉換。PCI核選用Altera PCI編譯器所包括的pci_t32兆核函數。FPGA選用Altera公司的Cyclone系列芯片ep1c6q240c8,以配合32位/33MHz的PCI接口的I/O標準和速度要求。在硬件設計上,為保證3.3V FPGA對PCI 2.2、5V總線的兼容性要求,在PCI總線接口與FPGA引腳間加入總線開關進行電平轉換。由于系統應用在工業生產控制場合,因此FPGA與外部數據的I/O接口間需加入光電隔離器件以增強系統的抗干擾能力。系統結構如圖1所示。


2 PCI接口兆核函數
  Altera的PCI編譯器(PCI Compiler)提供了使用Altera器件實現PCI接口設計的完全解決方案,包括4個32/64位、主/從模式PCI接口控制器兆核函數(即接口IP)及相關測試平臺。通過選擇合適的芯片速度,可以滿足運行在33MHz或66MHz PCI時鐘下的時序要求。支持Altera的Stratix Ⅱ、Stratix、Stratix GX、Cyclone、Cyclone Ⅱ和MAX Ⅱ系列器件;支持PCI配置空間讀寫、內存方式讀寫和I/O方式讀寫;支持預先讀取模式;支持可參數化的配置寄存器,包括參數化的設備信息、6個可變長度的基址空間和一個擴展ROM空間;具有奇偶校驗檢錯;支持PCI終止、重試和斷開作業及中斷操作,并提供靈活的本地端接口。pci_t32兆核函數是32位目標設備控制器,其結構和總線接口信號如圖2所示。


  在PCI總線端,IP核提供32位數據線和目標設備控制信號、中斷請求信號及錯誤報告信號;本地總線端提供32位數據線和地址線、控制信號、中斷輸入信號和狀態表示信號接口。其中,本地端信號l_adi為地址/數據輸入,l_adro為地址輸出,l_dato為數據輸出,l_beno為字節使能輸出,l_cmdo為本地命令輸出??刂菩盘杔t_abortn、lt_discn和lt_rdyn為本地端輸入,分別標志本地設備終止、斷開和準備好,lt_framen、lt_ackn和lt_dxfrn為目標傳輸控制信號,相當于PCI總線的frame#、devsel#和trdy#。lt_tsr為目標作業狀態寄存器輸出。lirqn為中斷輸入信號。
  可以通過PCI編譯器IP工具臺或編輯兆核函數頭文件的方式修改PCI配置空間信息。本系統PCI兆核函數的配置信息如下:
  CLASS_CODE=24′hFF0000
  DEVICE_ID=16′h1100
  VENDOR_ID=16′h1172,為Altera的廠商編號
  REVISION_ID=8′h01
  BAR0=32′hFFFFFC00,BAR0空間為1KB,使用內存方式讀寫
  NUMBER_OF_BARS=32′h00000001
  INTERRUPT_PIN_REG=8′h00,未使用中斷
3 本地總線讀寫狀態機
  在用戶邏輯中,通過總線讀寫狀態機實現內存方式單周期或迸發讀寫、I/O單周期或迸發讀寫以及在設備不能完成作業時發起(目標)或響應(主)終止、斷開或重試等作業,保證PCI作業正確結束。以帶迸發模式的內存讀寫作業為例,作為目標設備的本地總線讀寫狀態轉移圖如圖3所示。


  IDLE為設備空閑狀態。
  ADD_LATCH為地址鎖定狀態。lt_framen有效表示IP核接到一次PCI讀寫作業并啟動本地端做出響應,此時目標設備鎖存地址l_adro及命令l_cmdo,并對命令做出解釋。l_cmdo的值為6,則進入MEMORY_READ狀態;為7,則進入IP_READY狀態;其他值,則使能lt_discn并進入RETRY狀態。
  MEM_READ為內存讀作業狀態,lt_ackn有效驅使目標設備將數據放到總線上;如為迸發方式,則lt_rdyn和lt_dxfrn持續有效,驅使目標設備連續將地址相連的數據輸出。如目標設備在迸發作業中需延緩迸發作業,則可使lt_rdyn無效來加入等待周期,此時狀態機回到ADD_LATCH狀態,直到目標設備再次準備好,并同時使lt_rdyn有效并輸出數據。
  RETRY為設備重試狀態。在作業開始,目標設備尚未準備好發送或接收數據,則發起一次重試作業,即在lt_framen有效后使lt_discn有效并等待主設備結束作業。
  DISCN為設備斷開狀態。在迸發讀寫作業中,目標設備檢測到地址超出有效范圍,則發起目標斷開作業;在迸發寫作業中斷開,在最后一次有效寫數據前一時鐘使lt_discn有效。在迸發讀作業中,將最后一個數據放在總線上的同時使lt_discn有效。
  IP_READY為內存寫操作IP核準備傳輸數據狀態。
  MEM_WRITE為內存寫作業狀態。在同時使能lt_rdyn后等待lt_ackn和lt_dxfrn有效時讀取總線上的數據l_dato,迸發寫或加入等待周期的時序與讀作業類似。
  STAT_CHECK為狀態檢測。lt_ackn和lt_dxfrn同時無效標志著內存單次/迸發讀作業完成,然后檢測作業狀態寄存器lt_tsr并返回IDLE狀態。
  在每一次作業開始,都啟動計數器,防止操作超時。
  使用SignalTap II嵌入式邏輯分析儀實際捕獲的PCI內存讀寫作業的PCI和本地總線信號時序圖如圖4所示,采樣時鐘為PCI總線時鐘。


4 PCI電氣特性要求設計
  由于目前絕大多數主板采用5V的PCI規范,而Altera的Cyclone系列FPGA的I/O口電壓只支持3.3V,因此需要在FPGA和PCI連接器間加入電平轉換電路。
  實現電平轉換的原理是在總線間加入NMOS總線開關,實現方式如圖5所示。


  其中總線開關選用IDT公司的QS3861。首先,考慮電平轉換的實現方法。當總線選通信號BE#使能,總線A的輸入電壓上升,總線B的電壓隨之上升。當總線A的電壓超過vcc-Vt(Vt的典型值為1V)時,總線B的電壓將被箝位到vcc-Vt,而不會繼續上升。因此選擇vcc為4.3V,則能保證總線B的信號滿足3.3V標準。當3.3V總線B驅動總線A時,由于5V PCI規范中定義的邏輯高電壓是2V~5.5V,因此也能夠保證FPGA端驅動PCI的高電壓要求。
  其次,驗證是否滿足PCI時序要求。PCI2.2協議規定一個時鐘周期分為4部分:
  t(30ns)=tval+tprop+tsu+tskew
  其中:tval為時鐘到輸出信號有效延遲,tsu為輸入建立時間,tpro為最大總線傳輸時間,tskew為時鐘抖動時間。PCI 2.2協議規定的保持時間為0。tprop是由于PCI總線采用反射波技術引入的,典型值為10ns,tprop與tskew的和不超過12ns。PCI 2.2規范規定33MHz信號的建立時間為7ns,66MHz信號的建立時間為3ns。由QS3861引入的數據傳輸延遲為0.25ns。但由于所有PCI信號都經過總線開關進行電平轉換,到達FPGA的信號整體只有0.25ns的延遲,因此FPGA的建立時間仍然設置為7ns。FPGA經過運算輸出的信號時序由時鐘到信號有效延遲tval所限定。PCI 2.2規范規定33MHz時tval最大為11ns,最小為2ns。由于電平轉換芯片在雙向數據通路的延遲累加,FPGA必須保證時鐘到信號最大延遲在10.5ns以內。
  最后,考慮布局布線因素。在加入總線開關后,要保證從PCI連接器到總線開關及總線開關到FPGA的所有32位信號線(除中斷輸入信號、系統信號和JTAG信號)的走線長度和不大于1.5英寸,時鐘線長度和為2.5±0.1英寸。
  在FPGA中定制IP核實現PCI總線到本地總線的轉換,能夠有效節約PCI設備的成本,提高硬件資源利用率,縮短開發時間。目標設備讀寫狀態機對本地總線進行監測,完成設備的內存、I/O讀寫并提供迸發作業支持,在發生異常狀況時,及時發起重試、斷開或終止作業,保證PCI總線傳輸正確結束,防止不安全的數據操作出現。為了滿足PCI電氣規范,在硬件設計時需要注意3.3V設備掛接5V總線的電平轉換及其帶來的時序和布線問題。
參考文獻
1 任愛鋒.基于FPGA的嵌入式系統設計.西安:西安電子科技大學出版社,2004
2 PCI Compiler User Guide(Version 3.2.0).Altera Corporation,2004
3 Connecting Altera 3.3-V PCI devices to a 5-V PCI Bus (Version 1.0).Altera Corporation,2004
4 PCI Local Bus Specification(Revision 2.2).PCI SIG,1998

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
国产一区二区三区四区五区美女 | 久久亚洲精品欧美| 亚洲午夜久久久久久久久电影院| 亚洲麻豆av| 99成人免费视频| 亚洲另类春色国产| 99riav国产精品| 亚洲精品婷婷| 夜夜夜久久久| 亚洲香蕉在线观看| 亚洲欧美一区二区三区在线| 国产日韩在线不卡| 久久深夜福利| 久久精品国产亚洲aⅴ| 亚洲欧美中文另类| 亚洲欧美一区二区精品久久久| 亚洲伊人观看| 欧美一区二区三区在线播放| 欧美亚洲视频在线观看| 性欧美1819sex性高清| 欧美一区二区三区视频免费播放| 小黄鸭精品aⅴ导航网站入口| 午夜视频久久久久久| 欧美有码在线视频| 亚洲国产99| 亚洲理论在线观看| 一区二区三区毛片| 亚洲欧美在线免费| 久久精品99国产精品日本| 久久久久久久综合日本| 免费成人高清| 欧美日韩精品一区| 国产精品视频区| 国产一区深夜福利| 亚洲黄网站在线观看| 99视频精品在线| 亚洲欧美日本国产有色| 久久国产直播| 日韩一级网站| 欧美亚洲在线| 久久综合电影一区| 欧美精品日韩一区| 国产精品午夜av在线| 好吊色欧美一区二区三区四区| 亚洲国产高清一区| 99这里只有精品| 亚洲欧美一区二区三区久久 | 亚洲精品在线免费观看视频| 亚洲视频一二| 久久九九99| 欧美精品激情blacked18| 欧美午夜视频在线| 韩国福利一区| 日韩视频免费观看| 性欧美办公室18xxxxhd| 99国产一区| 欧美一区午夜精品| 欧美日韩国产va另类| 国产日韩精品视频一区| 亚洲国产毛片完整版 | 欧美国产日本在线| 国产日韩欧美91| 亚洲精品黄网在线观看| 午夜影视日本亚洲欧洲精品| 亚洲区一区二| 新狼窝色av性久久久久久| 欧美成人国产va精品日本一级| 国产精品啊啊啊| 在线看国产一区| 亚洲午夜av| 亚洲精品视频二区| 久久精品一区二区三区不卡| 欧美日韩日日骚| 精品动漫3d一区二区三区免费版| 在线视频亚洲欧美| 亚洲黄色小视频| 欧美在线视频全部完| 欧美日韩亚洲一区二区三区| 激情综合网激情| 午夜国产精品视频| 亚洲一区二区三区涩| 欧美大片国产精品| 国产亚洲欧美一级| 亚洲一区3d动漫同人无遮挡| 亚洲另类在线一区| 麻豆精品精品国产自在97香蕉| 国产精品嫩草影院av蜜臀| 亚洲精品一二三| 亚洲国产日韩在线一区模特| 久久精品99国产精品酒店日本| 国产精品v欧美精品v日韩| 91久久精品国产91久久| 久久精品一区| 久久精品国产清自在天天线| 国产精品久久久久久影视| 亚洲久久一区二区| 亚洲精品欧美日韩| 鲁大师成人一区二区三区| 国产日韩一级二级三级| 亚洲一区欧美| 亚洲色无码播放| 欧美日韩国产首页在线观看| 亚洲大片一区二区三区| 久久精品一区二区国产| 久久久精品动漫| 国产视频久久| 亚洲欧美一区二区三区久久| 亚洲欧美日韩国产成人精品影院| 欧美日韩国产小视频| 亚洲精品四区| 一区二区三区产品免费精品久久75| 欧美大片免费| 亚洲精品国产系列| 夜夜精品视频一区二区| 欧美另类99xxxxx| 亚洲精品国产精品久久清纯直播 | 久久久免费精品视频| 国产亚洲人成a一在线v站 | 黄色成人在线网站| 久久精品夜夜夜夜久久| 久久久中精品2020中文| 国产亚洲精品激情久久| 欧美一区三区三区高中清蜜桃| 久久成人一区| 韩日精品视频一区| 亚洲国产欧美在线| 欧美岛国激情| 亚洲精品小视频在线观看| 99视频精品免费观看| 欧美日韩二区三区| 99国产精品久久久| 亚洲一区二区三区四区视频 | 国产日韩欧美一区二区| 欧美中文字幕在线视频| 久久亚洲私人国产精品va| 一区在线影院| 亚洲乱码视频| 欧美特黄一级| 亚洲欧美国产va在线影院| 久久精品国产免费| 一区二区亚洲精品国产| 亚洲另类在线视频| 欧美网站在线观看| 亚洲欧美视频在线观看| 久久久久久久波多野高潮日日| 一区二区三区无毛| 99精品欧美一区| 国产精品美女www爽爽爽| 久久激情视频| 欧美人与性动交cc0o| 亚洲网友自拍| 久久综合给合久久狠狠色| 亚洲精品国产精品国自产在线 | 欧美精品观看| 亚洲无线一线二线三线区别av| 久久精品成人一区二区三区| 国产综合香蕉五月婷在线| 亚洲精品男同| 国产精品一级二级三级| 久久国产精品高清| 欧美日韩视频在线一区二区| 亚洲欧美日韩国产综合精品二区| 久久综合国产精品台湾中文娱乐网| 亚洲国产小视频在线观看| 亚洲男同1069视频| 激情婷婷欧美| 亚洲一区二区欧美日韩| 国内在线观看一区二区三区 | 午夜精品国产更新| 禁断一区二区三区在线| 一本色道久久综合亚洲精品按摩| 国产精品久久久一区二区三区| 久久精品国产亚洲高清剧情介绍| 欧美裸体一区二区三区| 午夜国产精品视频| 欧美日本在线| 欧美在线视频免费| 欧美色欧美亚洲高清在线视频| 欧美一区午夜精品| 欧美三级乱码| 亚洲国产欧美不卡在线观看| 国产精品久久久久久久7电影 | 欧美日韩精品在线观看| 欧美一区激情| 欧美精品久久天天躁| 欧美一区二区三区四区在线观看地址| 欧美精品免费看| 久久精品国产精品亚洲综合 | 亚洲精品欧洲精品| 久久久噜噜噜久久中文字幕色伊伊| 日韩一二三区视频| 你懂的网址国产 欧美| 亚洲男人的天堂在线观看| 欧美 日韩 国产 一区| 午夜国产精品视频| 欧美色偷偷大香| 亚洲人体一区| 国产综合色产| 欧美伊人影院| 在线亚洲欧美|