色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

PCI總線從設備控制器的設計思路及驗證結果分析

電子設計 ? 來源:郭婷 ? 作者:電子設計 ? 2019-06-25 08:02 ? 次閱讀

引言

隨著星載電子系統復雜度、小型化需求的提高,片上系統(System on Chip SoC)已 經成為應對未來星載電子系統設計需求的解決途徑。為了簡化設計流程并且提高部件的可重 用性,在目前的SoC 設計中引入了稱之為平臺的體系結構模板,用它來描述采用已有的標準 核來開發SoC 的方法。本文所作的工作主要是按照建立SoC 集成設計平臺的需求,根據當前 國際航天領域的技術現狀,選擇PCI(Peripheral Component Interconnect)總線作為SoC 集成設計平臺所能提供的一種總線模塊,根據可重用的IP(Intellectual Property)設計 思想對PCI 總線從設備控制器進行設計實現。

1 、PCI 總線從設備控制器的設計

1.1 控制器的基本功能

(1)數據傳輸功能:PCI 總線的傳輸包括PCI 與I/O 之間的傳輸(I/O 讀和I/O 寫)和 PCI 與存儲器之間的傳輸(存儲器讀和存儲器寫)。

(2)錯誤檢測與處理功能:在交易的地址段和數據段中,PCI 總線是被奇偶校驗保護 的。在交易的地址段和數據段中,驅動AD 總線的設備負責為本階段計算和提供奇偶校驗位, 接收AD 總線數據的設備負責進行奇偶校驗的檢測、處理并給出相應的信息

(3)命令/地址譯碼功能:根據一些控制信號將地址/數據和命令/字節使能線上的地址 和命令信號分離出來,得到相應的命令信號和讀寫操作的地址。

(4)配置功能:當機器第一次上電時,配置軟件必須掃描在系統中的不同總線(PCI 和 其它),確定什么設備存在和它們有什么配置要求。為了實現這個過程,每個PCI 設備必須 實現由PCI 規范定義的一組配置寄存器。依賴其操作特性、功能還可以實現由PCI 規范定義 的其它要求的或可選的配置寄存器。另外,還應保留許多附加的配置單元,以實現指定功能 的配置寄存器。

1.2 控制器的設計

在用Verilog HDL 語言進行PCI 總線從設備控制器設計之前, 首先要對PCI 總線從設備控制器的功能進行頂層設計[3], 將總線接口控制器按照功能分為有限狀態機模塊、奇偶校驗 模塊、配置空間配置模塊、基地址檢查模塊、計數器模塊、地址鎖存模塊和頂層模塊這7 個模塊[4], 控制器頂層模塊設計中有pci_clk、pci_cbe_l 、bkend_abort_l、bkend_ad、 bkend_int_l、data_stop_l、data_read_l、pci_frame_l、data_write_l、pci_idsel、pci_devsel、 pci_irdy_l、pci_inta_l、pci_rst_l、pci_par、ready_l、pci_ad 等信號, 其中_ L 表示信號低電 平有效。

各個模塊完成功能如下:

配置空間模塊:PCI總線支持即插即用,從硬件的角度來看,其技術手段是為每一個PCI 設備提供一個配置空間,操作系統在自檢(POST Power-On-Self Test)的過程中檢測所有 PCI設備,讀取設備的配置信息,并給每一個設備分配系統資源,如中斷、I/O空間、存儲器 空間等。配置空間包括一系列配置寄存器, 一般占用256個I/O地址,直接影響PCI 設備特性 的是PCI空間的前16個雙字節的配置, 該區域稱為PCI 配置頭,一般PCI設備都要進行“類型 0”配置[1]。

配置空間是PCI地址空間中重要的一部分,主要有設備標識、設備控制、設備狀態、基 地址定位及其它一些由特定設備所描述的功能這五部分。

