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

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 如何在芯片的PL上構(gòu)建軟核處理器?

          如何在芯片的PL上構(gòu)建軟核處理器?

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

          到目前為止,我們已經(jīng)在之前的文章中聊過(guò)Zynq SOC內(nèi)部的 PS和PL,以及在Zynq SoC PS部分的ARM Cortex-A9處理器上運(yùn)行的操作系統(tǒng)。但是有一個(gè)領(lǐng)域我們還沒(méi)有去探索過(guò),那就是在芯片的PL上構(gòu)建軟核處理器。PicoBlaze在軟核中是一個(gè)比較常見(jiàn)的軟核。它是一個(gè)8位處理器,由于它的高精確性(每條指令需要兩個(gè)周期),很多基于可編程器件的系統(tǒng)設(shè)計(jì)使用PicoBlaze 軟核處理器來(lái)代替狀態(tài)機(jī)和其他控制結(jié)構(gòu)。你甚至可以使用PicoBlaze 處理器通過(guò)I2C和RS232總線實(shí)現(xiàn)串行通信,使設(shè)計(jì)更加精簡(jiǎn)并且節(jié)省設(shè)計(jì)時(shí)間。

          本文引用地址:http://www.ex-cimer.com/article/201710/365723.htm

          我們應(yīng)該做的第一件事就是從PicoBlaze專(zhuān)區(qū)下載最新版本的PicoBlaze處理器。這個(gè)最新的PicoBlaze處理器支持UltraScale 和7系列所有可編程器件(包括Zynq SOC)。

          我們的目的是讓其作為一個(gè)標(biāo)準(zhǔn)的IP模塊,我們可以打包并且添加到我們的VIVADO模塊圖中。然而,在這之前,我們第一步是得了解下隨PicoBlaze處理器會(huì)帶來(lái)什么東東,以及它的開(kāi)發(fā)流程。在我們的下載目錄中我們將看到以下文件:

          1、KCPSM6.Vhd:這是PicoBlaze 處理器的源代碼文件。

          2、KCPSM6.exe:這是一個(gè)匯編程序用于生成機(jī)器代碼和文件所需的內(nèi)存。

          3、ROM_Form.vhd: 這是被匯編可執(zhí)行文件用來(lái)生成VHDL文件,該文件包括了我們建立的目標(biāo)程序。

          4、KCPSM6_design_template.vhd: 這是一個(gè)PicoBlaze 處理器的例化模板文件。

          5、All_kcpsm6_syntax.psm:該文件定義了所有的匯編指令和語(yǔ)法。

          在PL上實(shí)現(xiàn)PicoBlaze 的開(kāi)發(fā)流程是:

          1、編寫(xiě)程序可執(zhí)行PicoBlaze程序。在這個(gè)例子中,我們將實(shí)現(xiàn)一個(gè)簡(jiǎn)單的流水燈。我們可以使用all_KCPSM6_syntax.psm 文件作為一個(gè)快速參考,里面有我們要用到的PicoBlaze 匯編指令,同時(shí)在下載的文件中也有大量的用戶指南(PDF)可以讓我們快速上手。

          2、寫(xiě)完這個(gè)簡(jiǎn)單的程序,我們就用KCPSM6.exe匯編器進(jìn)行編譯,它將建立一個(gè)用我們對(duì)應(yīng)的程序名命名的RAM文件。這個(gè)文件內(nèi)包含一些將被PicoBlaze 控制器執(zhí)行的程序,你必須將這個(gè)文件鏈接到PicoBlaze 處理器來(lái)建立功能系統(tǒng),

          3、修改RAM文件大小,如下圖所示,根據(jù)芯片系列將6S改成7S,并且選擇內(nèi)存大小為2K:

          4、在同一個(gè)文件夾內(nèi),創(chuàng)建一個(gè)頂層文件將處理器和RAM 結(jié)合PicoBlaze所需的其他代碼連接起來(lái) 。比如說(shuō),當(dāng)寫(xiě)成如下時(shí)就是聲明它作為輸出端口:

          5、使用VIVADO的工具—>“建立和打包IP”選項(xiàng)來(lái)新建一個(gè)IP,將以上三個(gè)文件打包成一個(gè)IP。

          6、在打包這個(gè)程序之后,我們檢查確認(rèn)下是否被包含進(jìn)來(lái)成為一個(gè)倉(cāng)庫(kù),(如果沒(méi)有,我將手工添加)并且將這個(gè)IP模塊添加到模塊圖。

          7. 將PicoBlaze 模塊的時(shí)鐘鏈接到FPGA時(shí)鐘(設(shè)置為40MHZ),并且定義三個(gè)輸出接口連接到 的LED對(duì)應(yīng)的IO上。

          8. 編譯設(shè)計(jì)并且導(dǎo)出到SDK

          當(dāng)我們編譯完這個(gè)設(shè)計(jì),如果我們有一個(gè)JTAG連接器,我們將位流文件燒錄到FPGA并且看看LED是否有閃爍,或者我們可以導(dǎo)出到SDK并且建立一個(gè)Boot文件,在上電之后通過(guò)Boot文件來(lái)運(yùn)行這個(gè)程序。

          我將在下次深入探討我們剛剛建立的設(shè)計(jì)。同時(shí),我將這個(gè)Demo用到的文件也附加到這個(gè)博客中。我提供了PSM文件和頂層文件。如果你下載了PicoBlaze軟核,你可以使用PicoBlaze 匯編器來(lái)生成一個(gè)Test.vhd內(nèi)存文件。



          關(guān)鍵詞: MicroZed 賽靈思

          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(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); })();