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

    EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > KCPSM6 PicoBlaze的原理與應(yīng)用

    KCPSM6 PicoBlaze的原理與應(yīng)用

    作者: 時(shí)間:2013-04-23 來源:網(wǎng)絡(luò) 收藏

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

    2 KCPSM6開發(fā)與調(diào)試
    KCPSM6的開發(fā)流程與KCPSM3基本相同。KCPSM6的開發(fā)流程如圖2所示。

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

    b.JPG


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

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

    結(jié)語
    本文簡要闡述了Xilinx公司最新推出的KCPSM6軟核的結(jié)構(gòu)及,并與KCPSM3進(jìn)行了對(duì)比分析。介紹了KCPSM6的開發(fā)調(diào)試流程,并進(jìn)行了實(shí)例驗(yàn)證。本文對(duì)已有KCPSM3使用經(jīng)驗(yàn)的設(shè)計(jì)者快速熟悉KCPSM6的開發(fā)具有積極意義。


    上一頁 1 2 下一頁

    關(guān)鍵詞: 應(yīng)用 原理 PicoBlaze KCPSM6

    評(píng)論


    相關(guān)推薦

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

    關(guān)閉
    主站蜘蛛池模板: 四子王旗| 襄汾县| 抚松县| 托克托县| 安徽省| 砚山县| 靖宇县| 永修县| 松滋市| 恩平市| 黄浦区| 盐池县| 德州市| 尉犁县| 大姚县| 洪雅县| 屏东县| 四川省| 宕昌县| 上杭县| 专栏| 新和县| 呼玛县| 柳林县| 东港市| 海林市| 南城县| 顺平县| 柳州市| 庆元县| 论坛| 武冈市| 特克斯县| 靖宇县| 炎陵县| 合川市| 大荔县| 辽宁省| 丰城市| 平度市| 光山县|