這個模塊中售主ID 用語句DEVICE_ID= 16’h0120 來定義,其它設備標識類似,命令寄 存器提供了產生和響應PCI 周期、粗略控制設備的能力。當idsel_reg, pci_irdy_l 有效, 且 pci_addr[7:2] == 6’h04 時,信號stat_com_en 有效,表示可以在配置寫周期內對設備狀 態及命令寄存器進行配置。將pci_dat[1:0]的值賦給com,由端口com 來控制一個設備響應 I/O 或是內存的訪問。用輸出信號ba0_size[31:4]、ba1_size[31:4]表示定義的I/O、內存 空間的大小。pci_dat_out[31:0] 在配置讀時表示輸出的設備配置信息,在其它情況下將從 設備產生的數據輸出。ba0_en、ba1_en 分別表示在配置寫時I/O、內存基地址寄存器的有效 性。ba0_en 或ba1_en 有效是在配置寫期間對從設備進行配置的一個必要條件,int_line_en 是中斷線寄存器有效位。

在所有的基地址寄存器中,第0 位均為只讀位并且用來決定是存儲器空間還是I/O 空間。 如果該位為0 則是映射到存儲器空間,否則,若為1 表示映射到I/O 空間。

映射到I/O 空間的基地址寄存器寬度總是32 位,其中0 位恒為1(用硬件實現),1 位 為保留位并且其讀出值必須為0,其余位用來把設備映射到I/O 空間。映射到存儲器空間的 基地址寄存器可以是32 位或64 位。對于存儲器基地址寄存器,在0 位上設置為0,位2 和 位1 將其設為00,表示基地址寄存器為32 位寬。將位3 設為1,表示數據可預取。在設計 中將內存空間定義為1M 大小,1M 地址空間的設備應構造地址寄存器的高12 位為1(使用 32 位基址寄存器),其它位置為0。對于I/O 基地址寄存器為了簡便將其配置為與內存基地 址寄存器一樣的狀態。

基地址檢查模塊:如果PCI 設備要占用一定的I/O 空間或存儲器空間, 就必須實現基址 寄存器, 以便系統設置軟件在對系統進行自動設置時, 對其地址譯碼器進行編程,使設備能 獲得所要求的空間,在利用Verilog HDL進行PCI 總線接口設計時, 必須對基址寄存器的每 一位都能正確譯碼, 這樣才能確定PCI 設備是申請I/O 空間, 還是申請存儲器空間, 申請 空間的大小及其在系統中占據的位置, 是否可預取等。

在基地址檢查模塊中首先判斷系統是否要求復位,若要求復位則需對存儲交易地址的寄 存器(ba0、ba1)清0;反之則說明需要對給定的基地址進行判斷,當I/O 基地址寄存器有 效時,將總線上的數據pci_ad[31:4]的值賦給寄存器ba0;同樣的當內存基地址寄存器有效 時將pci_ad[31:4]的值賦給寄存器ba1。這時ba0 和ba1 中的值就是系統配置的I/O 和內存 在系統中具體的位置。接下來當設備要選擇申請的空間時,通過判斷式pci_addr & ba0_size的值是否與ba0 或ba1 相等,來判斷是否選中I/O 或內存空間。

奇偶生成模塊: PCI總線的奇偶校驗提供了一種檢驗數據傳輸正確與否的機制, 在任何 給定的總線周期內,哪個設備驅動了pci_ad[31::00]線,它就必須驅動PAR線,而且在時間 上要比相應的地址或數據推遲一個時鐘周期。奇偶校驗主要用來確定主設備是否成功地尋址 到它所希望的從設備,以及數據傳輸的正確與否。因此,PCI總線進行奇偶校驗的檢測是必 需的。而奇偶校驗生成就是解決以上問題的一個必要的步驟,從而使PCI總線設備控制器能 夠為PCI總線提供正確的與奇偶校驗有關的信息。

在交易中,從設備驅動數據到pci_dat_out 端口上,并通過par_out 信號向主設備提供 正確的奇偶效驗信息。PCI 總線奇偶校驗位的產生是采用偶校驗,參與奇偶校驗的位包括 pci_ad[31::00]及pci_cbe_l[3:0],檢驗pci_ad[31::00] 及pci_cbe_l[3:0] 上‘1’的 個數是否為偶數。如果為偶數則為par_out 端口賦‘0’,如果為奇數則為par_out 端口賦‘1’, 再將這個值傳回主設備,在主設備中與主設備產生的奇偶校驗值做比較,這樣做的目的是為 保證總線命令的正常執行和數據傳輸的正確性。如果兩個值相等說明尋址及數據的傳輸是正 確的,如果不相等,則說明尋址或數據的傳輸過程中發生了問題,此次交易的數據必須重新 傳送。而對于那些實際并不傳送數據的字節所對應的線,必須被驅動到穩定狀態,也要包含 于奇偶計算之中。

