女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

軟件與硬件平臺

FPGA之家 ? 來源:FPGA之家 ? 2023-05-09 10:08 ? 次閱讀

一、軟件與硬件平臺

軟件平臺:

操作系統(tǒng):Windows 7 64-bit

開發(fā)套件:ISE14.7

硬件平臺:

FPGA型號:XC6SLX45-CSG324

QSPI Flash型號:W25Q128BV

二、背景介紹

在FPGA開發(fā)過程中,如果我們把bit文件下載到FPGA中,那么當FPGA掉電以后,bit文件就丟失,再次上電的時候,代碼就不會運行了。如果想掉電以后,代碼還可以運行,那么必須把編譯好的文件下載到外部的QSPI Flash中。當文件下載到外部的QSPI Flash中以后,由于QSPI Flash是一種非易失性存儲器,掉電以后里面的數(shù)據(jù)并不會丟失,待重新上電以后,F(xiàn)PGA會自動讀取QSPI Flash中的數(shù)據(jù)把代碼加載到FPGA內(nèi)部的RAM中運行。

由于bit不能直接下載到QSPI Flash中,所以必須先把bit文件轉化為.mcs文件或者.bin文件,然后才能下載到QSPI Flash中。

本文主要教大家如何把bit文件轉化為.bin文件和.mcs文件,然后下載到外部的QSPI Flash中。同時為了加快上電以后FPGA加載QSPI Flash中mcs文件的速度,我們可以把bit文件配置為4線模式(前提是你的硬件必須支持四線模式),并修改加載的時鐘頻率,從而大大加快FPGA的啟動速度。

三、目標任務

1、把編譯好的bit文件轉化為.bin文件

2、把編譯好的bit文件轉化為.mcs文件

3、把.bin文件或者.mcs文件燒錄到外部的QSPI Flash中

4、修改.bit文件的模式以及支持的時鐘頻率

四、待測代碼

3a2fb144-ee09-11ed-90ce-dac502259ad0.jpg

module led_top
(
    input           I_clk       ,
    input           I_rst_n     ,
    output  [3:0]   O_led_out
);

reg  [31:0]  R_cnt_ls      ;
wire         W_clk_ls      ;
reg          R_clk_ls_reg  ;
reg  [3:0]   R_led_out_reg ;

