<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 對(duì)FPGA中SPI復(fù)用配置的編程方法的研究

          對(duì)FPGA中SPI復(fù)用配置的編程方法的研究

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

            (Serial Peripheral InteRFace,串行外圍設(shè)備接口)是一種高速、全雙工、同步的通信總線,在芯片的引腳上只占用4根線,不僅節(jié)約了芯片的引腳,同時(shí)在PCB的布局上還節(jié)省空間。正是出于這種簡(jiǎn)單、易用的特性,現(xiàn)在越來(lái)越多的芯片集成了這種通信協(xié)議。

            1 配置介紹

            1.1 Spantan-3E 配置流程

            SPI方式是通過(guò)符合SPI接口時(shí)序的第三方SPI Flash對(duì)進(jìn)行加載。它適合作為硬件結(jié)構(gòu)的bit文件保存介質(zhì),如果應(yīng)用軟件工程編譯后的代碼較小,保存在同一片SPI FLash中(即復(fù)用SPI Flash)無(wú)疑是可行的最廉價(jià)方案。

            由于本沒(méi)計(jì)軟件工程規(guī)模較小,所以利用此復(fù)用SPI Flash方式對(duì)進(jìn)行配置,既保存FPGA配置的bit文件,也保存應(yīng)用軟件工程的bit文件。系統(tǒng)在上電或向PROG_B引腳發(fā)出低脈沖后,F(xiàn)PGA芯片經(jīng)過(guò)一個(gè)初始化序列清空內(nèi)部FPGA配置。此序列開(kāi)始時(shí),DONE和INIT_B引腳均轉(zhuǎn)為低。初始化完成后,INIT_B引腳轉(zhuǎn)為高,并采樣芯片的配置模式及變量選擇引腳。

            SPI模式下,F(xiàn)PGA對(duì)變量選擇(VS[2:0])引腳采樣,以確定發(fā)出哪個(gè)SPI命令序列。當(dāng)初始化之后發(fā)出INIT_B信號(hào)時(shí),模式引腳和變量選擇引腳都必須處在正確的邏輯級(jí),以確保正確采樣。

            在變量選擇引腳選擇SPI命令集之后,F(xiàn)PGA將CSO_B選擇信號(hào)置為低,并且開(kāi)始通過(guò)FPGA的CCLK引腳對(duì)SPI Flash進(jìn)行時(shí)鐘控制。接著發(fā)出8位讀命令后跟24位起始地址0x000000和目標(biāo)命令集的適量虛擬字節(jié)。FPGA從地址0開(kāi)始讀取SPI Flash陣列,直到讀完所需的配置位數(shù)。如果從存儲(chǔ)器件讀取到有效比特流,則發(fā)DONE信號(hào),以指示FPGA配置成功。圖1為SPI配置方式的時(shí)序。

          SPI配置方式的時(shí)序

            圖2是AT45DB161D SPI Flash的配置接口。這種配置方式只占用了FPGA芯片的4個(gè)引腳,而且配置成功之后,所有SPI引腳都成為可用的用戶I/O引腳,這就節(jié)省了FPGA的引腳資源。

          對(duì)FPGA中SPI復(fù)用配置的編程方法的研究


          上一頁(yè) 1 2 3 4 下一頁(yè)

          評(píng)論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();