有限狀態機模塊:PCI 總線接口芯片是多功能和時序復雜的時序邏輯電路,它的復雜性 由PCI 總線操作的多樣性決定。為了便于利用硬件描述語言進行設計,將這一復雜的時序邏 輯抽象成有限狀態機,并利用有限狀態機實現復雜的總線操作。存儲器讀寫操作、I/O 讀寫 操作、配置空間讀寫操作和中斷操作都要通過一種設計合理的有限狀態機實現,根據PCI 總 線操作的時序關系給出了一種簡捷明了的有限狀態機, 實現了存儲器的讀寫、I/O 讀寫等各 種操作。如圖1 所示為有限狀態機的狀態轉移圖。

空閑狀態(Idle):根據當前命令為配置命令或讀寫命令而進入配置讀寫等待狀態或存 儲器、I/O 讀寫等待狀態、其它情況則繼續在空閑狀態等待。

配置讀寫等待(con_wait)狀態:系統進入配置讀寫等待狀態后根據pci_irdy_l 的值 判斷直接進入配置讀寫(con)狀態,還是繼續在配置讀寫等待(con_wait)狀態循環,如 果pci_irdy_l=0,則進入配置讀寫(con)狀態,否則繼續在配置讀寫等待(con_wait)狀 態循環。

配置讀寫(con)狀態:在這一狀態中將par_oe 設為有效,開始奇偶校驗生成;并將 trdy_l 設為有效表示從設備準備好。下來判斷pci_irdy_l 信號是否有效,即主設備是否準備好,如果該信號有效則傳輸配置信息,在下一時鐘延到來時轉入backoff 狀態,準備返回 空閑狀態;否則進行等待,直到pci_irdy_l 有效為止。

存儲器或I/O 讀寫等待(rw_wait)狀態:在進入這一狀態前首先應判斷是要進行讀操 作還是寫操作,下一步控制器要根據基地址譯碼模塊的譯碼結果決定控制器是對存儲器還是 I/O 讀寫,若譯碼結果顯示存儲器或I/O 都未選中,則進入傳輸中止狀態。

存儲器或I/O 讀寫等待2(rw_wait2)狀態:進入該狀態的同時開始計數,根據read_flag 的值,決定進行讀操作還是寫操作。

存儲器或I/O 讀等待(read_wait)狀態:在存儲器或I/O 讀寫等待2(rw_wait2)狀 態時判斷若為讀操作,則狀態機轉入存儲器或I/O 讀等待(read_wait)狀態,存儲器或I/O 讀等待(read_wait)狀態是在從設備trdy_l 有效之前讀取從設備的第一個數據段,也就是 地址段。

存儲器或I/O 讀寫(rw)狀態: 在這一狀態中進行存儲器或I/O 讀寫。

傳輸中止(abort)狀態:使從設備停止響應,傳輸中止。

存儲器或I/O 讀寫停止等待(last_rw)狀態:這是數據傳輸結束的前一個周期,表示即將停止數據傳輸。

重試(retry)狀態:當信息未準備好時,系統進入重試狀態。

結束狀態:結束此次交易。

計數器模塊:在DEVSEL確定以后,必須在16個總線周期內提供或者接收數據,這一模塊 用來實現一個周期計數功能,當在第12個周期時數據仍然未就緒時提供一個“retry”信號 來要求數據,同時在16個周期到來時通知終端設備此次交易結束。

地址鎖存模塊:在總線交易的地址段對PCI總線的地址、C/BE信號、IDSEL信號實現鎖存, 提供了這些信號的寄存器。

2 、PCI總線從設備控制器的FPGA實現

FPGA 是當前復雜數字硬件電路設計的理想首選。設計選用Xilinx 公司生產的Sparten —Ⅱ 200 PCI 驗證板。集成軟件環境為Xilinx ISE6.1i。