//////////////////////////////////////////////////////////////////
// 功能:產(chǎn)生1s的時鐘
//////////////////////////////////////////////////////////////////
always @(posedge I_clk or negedge I_rst_n)
begin
    if(!I_rst_n)
        begin
            R_cnt_ls        <= 32'd0 ;
            R_clk_ls_reg    <= 1'b1  ;
        end 
    else if(R_cnt_ls == 32'd24_999_999)
        begin
            R_cnt_ls        <= 32'd0          ;
            R_clk_ls_reg    <= ~R_clk_ls_reg  ;
        end
    else
        R_cnt_ls <= R_cnt_ls + 1'b1 ;
end

assign W_clk_ls = R_clk_ls_reg ;

//////////////////////////////////////////////////////////////////
// 功能:對輸出寄存器進行移位產(chǎn)生流水效果
//////////////////////////////////////////////////////////////////
always @(posedge W_clk_ls or negedge I_rst_n)
begin
    if(!I_rst_n)
        R_led_out_reg <= 4'b0001 ;
    else if(R_led_out_reg == 4'b1000)
        R_led_out_reg <= 4'b0001 ;
    else    
        R_led_out_reg <= R_led_out_reg << 1 ;
end

assign O_led_out = ~R_led_out_reg ;

endmodule

3a2fb144-ee09-11ed-90ce-dac502259ad0.jpg

寫好待測代碼,并添加物理約束文件綁定好管腳,我的開發(fā)板上的約束文件如下

3a2fb144-ee09-11ed-90ce-dac502259ad0.jpg

NET I_clk LOC = V10 | TNM_NET = sys_clk_pin | IOSTANDARD = "LVCMOS33";
TIMESPEC TS_sys_clk_pin = PERIOD sys_clk_pin 50000 kHz;

NET I_rst_n           LOC = N4 | IOSTANDARD = "LVCMOS15"; ## SW2 pushbutton

NET O_led_out<0>    LOC = V5 | IOSTANDARD = "LVCMOS33";       ## LED1

NET O_led_out<1>    LOC = R3 | IOSTANDARD = "LVCMOS33";       ## LED2

NET O_led_out<2>    LOC = T3 | IOSTANDARD = "LVCMOS33";       ## LED3

NET O_led_out<3>    LOC = T4 | IOSTANDARD = "LVCMOS33";       ## LED4

3a2fb144-ee09-11ed-90ce-dac502259ad0.jpg

五、任務

一、把.bit文件轉化為.bin文件。

1、編寫好代碼和約束文件,雙擊Generate Programming File成bit

3a7c835c-ee09-11ed-90ce-dac502259ad0.png

2、如果上一步你沒做任何設置的話你的工程目錄下只會產(chǎn)生一個bit文件,如果需要產(chǎn)生bin文件的話,選中Generate Programming File,右鍵選擇Process Properties...

3a99284a-ee09-11ed-90ce-dac502259ad0.png

3、在彈出的窗口中單擊General Options,并勾選-g Binary選項,并點擊最下面的OK

3ab984f0-ee09-11ed-90ce-dac502259ad0.png

4、Generate Programming File前面變成了“問號”圖標

3ae1f0d4-ee09-11ed-90ce-dac502259ad0.png

5、重新雙擊Generate Programming File,完畢以后工程目錄就生成了.bin文件

3afa809a-ee09-11ed-90ce-dac502259ad0.jpg

在ISE不支持bin文件下載到QSPI Flash,但是Vivado支持,后續(xù)會有Vivado調(diào)試教程以及燒錄教程。

二、把.bit文件轉化為.mcs文件。

1、編寫好代碼和約束文件,雙擊Generate Programming File成.bit文件

3a7c835c-ee09-11ed-90ce-dac502259ad0.png

2、雙擊Configure Target Device

3b2dce32-ee09-11ed-90ce-dac502259ad0.png

3、在彈出的窗口中點擊OK

3b4dea8c-ee09-11ed-90ce-dac502259ad0.png

4、在彈出的ISE iMPACT中雙擊Create PROM File(PROM File Formatter)

3b69b442-ee09-11ed-90ce-dac502259ad0.png

5、在彈出的PROM File Formatter窗口中選擇Configure Signal FPGA,并點擊右邊綠色的箭頭進入Step 2

3b828f3a-ee09-11ed-90ce-dac502259ad0.png

6、然后選擇Storage Device(bits)為外部QSPI Flash的容量,我的QSPI Flash型號是W25Q128BV,容量為128Mbits,所以我選擇128M。接著點擊的Add Storage Device,然后點擊綠色的箭頭進入Step 3

3bafa5c4-ee09-11ed-90ce-dac502259ad0.jpg

7、點擊上圖中的Add Storage Device,然后點擊下圖的箭頭進入Step3

3be28bec-ee09-11ed-90ce-dac502259ad0.jpg

8、設置Output File Name為.mcs文件的名字,我設置為和.bit文件的名字相同(這一項可以隨便設置)。設置Output File Location為.bit文件所在的目錄(這一項也可以隨便設置),F(xiàn)ile Format設置為MCS。

3c05a30c-ee09-11ed-90ce-dac502259ad0.jpg

9、點擊上圖中最下面的OK,彈出以下窗口

3c225e2a-ee09-11ed-90ce-dac502259ad0.jpg

10、在上圖中直接點擊OK,在彈出的新窗口中選擇要轉化的.bit文件并點擊右下角的“打開”

3c5104b4-ee09-11ed-90ce-dac502259ad0.jpg

11、在彈出的新窗口中選擇NO

3c6e2aa8-ee09-11ed-90ce-dac502259ad0.jpg

12、在彈出的新窗口中選擇OK

3c8ae6d4-ee09-11ed-90ce-dac502259ad0.jpg

13、雙擊左側的Generate File...,生成.mcs文件

3ca3945e-ee09-11ed-90ce-dac502259ad0.jpg

14、生成完畢以后會出現(xiàn)Generate Succeeded字樣

3cc21550-ee09-11ed-90ce-dac502259ad0.jpg

15、工程目錄下出現(xiàn)了.mcs文件

3cedf6c0-ee09-11ed-90ce-dac502259ad0.jpg

16、雙擊Boundary Scan

3d18ff50-ee09-11ed-90ce-dac502259ad0.png

17、點擊Initialize Chain圖標(這一步一定要保證開發(fā)板處于上電狀態(tài)并且Jtag線連接正常)

3d33e860-ee09-11ed-90ce-dac502259ad0.jpg

18、在彈出的窗口中選擇NO(因為我們馬上要把.mcs燒錄到Flash中,而不是下載.bit文件,所以選擇NO)

3d5b49e6-ee09-11ed-90ce-dac502259ad0.jpg

19、在新彈出的窗口中選擇OK

3d85368e-ee09-11ed-90ce-dac502259ad0.jpg

20、雙擊FPGA上面的那個虛線框包裹起來的圖標

3db26a0a-ee09-11ed-90ce-dac502259ad0.png

21、在彈出的文件選擇窗口中選擇之前生成好的.mcs文件,并點擊打開

3dcfbe52-ee09-11ed-90ce-dac502259ad0.jpg

22、接著在彈出的新窗口中選擇芯片型號為W25Q128BV,Data Width為1,點擊OK

3df1bb06-ee09-11ed-90ce-dac502259ad0.png

23、選中FPGA上面的FLASH圖標,右鍵在彈出的菜單中單擊Program

3e1cf848-ee09-11ed-90ce-dac502259ad0.jpg

24、在彈出的新窗口中選擇OK

3e46d514-ee09-11ed-90ce-dac502259ad0.jpg

25、接著就進入了燒錄QSPI Flash的過程,這個過程與下載.bit相比要慢的多,需要耐心等待

3e70edae-ee09-11ed-90ce-dac502259ad0.jpg

26、下載成功以后出現(xiàn)Successful字樣

3ea21d3e-ee09-11ed-90ce-dac502259ad0.jpg

27、接著關掉開發(fā)板的電源然后再打開,等一小段時間以后,程序就開始自動運行了。

三、修改bit文件的配置,加快FPGA加載速度

可以發(fā)現(xiàn),產(chǎn)生的.mcs文件只有3.89M,但是重新上電到程序開始執(zhí)行卻花費了好幾秒的時間,如果工程十分龐大,則FPGA選型的時候勢必會選擇邏輯資源更多的FPGA,那么編譯后產(chǎn)生的.mcs文件會大的多,上電后加載的時間也會更長,所以在實際項目中,往往會修改bit文件的配置參數(shù)來加快上電以后代碼的加載速度。具體步驟如下

3ecc7598-ee09-11ed-90ce-dac502259ad0.jpg

1、編寫好代碼和約束文件,雙擊Generate Programming File成bit

3a7c835c-ee09-11ed-90ce-dac502259ad0.png

2、選中Generate Programming File,右鍵選擇Process Properties...

3a99284a-ee09-11ed-90ce-dac502259ad0.png

3、在彈出的窗口中單擊Configuration Options,并設置Configuration Rate為26MHz,設置Set SPI Configuration Bus Width參數(shù)為4。并點擊最下面的OK

3f242a9a-ee09-11ed-90ce-dac502259ad0.png

注意:Configuration Rate這個參數(shù)的值不能超過你使用的QSPI Flash芯片手冊中指定的最高的讀頻率,大多數(shù)QSPI Flash的芯片手冊會在第一頁說它們支持的頻率高達100M甚至更高,但是其實這個頻率并不是指芯片支持的讀數(shù)據(jù)頻率,F(xiàn)lash芯片支持的讀數(shù)據(jù)頻率一定要在芯片手冊電氣特性(Electrical Characteristics)那一節(jié)找。如果你選擇的時鐘頻率超過QSPI Flash支持的最高讀取頻率太多,出現(xiàn)的現(xiàn)象就是FPGA根本無法加載QSPI Flash中的鏡像文件導致FPGA啟動失敗;如果你選擇的時鐘頻率超過QSPI Flash支持的最高讀取頻率一點點的話,出現(xiàn)的現(xiàn)象就是FPGA加載QSPI Flash中的鏡像文件大概率失敗。所以一般選擇的Configuration Rate參數(shù)值要稍微低于QSPI Flash支持的最高讀頻率。

舉三個例子:

Micron公司的N25Q064A支持的最高頻率為108MHz,但支持的讀命令頻率為54MHz,對于這個器件來說Configuration Rate不能選的高于54MHz

Macronix公司的MX25L25645G支持的最高頻率為133MHz,但支持的讀命令頻率為50MHz,對于這個器件來說Configuration Rate不能選的高于50MHz

本文使用的Winbond公司的W25Q128BV支持的最高頻率為104MHz,但支持的讀命令頻率為33MHz,對于這個器件來說Configuration Rate不能選的高于33MHz,我們選擇為26MHz

另外要說明的是Configuration Rate這個值對于不同的FPGA來說,值的范圍不同。我當前使用的XC6SLX45支持的最高頻率僅為26MHz,而XC7K325T支持的最高頻率高達66MHz。

還有一點要注意的是,Set SPI Configuration Bus Width可以設置為4的前提是你的開發(fā)板上QSPI Flash和FPGA之間四根數(shù)據(jù)線都是連通的,并且PCB上建議做好四根數(shù)據(jù)線的蛇形等長。

4、接著重新生成.bit文件,然后把.bit文件按照上文的方法生成.mcs文件下載到QSPI Flash中,這個過程不在重復。

5、燒錄完畢以后,重新給開發(fā)板斷電然后再上電,你會發(fā)現(xiàn)上電的瞬間,程序就開始運行了,幾乎感覺不到等待的時間。由于XC6SLX45這個器件的資源相較于7系列FPGA來說邏輯資源并不算多,生成的mcs文件并不算大,所以才這么快,而對于高端一點的FPGA來說,F(xiàn)PGA編譯后的鏡像文件能達到十幾兆甚至更大,比如XC7K325t生成的鏡像文件約為10M左右,所以即使你這么設置了還是有一點延時的,不過比單線肯定是要快的多注意,生成的FPGA鏡像文件大小與FPGA型號有關,與邏輯代碼的多少無關,在同一塊FPGA中,你寫一個流水燈的代碼和調(diào)用了幾個FFT,F(xiàn)IR數(shù)字濾波器IP核的信號處理代碼生成的FPGA鏡像文件的大小是相同的。

至此,整個實驗過程全部完畢。

六、總結

1、在生成bit文件的設置中勾選-g Binary選項可以生成bin文件

2、在生成mcs文件之間提前對bit進行速率與位寬的設置可以提高FPGA從Flash加載程序的速度

3、設置Configuration Rate參數(shù)之前一定要閱讀QPSI Flash芯片手冊的電氣特性(Electrical Characteristics)一節(jié),找到支持的最高頻率。

審核編輯 :李倩


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • FPGA
    +關注

    關注

    1643

    文章

    21950

    瀏覽量

    613753
  • 代碼
    +關注

    關注

    30

    文章

    4886

    瀏覽量

    70217
  • 編譯
    +關注

    關注

    0

    文章

    676

    瀏覽量

    33724

原文標題:一、軟件與硬件平臺

文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    單片機無法控制單總線器件,懷疑器件問題?

    的參考, Maxim 公司提供了通用的1-Wire讀寫軟件,可從Maxim官方網(wǎng)站下載,但這個軟件是需要硬件支持的。當然,Maxim有這樣的硬件,采購周期長并且價格較貴。我們開發(fā)了兼容
    發(fā)表于 08-26 17:52

    第一個arm9的應用程序helloworld需要掌握哪些內(nèi)容?

    arm9的第一個應用程序 helloworld 的軟件 硬件平臺都有哪些?比如軟件開發(fā)環(huán)境需要搭建一個什么平臺 等等 ,路過的朋友不妨看看,
    發(fā)表于 11-12 14:41

    嵌入式開發(fā)中的宿主機和目標機有哪些不同之處

    在嵌入式開發(fā)過程中,有宿主機和目標機的角色之分:宿主機是執(zhí)行編譯、鏈接嵌入式軟件的計算機;目標機是運行嵌入式軟件硬件平臺。通常我們用的PC機就是宿主機,而我們用的開發(fā)板則是目標機。.
    發(fā)表于 12-16 07:44

    如何安裝arm-linux-gcc

    安裝配置主機目標板開發(fā)模式宿主機執(zhí)行編譯、鏈接嵌入式軟件的計算機目標機運行嵌入式軟件硬件平臺“本地”編譯器用來生成在與編譯器本身所在的計算機和操作系統(tǒng)(
    發(fā)表于 12-24 06:45

    建立一個開放的軟件硬件平臺

    描述該項目旨在建立一個開放的軟件硬件平臺(分別為 Hivemind 和 Hiveboard),允許實施機器人群,從異構機器人和 Android 智能手機進行同步定位和映射 (SLAM)[1
    發(fā)表于 07-25 06:26

    Openwsn開源無線協(xié)議在PLUS-F5270開發(fā)板上的移植步驟簡析

    的通信方式進行標準化。OpenWSN項目的目標是在各種軟件硬件平臺上提供基于物聯(lián)網(wǎng)標準的完整協(xié)議棧的開源實現(xiàn),這種實現(xiàn)可以幫助學術界和工業(yè)界驗證這些標準對物聯(lián)網(wǎng)的適用性,使這些網(wǎng)絡真正無處不在
    發(fā)表于 08-22 16:03

    迷你尺寸開源硬件開發(fā)板Banana Pi BPI-M7 采用瑞芯微RK3588芯片設計

    )是由廣東比派科技有限公司主導的一個開源硬件項目,專注在ARM,MCU系列開源硬件開發(fā)板,提供全開放的軟件硬件平臺,打造基礎技術開發(fā)
    發(fā)表于 11-18 13:49

    Banana Pi BPI-M7 迷你尺寸開源硬件開發(fā)板采用瑞芯微RK3588芯片設計

    ) 是由廣東比派科技有限公司主導的一個開源硬件項目,專注在ARM,MCU系列開源硬件開發(fā)板,提供全開放的軟件硬件平臺,打造基礎技術開發(fā)
    發(fā)表于 11-18 13:51

    打翻身仗,AMD在VR方面推眾多項目建立VR供應鏈

    雖然老對手Nvidia在個人VR領域如火如荼,AMD卻也在VR業(yè)務,包括GPU認證方面推出了一些新的VR項目。AMD通過加強其軟件/硬件平臺并且建立VR供應鏈,希望能夠擴大其VR市場的存在,用新的北極星架構顯卡重奪VR市場份額。
    發(fā)表于 10-26 15:10 ?604次閱讀

    基于RFID技術的物聯(lián)網(wǎng)車載終端如何設計

    文中提出了一種基于RFID技術的物聯(lián)網(wǎng)車載終端系統(tǒng),選擇嵌入式Linux操作系統(tǒng)和S3C6410處理器作為軟件硬件平臺,成功的開發(fā)出樣機。
    發(fā)表于 11-15 15:07 ?917次閱讀
    基于RFID技術的物聯(lián)網(wǎng)車載終端如何設計

    基于Moxa UC系列應用的嵌入式系統(tǒng)解決方案

    隨著近年來嵌入式技術的發(fā)展,嵌入式產(chǎn)品的應用越來越廣泛,但是嵌入式產(chǎn)品開發(fā)需要很大投入,要搭建各種軟件硬件平臺,才能開發(fā)出合適的嵌入式產(chǎn)品。嵌入式軟硬件
    的頭像 發(fā)表于 09-29 09:47 ?2585次閱讀

    USB3.0開發(fā)之bulkLoop上位機程序

    USB3.0開發(fā)之bulkLoop上位機程序 一、開發(fā)測試軟件 硬件平臺:Cypress公司的CYUSB3014 軟件平臺:Visual S
    發(fā)表于 05-29 15:16 ?15次下載
    USB3.0開發(fā)之bulkLoop上位機程序

    什么是機器視覺計算機?

    引導機器人、車輛中的應用。隨著視覺技術的進步,機器的功能越來越強大,以滿足工業(yè)的戰(zhàn)略目標。所有機器視覺計算機都由兩個關鍵組件組成:硬件平臺和視覺軟件硬件
    的頭像 發(fā)表于 12-26 17:51 ?1188次閱讀
    什么是機器視覺計算機?

    全志T113-S3板載Linux系統(tǒng)信息查詢

    包含多個內(nèi)置命令,可幫助我們熟悉正在使用的軟件硬件平臺。為了全面了解如何查看Linux系統(tǒng)的各種信息,下面的內(nèi)容將詳細介紹各個方面的查詢命令和方法。產(chǎn)品簡介眺望電子E
    的頭像 發(fā)表于 11-22 01:07 ?925次閱讀
    全志T113-S3板載Linux系統(tǒng)信息查詢

    IoT物聯(lián)網(wǎng)平臺如何解決工廠數(shù)字化問題?

    IoT物聯(lián)網(wǎng)平臺 是集成了設備連接、數(shù)據(jù)收集、數(shù)據(jù)存儲、數(shù)據(jù)處理、分析和可視化等功能的軟件硬件平臺。這些平臺通過支持多種通信協(xié)議(如MQT
    的頭像 發(fā)表于 01-06 17:45 ?393次閱讀