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

          新聞中心

          Basys3下載/配置指南

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

          概述

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

          Basys 3 支持以下三種方式配置/下載程序:

          . JTAG

          . Quad SPI Flash

          . USB Flash Drive

          此教程旨在告訴初學(xué)者如何開(kāi)始創(chuàng)建工程項(xiàng)目以及分別通過(guò)以上三種方法下載工程項(xiàng)目到Basys3 FPGA開(kāi)發(fā)板上。

          前期準(zhǔn)備

          硬件

          . Basys3 FPGA開(kāi)發(fā)板

          . Micro-USB線(xiàn)

          軟件

          . Vivado Design Suite 2017.1

          Ø 新版或舊版Vivado均可使用,但是步驟可能有些許不同

          源文件

          . basys3_sw_demo.zip

          教程

          1. 創(chuàng)建工程項(xiàng)目

          首先,我們要?jiǎng)?chuàng)建一個(gè)工程項(xiàng)目

          1.1 打開(kāi)Vivado,在初始界面單擊‘Create Project’。

          1.2 在新彈出的窗口中單擊‘Next’。

          1.3 輸入創(chuàng)建的項(xiàng)目名稱(chēng),選擇項(xiàng)目的保存路徑,然后單擊‘Next’。

          1.4 我們將從底層開(kāi)始完整的創(chuàng)建一個(gè)項(xiàng)目,所以這邊我們選擇創(chuàng)建一個(gè)‘RTL Project’,然后單擊‘Next’。

          1.5 在這個(gè)窗口中,我們可以添加任何項(xiàng)目中需要用到的源文件或者文件夾,創(chuàng)建新的空文件,選擇目標(biāo)編程語(yǔ)言和模擬器語(yǔ)言。在這個(gè)教程中,我們只需要添加壓縮包中已經(jīng)編輯好的源文件即可。單擊窗口左上角的26.png選擇‘Add Files…’或者直接單擊窗口中間的‘Add Files’,找到解壓文件夾中的‘sw_led.v’文件,單擊‘OK’。需要勾選‘Copy sources into project’, 這樣Vivado會(huì)復(fù)制一份源文件到創(chuàng)建的工程項(xiàng)目文件夾中。否則,Vivado不會(huì)復(fù)制源文件到項(xiàng)目文件夾中,而是直接讀取/修改源文件。單擊‘Next’。

          1.6 在這個(gè)窗口中可以添加約束文件(.xdc),在這個(gè)樣例中仿照上一步找到解壓文件夾中‘Basys3_sw_Demo.xdc’文件添加即可。單擊‘Next’。

          >

          1.7 在這個(gè)窗口中,我們要選擇Basys3開(kāi)發(fā)板。單擊‘Board’,搜索‘Basys3’,選中Basys3開(kāi)發(fā)板,單擊‘Next’。

          1.8 這個(gè)窗口是創(chuàng)建新的工程項(xiàng)目的總結(jié)信息,單擊‘Finish’。

          2. 創(chuàng)建下載文件(Program File)

          Basys3 FPGA可以使用三種方式將文件下載到Basys3 FPGA開(kāi)發(fā)板上,有兩種支持的文件類(lèi)型,.bit文件和.bin文件。.bit文件可以通過(guò)JTAG下載線(xiàn)或者標(biāo)準(zhǔn)USB存儲(chǔ)設(shè)備下載到Basys3 FPGA。.bin文件將在每次通電時(shí)自動(dòng)通過(guò)Quad SPI下載到Basys3 FPGA。接下來(lái)將會(huì)介紹配置Basys3的準(zhǔn)備步驟:

          2.1 Vivado默認(rèn)只會(huì)生成.bit文件,之后將介紹通過(guò)Quad SPI配置Basys3 FPGA,所以需要通過(guò)如下步驟生成.bin文件。

          在‘Project Manager’中單擊‘Settings’

          在‘Project Settings’中單擊‘Bitstream’,勾選‘-bin_file’選項(xiàng),單擊‘OK’。

          2.2 接下來(lái),我們需要對(duì)工程項(xiàng)目進(jìn)行綜合,單擊主界面左側(cè)‘Flow Navigator’中的‘Run Synthesis’。使用默認(rèn)路徑保存綜合和實(shí)現(xiàn)文件,單擊彈出窗口中的‘OK’。

          2.3 綜合完成后會(huì)彈出窗口,選中‘Open Synthesized Design’,單擊‘OK’查看綜合結(jié)果。

          2.4 我們可以在窗口右側(cè)看到工程項(xiàng)目在Basys3 FPGA上的綜合結(jié)果。

          2.5 為了提高.bin文件的下載速度,需要設(shè)置Vivado使其允許對(duì)比特流進(jìn)行壓縮。單擊主工具欄中的‘Tools’>單擊‘Edit Device Properties…’。在彈出窗口的General一項(xiàng)中,將‘Enable Bitstream Compression’設(shè)置為‘TRUE’。

          2.6 在Configuration一項(xiàng)中將‘Configuration Rate (MHz)’設(shè)置為33 MHz。

          2.7 在Configuration Modes一項(xiàng)中勾選‘Master SPI x4’。單擊‘OK’。

          2.8 對(duì)之前的設(shè)置進(jìn)行保存(Ctrl+S)。Vivado會(huì)提示需要更新約束文件,單擊‘OK’即可。在‘Flow Navigator’中展開(kāi)‘Program and Debug’,單擊‘Generate Bitstream’。

          2.9 Vivado會(huì)提示還沒(méi)有對(duì)項(xiàng)目進(jìn)行仿真實(shí)現(xiàn)(Implementation),如下圖單擊‘Yes’,Vivado會(huì)先進(jìn)行實(shí)現(xiàn),然后生成比特流文件(.bit和.bin),將文件保存在默認(rèn)路徑下,單擊‘OK’。

          2.10 Vivado會(huì)開(kāi)始生成.bit文件和.bin文件。完成后,會(huì)彈出如下窗口,我們可以選擇‘Open Implemented Design’查看實(shí)現(xiàn)的結(jié)果,或者選擇‘View Reports’查看完整的設(shè)計(jì)報(bào)告。

          至此,我們已經(jīng)完成了將工程項(xiàng)目下載到Basys3 FPGA開(kāi)發(fā)板的準(zhǔn)備工作。接下來(lái),將分別介紹通過(guò)三種方式下載/配置Basys3 FPGA。

          3. 通過(guò)JTAG下載/配置Basys3

          JTAG是通過(guò)micro-USB端口和PC進(jìn)行通信的,主要用于下載,調(diào)試和端口探測(cè)。這使得Basys3 不僅可以通過(guò)micro-USB端口供電,而且可以通過(guò)micro-USB端口進(jìn)行下載和調(diào)試。

          3.1 首先,將模式跳線(xiàn)JP1設(shè)置成JTAG模式,將Basys3通過(guò)micro-USB連接到PC的USB接口,打開(kāi)電源。在‘Flow Navigator’中,單擊‘Open Target’,選擇‘Auto Connect’。在Hardware窗口中,我們可以看到Basys3 FPGA已經(jīng)完成了和PC的連接。

          3.2 單擊頂部綠色條中的‘Program device’或者‘Open Hardware Manager’中的相同選項(xiàng)。選擇之前生成.bit文件路徑,單擊‘Program’。

          當(dāng)Basys3 FPGA開(kāi)發(fā)板右上角的DONE LED燈亮起時(shí)表示下載完成。在這個(gè)設(shè)計(jì)樣例中我們可以通過(guò)使用Basys3下方的撥碼開(kāi)關(guān)來(lái)控制對(duì)應(yīng)的LED燈。

          4. 通過(guò)USB閃存設(shè)備下載/配置Basys3

          需要注意的是,通過(guò)USB設(shè)備下載/配置Basys3只支持FAT32格式。而且USB設(shè)備必須是空白的,不能有其他文件或文件夾。我們可以通過(guò)以下步驟使用USB設(shè)備下載.bit文件到Basys3:

          4.1 將模式跳線(xiàn)JP1設(shè)置成USB模式。

          4.2 將U盤(pán)格式化成FAT32文件系統(tǒng)。

          4.3 復(fù)制.bit文件(路徑 C:/Vivado/project_1/project_1.runs/impl_1/sw_led.bit)

          4.4 粘貼.bit文件到USB設(shè)備的根目錄。

          (注意:USB設(shè)備的根目錄中只能有此次需要下載.bit文件)

          4.5 從PC安全移除USB設(shè)備并插入Basys3的USB接口。

          4.6 通過(guò)micro-USB端口連接PC為Basys3提供電源。

          4.7 打開(kāi)Basys3電源,Basys3將立即從USB設(shè)備中下載.bit文件。

          4.8 DONE LED燈亮起表示下載完成,可以進(jìn)行調(diào)試。

          5. 通過(guò)Quad SPI閃存下載/配置Basys3

          Quad SPI閃存是一種非易失性的存儲(chǔ)介質(zhì),Basys3 FPGA芯片在每次啟動(dòng)(上電)時(shí)都會(huì)讀取里面的內(nèi)容。這就意味著B(niǎo)asys3只要通電就會(huì)自己從Quad SPI閃存中下載/配置,配置的速度非???,適用于已經(jīng)完成的設(shè)計(jì)項(xiàng)目的最終展示或演示使用。Quad SPI閃存支持重復(fù)燒寫(xiě),下一次燒寫(xiě)會(huì)擦除上一次燒寫(xiě)的內(nèi)容。通過(guò)Quad SPI閃存下載/配置Basys3僅支持.bin文件或.mcs文件,具體步驟如下:

          5.1 將模式跳線(xiàn)JP1設(shè)置成QSPI模式。

          5.2 在Hardware Manager窗口中的Hardware下右鍵已經(jīng)連接的設(shè)備(xc7a35t_0),選擇‘Add Configuration Memory Device…’

          5.3 在彈出的窗口中搜索‘spansion’,選擇32位的設(shè)備(如下圖所示)。單擊‘OK’。彈出提示窗是否需要現(xiàn)在下載,單擊‘OK’。

          5.4 在Configuration file一欄中添加.bin文件,單擊‘OK’。

          Vivado會(huì)開(kāi)始擦除上一次燒寫(xiě)在Quad SPI閃存中的配置文件,然后將新的配置文件(.bin文件)燒寫(xiě)到閃存中,之后Basys3開(kāi)發(fā)板只要通電就會(huì)自動(dòng)從閃存中配置開(kāi)發(fā)板。



          關(guān)鍵詞:

          評(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); })();