設計中有源代碼輸入、綜合、實現等3 個比較大的階段,而電路仿真的切入點也基本與 這些階段吻合 。選用XST(Xilinx Synthesis Technology)作為綜合工具。PCI 驗證板電 源、管教電壓、晶振分別選為5V、 2.5V、50MHz,下載模式選擇為JTAG 模式,并通過ISP PROM 配置FPGA。

3 、PCI總線設備控制器的驗證

硬件系統通常是通過信號來驅動的,在不同的輸入信號下其行為表現是產生不同的輸出 結果,因此,仿真輸入信息的產生是對系統進行仿真的重要前提和必須進行的步驟,PCI 總線控制器的仿真是由一段Verilog HDL 語言程序直接產生仿真的輸入信息,將此外部激勵信 號施加于PCI 總線控制器模型,通過觀察其在外部激勵信號作用下的反應來判斷PCI 總線控 制器是否能實現預期的功能。對PCI 總線控制器的仿真,主要是按照PCI 總線操作命令來進 行的,對于正常的總線操作結束和由主設備及從設備提出的操作終止都作了測試,其仿真結 果實現了預期的要求。由于仿真項目比較多,我們選取其中具有代表性的一個項目來舉例說 明。圖2 是存儲器空間沒有等待周期的突發數據段寫這一過程的仿真結果。

PCI總線從設備控制器的設計思路及驗證結果分析

4、 結論

PCI總線從設備控制器的設計按照自頂向下的設計流程,實現了PCI 從設備控制器的設計目標,完成了PCI 總線協議所要求的基本功能,目前已是一個完整可用的PCI 總線從設備 控制器IP 核,有很高的工程價值。

該設計方案將PCI從設備控制器作為IP核來設計,將總線接口控制器 按照功能分為有限狀態機模塊、奇偶校驗模塊、配置空間配置模塊、基地址檢查模塊、計數 器模塊、地址鎖存模塊和頂層模塊這7個模塊,編寫了測試文件,測試表明,設計完全符合功能要求。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 控制器
    +關注

    關注

    112

    文章

    16395

    瀏覽量

    178482
  • 總線
    +關注

    關注

    10

    文章

    2891

    瀏覽量

    88162
  • 機器
    +關注

    關注

    0

    文章

    784

    瀏覽量

    40757
