• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于FPGA的PCI總線接口原理研究與設(shè)計(jì)

    基于FPGA的PCI總線接口原理研究與設(shè)計(jì)

    作者: 時(shí)間:2010-03-05 來(lái)源:網(wǎng)絡(luò) 收藏

      ● 時(shí)序控制

      在時(shí)序控制程序中采用狀態(tài)機(jī)模型來(lái)實(shí)現(xiàn)不同時(shí)序的轉(zhuǎn)換。各種命令、數(shù)據(jù)交換、控制均在狀態(tài)機(jī)的管理下進(jìn)行工作。PCI總線上的信號(hào)是并行工作的,因此,對(duì)應(yīng)每個(gè)狀態(tài)必須明確其執(zhí)行的任務(wù)。這些任務(wù)要用VHDL的進(jìn)程語(yǔ)句來(lái)描述所發(fā)生的事件。本設(shè)計(jì)中的狀態(tài)機(jī)共使用了6種狀態(tài),它以從設(shè)備響應(yīng)狀況為依據(jù),主要以DEVSEL#信號(hào)和TRDY#信號(hào)的狀況為依據(jù)。狀態(tài)機(jī)如圖1所示,分別對(duì)應(yīng)空閑狀態(tài)(此狀態(tài)DEVSEL#、TRDY#和STOP#以及其他輸出信號(hào)為高阻態(tài));準(zhǔn)備狀態(tài)、DEVSEL#和TRDY#均為高電平狀態(tài),DEVSEL#為低電平且TRDY#為高電平狀態(tài),DEVSEL#和TRDY#均為低電平狀態(tài);操作結(jié)束狀態(tài)(此狀態(tài)使DEVSEL#、TRDY#和STOP#維持一個(gè)周期高電平)。本系統(tǒng)接到復(fù)位信號(hào)后對(duì)系統(tǒng)進(jìn)行復(fù)位,然后轉(zhuǎn)入空閑狀態(tài),在空閑狀態(tài)中采樣總線,并根據(jù)總線的變化來(lái)決定下一個(gè)時(shí)鐘上升沿后狀態(tài)機(jī)轉(zhuǎn)入何種狀態(tài),這些時(shí)序和程序中用到的信號(hào)都是基本且必須的,在進(jìn)行開(kāi)發(fā)時(shí)可以根據(jù)需要增添必要的狀態(tài)和信號(hào),VHDL對(duì)狀態(tài)機(jī)的描述如下。

    狀態(tài)機(jī)

      type pci_state is (Idle, Ready, DevTrdyHi, DevLoTrdyHi, DevTrdyLo, OprOver);

      signal c_state :pci_state;

      Idle為空閑狀態(tài);Ready為準(zhǔn)備狀態(tài);DevTrdyHi表示DEVSEL#和TRDY#均為高電平狀態(tài);DevLoTrdyHi表示DEVSEL#為低電平且TRDY#為高電平狀態(tài);DevTrdyLo表示DEVSEL#和TRDY#均為低電平狀態(tài);OprOverr表示操作結(jié)束狀態(tài)。

      程序如下。

    程序

    程序

      下一步應(yīng)列出每個(gè)狀態(tài)所對(duì)應(yīng)的并發(fā)事件,寫出相關(guān)的進(jìn)程。進(jìn)程語(yǔ)句是一個(gè)并行語(yǔ)句,它定義進(jìn)程被激活時(shí)將要執(zhí)行的特定行為。例如,在Ready狀態(tài)時(shí),就要判斷從主設(shè)備方發(fā)來(lái)的地址信息是否與從設(shè)備地址相同,因此要寫出地址比較進(jìn)程。



    關(guān)鍵詞: FPGA PCI總線接口

    評(píng)論


    相關(guān)推薦

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

    關(guān)閉
    主站蜘蛛池模板: 游戏| 台中市| 陆河县| 唐山市| 大余县| 靖州| 临城县| 开封市| 巫溪县| 龙南县| 奎屯市| 台江县| 瓮安县| 枣阳市| 桐柏县| 固阳县| 龙川县| 吴忠市| 呼图壁县| 连平县| 巴青县| 洛川县| 瑞金市| 祁阳县| 怀安县| 通化市| 廊坊市| 项城市| 淮南市| 乡城县| 丰城市| 海晏县| 郯城县| 镇康县| 大宁县| 镇平县| 民乐县| 安达市| 平山县| 泰和县| 宁波市|