新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > KCPSM6 PicoBlaze的原理與應用

        KCPSM6 PicoBlaze的原理與應用

        作者: 時間:2013-04-23 來源:網絡 收藏

        (2)新增屬性
        新增了3個屬性,分別是hwbuild(與HWBULID指令配合使用,可用于定義軟件版本等功能)、interrupt_vector(定義中斷矢量,默認為0x3FF)和scratch_pad_memory_size(定義內部暫存RAM大小,默認為64 B)。
        (3)新增指令
        指令集向下兼容KCPSM3的指令集,并新增了9條指令,分別是TESTCY、COMPARECY、REGBANK、STAR、OUTPUTK、JUMP@、CALL@、LO ADRETURN和HWBULID。新指令的擴展,極大地改善了的編程靈活性和代碼效率。例如,向端口0x01輸出0x5A,在KCPSM3中需執行兩條指令:“LOAD s0,5A”和“OUPUT s0,01”。而在KCPSM6中,只需執行“OUTPUTK 5A 01”即可。其他新增指令的詳細功能,見參考文獻。

        2 KCPSM6開發與調試
        KCPSM6的開發流程與KCPSM3基本相同。KCPSM6的開發流程如圖2所示。

        本文引用地址:http://www.104case.com/article/148050.htm

        b.JPG


        如圖2所示,用戶程序和ROM模塊經編譯器KCPSM6 Assembler編譯后,生成包含程序代碼的ROM模塊。在頂層模塊中例化ROM模塊和KCPSM6模塊,然后綜合、實現并生成比特流下載到FPGA中。在程序調試過程中,經常需要對用戶程序進行反復修改,如果采用常規的方法,則每次修改用戶程序,都要重新綜合、布局布線,生成新的比特文件,往往需要幾分鐘到十幾分鐘,耗時耗力,給調試帶來了極大不便。為此,與KCPSM3類似,Xilinx公司也為KCPSM6提供了JTAG Loader工具,而采用JTAG Loader進行調試則無需重新綜合、布局布線,通過JTAG接口直接修改的程序BRAM,只需幾秒即可完成程序更新,大大加快了調試進度。
        JTAG Loader的使用步驟如下:
        ①將代碼中的C_JTAG_LOADER_ENABLE屬性設為“1”。
        ②綜合、實現生成比特流并下載到FPGA中。
        ③將JTAG Loader.exe復制到當前工程目錄下。
        ④打開命令提示符,并切換到當前目錄,運行JTAGLoader(如果是64位操作系統則運行JTAG Loader64),JTAG Loader自行識別目標FPGA,如果報錯顯示未知器件,則需要輸入其IR_Length參數,該參數可以在ISE安裝目錄下查到,如:C:\Xilinx\13.2\ISE_DS\ISE\acecf\data\xccace.bsd文件中的attribute INSTRUCTION_LENGTH ofXCCACE:entity is 8,其他器件的查閱方法類似。
        ⑤修改用戶程序,并用kcpsm6.exe重新編譯程序。
        ⑥運行jtagloader—1 your_program.hex,即可實現一鍵更新程序。
        另外,值得注意的是,使用JTAG Loader之前,必須正確設置系統的環境變量,具體方法是運行ISE安裝目錄下C:\Xilinx\1 3.2\ISE_DS文件夾內的settings32.bat批處理文件即可。

        3 實例
        為了驗證KCPSM6的新增功能及JTAG Loader的使用方法,本文在FPGA開發板上實現了8位LED的控制。綜合結果顯示,本設計共占用了35個Slice和2個RAMB 16BWERs單元,僅占XC6SLX75T-3FGG676總Slice數和BRAM單元的1%。最后,將生成的比特流下載到開發板上進行驗證,LED能夠按預期要求閃爍。修改用戶程序,重新編譯后,能夠用JTAG Loader快速更新程序。

        結語
        本文簡要闡述了Xilinx公司最新推出的KCPSM6軟核的結構及,并與KCPSM3進行了對比分析。介紹了KCPSM6的開發調試流程,并進行了實例驗證。本文對已有KCPSM3使用經驗的設計者快速熟悉KCPSM6的開發具有積極意義。


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 玉田县| 勐海县| 临夏县| 五常市| 仙居县| 江川县| 南康市| 黔西| 泰安市| 三门县| 山东省| 平利县| 香港| 临桂县| 璧山县| 改则县| 盐源县| 汉源县| 麟游县| 华宁县| 郧西县| 兰西县| 鞍山市| 普洱| 辰溪县| 丰原市| 九龙城区| 马尔康县| 东乌珠穆沁旗| 德安县| 会宁县| 邛崃市| 丰台区| 淮北市| 平昌县| 保山市| 合作市| 武清区| 天津市| 扶余县| 东至县|