收藏 人收藏

    評論

    相關推薦

    pci總線的含義是什么

    要改善其性能,也對總線的速度提出了挑戰。實際上當時外設的速度已有了很大的提高,如硬磁盤與控制器之間的數據傳輸率已達10MB/s以上,圖形控制器和顯示之間的數據傳輸率也達到69MB/s
    發表于 12-09 13:46

    基于PCI總線的CPLD實現

    至少需要47條信號線。表1中列出了設備接口設計必需的接口信號及說明。一個完整的PCI總線交易過程如下:要發起數據交易的設備先置REQ#,在
    發表于 05-29 05:00

    總線接口控制器PCI9052資料推薦

    PCI9052是美國PLX科技有限公司推出的一款PCI總線從屬接口芯片(但不具有DMA功能)。它可以提供高性能的目標PCI接口板卡與
    發表于 04-15 07:02

    通用PCI目標控制器的設計與實現

    在研究PCI 總線規范的基礎上,完成PCI 目標控制器的功能描述和驗證整體設計、數據通路和
    發表于 03-20 17:08 ?7次下載

    PCI中斷機制分析

    PCI中斷機制分析:PCI 總線有四條中斷線,所有PCI 設備共同使用這四條線向系統申請中斷,中
    發表于 06-28 19:21 ?26次下載

    PCI總線目標控制器的設計

    本文在PCI2.2 總線規范的基礎上,給出了一種PCI 總線目標控制器的設計方案。重點
    發表于 12-12 16:58 ?33次下載

    PCI總線設備控制器的設計與實現

    本文重點分析PCI 總線設備控制器的設計方案。以PCI
    發表于 01-13 16:57 ?49次下載

    高速紅外VFIR控制器的設計與實現

    摘要:根據IRDA紅外串行物理層規范IRDA-1.4設計基于PCI總線的甚高速VFIR紅外控制器,詳細分析控制器的硬件和軟件設計方法及
    發表于 03-11 13:37 ?2585次閱讀
    高速紅外VFIR<b class='flag-5'>控制器</b>的設計與實現

    基于FPGA的PCI接口控制器的設計與實現

    基于FPGA的PCI接口控制器的設計與實現 pci總線是高速同步總線,采用高度綜合優化的總線
    發表于 12-14 14:29 ?1862次閱讀
    基于FPGA的<b class='flag-5'>PCI</b>接口<b class='flag-5'>控制器</b>的設計與實現

    設備模式PCI總線的簡化協議

    采用FP(認技術,在ALTERA奢司的FLEX6000系列芯片上實現了設備模式PCI總線的簡化協議,并給出了winclows9x系統下的虛擬設備
    發表于 09-01 16:16 ?35次下載
    <b class='flag-5'>從</b><b class='flag-5'>設備</b>模式<b class='flag-5'>PCI</b><b class='flag-5'>總線</b>的簡化協議

    PCI總線設備接口的CPLD實現

    出了一種PCI總線設備的CPLD實現方法。該方法遵從PCI規范2.2版,實現了資源自動配置并且支持數據突發傳輸。試
    發表于 11-30 17:06 ?60次下載
    <b class='flag-5'>PCI</b><b class='flag-5'>總線</b><b class='flag-5'>從</b><b class='flag-5'>設備</b>接口的CPLD實現

    基于PCI Core的鏈式DMA控制器設計

    介紹一種基于PCI總線的高效鏈式DMA控制器的設計與實現,用于高速寬帶的計算機外設接口。利用Altera公司的PCI核——PCI_MT32搭
    發表于 12-06 13:56 ?3150次閱讀
    基于<b class='flag-5'>PCI</b> Core的鏈式DMA<b class='flag-5'>控制器</b>設計

    LTC1643A:PCI總線熱交換控制器數據盤

    LTC1643A:PCI總線熱交換控制器數據盤
    發表于 05-25 20:28 ?7次下載
    LTC1643A:<b class='flag-5'>PCI</b><b class='flag-5'>總線</b>熱交換<b class='flag-5'>控制器</b>數據盤

    pci內存控制器和sm總線控制器感嘆號會造成電腦死機嗎?

    PCI內存控制器和SM總線控制器設備管理器中出現感嘆號,通常意味著這些設備的驅動程序存在問題或
    的頭像 發表于 10-10 16:59 ?5590次閱讀

    使用AMCC S5933 PCI控制器將TMS320C6000 EMIF連接到PCI總線

    電子發燒友網站提供《使用AMCC S5933 PCI控制器將TMS320C6000 EMIF連接到PCI總線.pdf》資料免費下載
    發表于 10-26 10:08 ?0次下載
    使用AMCC S5933 <b class='flag-5'>PCI</b><b class='flag-5'>控制器</b>將TMS320C6000 EMIF連接到<b class='flag-5'>PCI</b><b class='flag-5'>總線</b>
    主站蜘蛛池模板: 9位美女厕所撒尿11分| 国产AV精品无码免费看| 狠狠干女人| 亚洲区偷拍自拍29P| 久久人妻少妇嫩草AV蜜桃35I| 最近免费中文MV在线字幕| 欧美日韩精品一区二区三区高清视频| 边做边爱播放3免费观看| 无人区大片中文字幕在线 | RUNAWAY韩国动漫免费网| 天天综合亚洲综合网站| 久久精品久久精品| YY6080A旧里番在线观看| 香港论理午夜电影网| 美国caopo超碰在线视频| 国产精品久久久久久人妻精品流| 亚洲综合国产精品| 日本孕妇大胆孕交| 久久精品国产免费播高清无卡| vivoe另类| 一色狗影院| 色琪琪丁香婷婷综合久久| 久久久久琪琪精品色| 工口肉肉彩色不遮挡| 最近免费中文字幕MV免费高清| 乌克兰xxxxx| 嗯 用力啊 嗯 c我 啊哈老师| 国产亚洲精品AV片在线观看播放| 99热久久精品国产一区二区| 亚洲精品无夜久久久久久久久| 日本xxxxxxx| 老女老肥熟国产在线视频| 国产美女又黄又爽又色视频网站| 99午夜视频| 在线观看亚洲免费视频| 相声flash| 日日干夜夜艹| 女人十八毛片水真多啊| 久久国内精品| 国产亚洲日韩另类在线观看| 超碰免费视频caoporn|