基于Xilinx-Spartan6 FPGA的MultiBoot設(shè)計(jì)的實(shí)現(xiàn)
4 MultiBoot實(shí)現(xiàn)簡例
實(shí)現(xiàn)MultiBoot操縱有兩種方法:(1)基于ICAP的寄存器編程實(shí)現(xiàn)。(2)通過在生成bit流文件時(shí),設(shè)置相關(guān)選項(xiàng)實(shí)現(xiàn)。
4.1 基于ICAP的寄存器編程實(shí)現(xiàn)
如上所述,通過ICAP_SPARTAN6原語發(fā)送IPROG命令,其發(fā)送命令序列如下:(1)發(fā)送同步字。(2)配置General1-General4,指定相關(guān)操作所需配置文件地址及操作碼。(3)發(fā)送IPROG命令。ICAP_SPARTAN6原語接口定義如表7所示。本文引用地址:http://www.ex-cimer.com/article/190467.htm
在主SPI模式下,ICAP_SPARTAN6的輸入數(shù)據(jù)在從總線I[15:0]輸入前,要進(jìn)行字節(jié)范圍內(nèi)的位交換,即16位寬的字分為高8位1 Byte,低8位1 Byte,各字節(jié)的最高位[7]和最低位[0]交換,位[6]與位[1]交換,其他以此類推。
通過ICAP觸發(fā)IPROG的命令序列舉例如表8所示。
IPROG命令后需經(jīng)過一段時(shí)間后,FPGA內(nèi)部才會產(chǎn)生相應(yīng)的重配置信號,因此在IPROG命令后需跟幾個(gè)空操作命令,一般為4個(gè)。GENERA L2、GENERAL4中的操作碼:0x0B、0x3B、0x6B分別為SPIx1、SPIx2、SPIx4。
ICAP邏輯模塊是FPGA中的專有邏輯模塊,因此在生成bit文件的各源文件中必須都實(shí)例化一個(gè)ICAP模塊。一般情況下對ICAP模塊的控制操作通過狀態(tài)機(jī)實(shí)現(xiàn)。
4.2 選項(xiàng)設(shè)置實(shí)現(xiàn)
實(shí)現(xiàn)MultiBoot功能所需配置的所有寄存器,均可在生成bit文件時(shí)通過添加相關(guān)的生成設(shè)置選項(xiàng)實(shí)現(xiàn)。在進(jìn)程菜單中單擊Generate Pro gramming File,選擇Process Properties,彈出配置窗口如圖2所示。
5 結(jié)束語
介紹了實(shí)現(xiàn)MultiBoot操作的兩種方式,一種是基于ICAP的寄存器編碼配置方式??赏ㄟ^源代碼中的注釋,使后續(xù)開發(fā)維護(hù)人員閱讀代碼、擴(kuò)展功能時(shí)思路清晰,缺點(diǎn)是需編寫大量代碼,并需對ICAP的操作與命令序列有一定了解。第二種通過在生成bit文時(shí)添加相關(guān)設(shè)置選項(xiàng)實(shí)現(xiàn),方便簡單,但需大量的文本注釋,以便后續(xù)的開發(fā)與維護(hù)。當(dāng)然,實(shí)際的應(yīng)用開發(fā)過程中可同時(shí)使用這兩種方法,實(shí)現(xiàn)更高效便捷的編碼開發(fā)。
fpga相關(guān)文章:fpga是什么
評論