• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      KCPSM6PicoBlaze的原理與應(yīng)用※

      2013-08-27 08:33:20魏厚剛楊寬泗孫武張開(kāi)鋒
      關(guān)鍵詞:用戶(hù)程序嵌入式指令

      魏厚剛,楊寬泗,孫武,張開(kāi)鋒

      (中國(guó)人民解放軍75576部隊(duì),???70236)

      引 言

      PicoBlaze 8位嵌入式處理器是Xilinx公司為Virtex、Spartan系列FPGA 和CoolRunner-II系列CPLD設(shè)計(jì)的嵌入式處理器軟核。針對(duì)不同的器件,Xilinx公司共推出了3 個(gè)版本的PicoBlaze,包括KCPSM3(目標(biāo)器件為Spartan 3、Virtex II、Virtex II PRO、Virtex 4和Virtex 5),CPLD版(目標(biāo)器件為CoolRunner-II)和最新推出的KCPSM6(目標(biāo)器件為Spartan 6、Virtex 6 和7 系列FPGA)。KCPSM6針對(duì)Spartan 6、Virtex 6和7系列FPGA 進(jìn)行了特殊優(yōu)化,增加了一些新特性,在開(kāi)發(fā)和調(diào)試方法上也與KCPSM3 有所不同。本文分析對(duì)比了其異同,對(duì)KCPSM6在開(kāi)發(fā)調(diào)試中的注意事項(xiàng)進(jìn)行總結(jié),并在Avnet Spartan 6 MicroBoard上進(jìn)行了實(shí)例驗(yàn)證。

      1 KCPSM6PicoBlaze的體系結(jié)構(gòu)

      KCPSM6PicoBlaze(以下簡(jiǎn)稱(chēng)KCPSM6)8位嵌入式處理器是Xilinx公司為Spartan 6、Virtex 6和7系列FPGA 設(shè)計(jì)的嵌入式處理器軟核,它具有效率高、占用資源少等優(yōu)點(diǎn),可以方便地嵌入到硬件系統(tǒng)設(shè)計(jì)中,實(shí)現(xiàn)與其他功能模塊的無(wú)縫連接[1]。它僅占用26個(gè)Slice和1個(gè)BRAM,占XC6SLX4器件4.3%的資源、XC6SLX150T 器件不到0.11%的資源。KCPSM6嵌入式處理器具有高達(dá)52~120 MIPS的指令執(zhí)行速度,具體速度取決于所選用的FPGA 所屬系列和器件速度等級(jí)。

      KCPSM6微處理器主要由以下幾個(gè)單元組成:

      ◆兩組16個(gè)8位通用寄存器;

      ◆最高支持4KB的程序存儲(chǔ)單元;

      ◆8 位算術(shù)邏輯單元,帶有CARRY 和ZERO標(biāo)志位;

      ◆64、128或256字節(jié)內(nèi)部暫存RAM;

      ◆256個(gè)輸入和256個(gè)輸出端口,方便擴(kuò)展應(yīng)用;

      ◆中斷控制單元;

      ◆休眠模式,進(jìn)一步降低系統(tǒng)功耗。

      KCPSM6嵌入式處理器的原理框圖如圖1所示。

      KCPSM6新增的特性和功能總結(jié)如下:

      (1)新增引腳

      圖1 KCPSM6嵌入式處理器原理框圖

      sleep引腳。當(dāng)sleep引腳電平由低變高時(shí),KCPSM6在執(zhí)行完最后一條已讀取指令后,進(jìn)入休眠模式,以降低系統(tǒng)功耗。若將sleep引腳一直置低電平,則KCPSM6一直處于正常工作狀態(tài)。

      K_write_strobe為常量輸出觸發(fā)信號(hào),與OUTPUTK指令配合使用,可用一條指令即可完成向輸出端口輸出常量值,而無(wú)需寄存器的干預(yù)。

      bram_enable為程序存儲(chǔ)單元BRAM 使能信號(hào),可進(jìn)一步降低系統(tǒng)功耗。

      Address[11:10]為程序存儲(chǔ)單元高位地址線,最大支持4KB程序存儲(chǔ)。

      (2)新增屬性

      KCPSM6新增了3個(gè)屬性,分別是hwbuild(與HWBULID指令配合使用,可用于定義軟件版本等功能)、interrupt_vector(定義中斷矢量,默認(rèn)為0x3FF)和scratch_pad_memory_size(定義內(nèi)部暫存RAM 大小,默認(rèn)為64B)。

      (3)新增指令

      KCPSM6指令集向下兼容KCPSM3的指令集,并新增了9 條指令,分別是TESTCY、COMPARECY、REGBANK、STAR、OUTPUTK、JUMP @、CALL @、LOAD&RETURN 和HWBULID。新指令的擴(kuò)展,極大地改善了KCPSM6的編程靈活性和代碼效率。例如,向端口0x01 輸出0x5A,在KCPSM3 中需執(zhí)行兩條指令:“LOAD s0,5A”和“OUPUT s0,01”。而在KCPSM6 中,只需執(zhí)行“OUTPUTK 5A01”即可。其他新增指令的詳細(xì)功能,見(jiàn)參考文獻(xiàn)[1]。

      2 KCPSM6開(kāi)發(fā)與調(diào)試

      KCPSM6 的開(kāi)發(fā)流程與 KCPSM3 基本相同。KCPSM6的開(kāi)發(fā)流程如圖2所示。

      圖2 KCPSM6開(kāi)發(fā)流程示意圖

      如圖2所示,用戶(hù)程序和ROM 模塊經(jīng)編譯器KCPSM6Assembler編譯后,生成包含程序代碼的ROM模塊。在頂層模塊中例化ROM 模塊和KCPSM6 模塊,然后綜合、實(shí)現(xiàn)并生成比特流下載到FPGA 中。在程序調(diào)試過(guò)程中,經(jīng)常需要對(duì)用戶(hù)程序進(jìn)行反復(fù)修改,如果采用常規(guī)的方法,則每次修改用戶(hù)程序,都要重新綜合、布局布線,生成新的比特文件,往往需要幾分鐘到十幾分鐘,耗時(shí)耗力[2],給調(diào)試帶來(lái)了極大不便。為此,與KCPSM3類(lèi)似,Xilinx公司也為KCPSM6提供了JTAG Loader工具,而采用JTAG Loader進(jìn)行調(diào)試則無(wú)需重新綜合、布局布線,通過(guò)JTAG 接口直接修改PicoBlaze的程序BRAM,只需幾秒即可完成程序更新,大大加快了調(diào)試進(jìn)度。

      JTAG Loader的使用步驟如下:

      ①將代碼中的C_JTAG_LOADER_ENABLE屬性設(shè)為“1”。

      ②綜合、實(shí)現(xiàn)生成比特流并下載到FPGA 中。

      ③將JTAG Loader.exe復(fù)制到當(dāng)前工程目錄下。

      ④打開(kāi)命令提示符,并切換到當(dāng)前目錄,運(yùn)行JTAG Loader(如果是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 of XCCACE:entity is 8,其他器件的查閱方法類(lèi)似。

      ⑤修改用戶(hù)程序,并用kcpsm6.exe重新編譯程序。

      ⑥運(yùn)行jtagloader–l your_program.hex,即可實(shí)現(xiàn)一鍵更新程序。

      另外,值得注意的是,使用JTAG Loader之前,必須正確設(shè)置系統(tǒng)的環(huán)境變量,具體方法是運(yùn)行ISE安裝目錄下C:\Xilinx\13.2\ISE_DS文件夾內(nèi)的settings32.bat批處理文件即可。

      3 應(yīng)用實(shí)例

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

      結(jié) 語(yǔ)

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

      [1]Xilinx.PicoBlaze 8-bit Embedded Microcontroller User Guide[EB/OL].(2011-07-22)[2010-09].http://www.xilinx.com/support/documentation/ip_documentation/ug129.pdf.

      [2]鄭嘉平,孫迪鋒,劉傳,等.PicoBlaze軟核的仿真與調(diào)試[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2011(3):74-75.

      猜你喜歡
      用戶(hù)程序嵌入式指令
      聽(tīng)我指令:大催眠術(shù)
      變速箱控制系統(tǒng)Bootloader設(shè)計(jì)與實(shí)現(xiàn)
      ARINC661顯控指令快速驗(yàn)證方法
      LED照明產(chǎn)品歐盟ErP指令要求解讀
      嵌入式設(shè)備遠(yuǎn)程升級(jí)方案設(shè)計(jì)
      搭建基于Qt的嵌入式開(kāi)發(fā)平臺(tái)
      嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應(yīng)用
      C8051F410單片機(jī)BootLoader的實(shí)現(xiàn)
      Altera加入嵌入式視覺(jué)聯(lián)盟
      倍福 CX8091嵌入式控制器
      荣成市| 许昌市| 温州市| 铁力市| 嘉祥县| 焦作市| 石狮市| 汝城县| 沙田区| 九台市| 彰化市| 东安县| 桐庐县| 阿鲁科尔沁旗| 乐业县| 罗城| 佛学| 古丈县| 额敏县| 阿克| 久治县| 玛纳斯县| 比如县| 东海县| 武陟县| 黔西| 石棉县| 台江县| 繁峙县| 泉州市| 铜梁县| 太湖县| 广水市| 合江县| 花莲市| 毕节市| 靖安县| 许昌市| 瓮安县| 衡阳市| 逊克县|