新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于CPCI總線的FPGA加載設計

        基于CPCI總線的FPGA加載設計

        作者: 時間:2013-07-31 來源:網絡 收藏

          4.2 參數模塊

          由于以突發模式下載到Spartan-3E 的數據是以32 bit 為單位的,且三片FPGA 需要的參數各不相同,因此需要對下載到Spartan-3E 的數據進行整理分類,再根據不同需求,下載到三片FPGA 中去。

          狀態參數的上傳與下載流程相反。

          4.3 FPGA 加載模塊

          DMA 方式下載到Spartan-3E 的32 bit數據在塊內是連續的,但是塊與塊之間是不連續的,為了保證FPGA 加載過程不中斷,在Spartan-3E 中需要一個FIFO 將數據進行緩沖,從而保證BIT 數據流的連續性。為了確保加載數據在FIFO 中讀不空,在設計中當FIFO 中的可讀的數據大于一定門限的時候觸發加載邏輯,同時為了防止FIFO 寫滿導致丟失數據,當FIFO中可讀的數據到達一定門限后,就不再請求DMA.通過這樣的保護,可以保證BIT 流加載文件在加載邏輯開始后可以連續不斷的輸入給FPGA,直到FPGA 加載完成。

          工控機按照32 bit 讀取BIT 文件存在Byte 翻轉的情況,下載到Spartan-3E 后需要再把32 bit的數據進行翻轉過來,只需要用FIFO 讀時鐘32 倍頻的時鐘進行計數,將FIFO 讀出的32 bit 數據按照翻轉的對應關系順序送出讀取即可滿足要求。

          為了區分3片FPGA 的加載,設計兩比特的標志位,用以區分不同的FPGA.在加載FPGA 之前先通過軟件先下載兩比特標志位,配置模塊根據標志位,切換數據流向,從而可以配置3 片不同的FPGA.

          5 軟件設計

          PCI9656 芯片的驅動程序從其配套的SDK 開發包中獲取,工控機的控制軟件由C++語言完成,開發環境基于Borland 公司的C++Builder6.

          在PLX公司提供的軟件開發包中,含有PCI9656與上位機通信的動態庫文件Plxapi.dll.該文件包含了眾多函數,可以直接調用。在設計中用PlxIoPortWrite 和PlxIoPortRead 來實現突發數據的下載和上傳,用PlxDmaBlockTransfer來實現FPGA的配置數據流的下載和大量實時數據的上傳。

          6 結語

          本文提出了基于CPCI 總線的FPGA 的設計與實現,在40 M 的下,在對同一塊FPGA 進行加載時,加載速度可以達到JTAG 加載方式的10 倍之多。該設計可以對三片FPGA 芯片進行快速穩定的下載,與常規PROM 加載方式相比有著快速靈活的優勢,對加載速度和實時性要求比較高的系統設計中,具有很強的可操作性和可借鑒性。


        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 上栗县| 普格县| 深泽县| 呼图壁县| 兴业县| 顺义区| 洞头县| 新宾| 昌宁县| 清河县| 南皮县| 沙洋县| 西畴县| 三穗县| 谢通门县| 科尔| 北京市| 彰化县| 香河县| 无极县| 图木舒克市| 台北市| 合川市| 来宾市| 鹤壁市| 霍州市| 延庆县| 南部县| 鹤山市| 武清区| 南充市| 庆安县| 乌兰县| 淮安市| 洛浦县| 利津县| 邛崃市| 青龙| 珲春市| 安宁市| 嘉义县|