在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

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

Flash讀寫控制方案 Altera似乎“沒有”開放配置Flash的Pin的控制

FPGA之家 ? 來源:陳年麗 ? 2019-07-27 09:29 ? 次閱讀

Flash讀寫控制方案

與Xilinx相比,Intel(Altera)提供了讀寫控制器方案。而且,同時提供了兩個方案。

首先,Altera似乎沒有開放配置Flash的Pin的控制。如果沒有找到辦法直接控制這些Pin,也就沒有辦法自行設(shè)計Flash讀寫控制器。

自行設(shè)計Flash讀寫控制器的優(yōu)點(diǎn)在于可控性很高,缺點(diǎn)在于需要花費(fèi)時間設(shè)計并進(jìn)行穩(wěn)定性測試。相應(yīng)的,使用提供的Flash讀寫控制器IP,優(yōu)點(diǎn)是免去設(shè)計和測試的成本,但缺點(diǎn)在于兼容性。

由于提供的IP可選項(xiàng)很少,可以使用的操作命令也有限,所以很難保證這個IP能兼容哪些Flash。即使能兼容,也可能只能使用基礎(chǔ)的操作命令,而部分高級操作比如快速擦寫等,不保證能兼容。

方案一:JTAG燒錄Flash

在專欄文章《FPGA遠(yuǎn)程更新設(shè)計的需求分析》中,分析了EDA工具通過JTAG燒錄Flash的操作。

1.上位機(jī)主動發(fā)起配置,F(xiàn)PGA被動接收數(shù)據(jù)進(jìn)行重配置,此時的配置模式是上文提到的基于JTAG的被動配置。此操作的結(jié)果是將FPGA配置為一個Flash的讀寫器。2.配置完成后,上位機(jī)開始發(fā)送/接收Flash的數(shù)據(jù),數(shù)據(jù)通道為JTAG。FPGA通過JTAG接收到數(shù)據(jù)之后,根據(jù)需求發(fā)起對Flash的讀寫操作,將需要更新的數(shù)據(jù)寫入Flash,完成更新。此過程是更新Flash的過程,燒錄過程中Flash只收到FPGA的控制。3.Flash更新完畢后,在合適的時候讓FPGA進(jìn)行重新配置(例如重新上下電),F(xiàn)PGA會開始主動配置過程,從Flash中讀取配置數(shù)據(jù)完成加載。

配置過程是將原廠提供的JTAG-Flash讀寫控制器加載到FPGA中,在通過JTAG和這個內(nèi)部的FPGA控制器燒錄Flash。這個JTAG-Flash讀寫控制器本身也是一個設(shè)計。Xilinx并沒有將這個設(shè)計獨(dú)立提供出來給用戶,不過Altera將這個設(shè)計以IP的方式提供給用戶使用。

上圖是串口Flash的讀寫控制器,在IP Catalog中還能找到Altera Parallel Flash Loader這個IP。這里僅以Altera Serial Flash Loader(下文簡稱ASFL)為例做簡單介紹。關(guān)于IP的具體細(xì)節(jié),請參考IP的手冊。

將這個IP集成到FPGA工程中就可以直接使用。燒錄工具為Quartus Programmer,燒錄文件為.jic文件。

在燒錄的時候,點(diǎn)選jic文件,上一行會自動勾選上,第一行也會變?yōu)镕actory default SFL image。此時即為下載內(nèi)置的鏡像,將FPGA配置為Flash讀寫控制器。如果將第一行勾選去掉,則工具會自動嘗試在FPGA當(dāng)前設(shè)計中尋找ASFL IP。如果找不到,則直接提示錯誤,不會做任何變化;如果找到ASFL IP,則利用JTAG進(jìn)行Flash的燒錄工作。這里重點(diǎn)提示,使用這個方法的時候務(wù)必取消第一行自動勾選上的Factory default SFL image。

這種用法的最大限制在于需要使用Quartus Programmer工具和JTAG。如果有條件,在環(huán)境中擁有Quartus支持的OS系統(tǒng)和JTAG Cable的硬件連接,則可以使用這個方案。由于有OS的存在,鏡像Jic文件可以通過OS來管理文件的傳輸,再通過遠(yuǎn)程訪問OS,啟動Quartus Programmer,燒錄Jic文件。

但是,對于某些環(huán)境,OS和JTAG是無法獲取的。所以還需要另一個方案來適配更多的應(yīng)用場景。

方案二:Flash讀寫控制器

方案一的IP結(jié)合了JTAG和FLASH讀寫控制器,數(shù)據(jù)通路固定是JTAG。而Altera ASMI Parallel(下文簡稱ASMI)這個IP就僅僅是個Flash讀寫控制器,可以自由的設(shè)計數(shù)據(jù)來源。

關(guān)于這個IP的使用,可以參考IP的文檔。需要進(jìn)行相關(guān)信號控制來控制IP的行為。這里對這個IP的使用不進(jìn)行詳細(xì)的描述。

這個方案的一個問題是,IP默認(rèn)只支持Intel(Alterad)的Flash,所以如果Flash是其它型號,則不能保證百分之百兼容。建議查看IP文檔,使用比較基礎(chǔ)的讀寫控制命令(通常性能差一些但兼容性好的命令);同時在更換Flash之后,進(jìn)行測試看看是否兼容。

方案一的截圖中,有一個配置參數(shù)

方案二的ASMI IP配置中,有一個配置參數(shù):

勾選這兩個參數(shù),可以讓兩個方案同時存在與一個FPGA設(shè)計中。這樣,可以更自由地選擇使用那個方案來進(jìn)行更新。由于Flash只有一個配置接口,所以兩個方案肯定是無法同時使用的。

Altera配置文件分析

方案一已經(jīng)是個完備的方案,無奈對使用環(huán)境有著較高的要求。所以方案二才是更通用的方法。不過相對方案一直接使用jic文件,方案二只是一個Flash讀寫控制器,并沒有說明將什么數(shù)據(jù)寫入Flash。所以需要找到寫入文件的數(shù)據(jù)。

Altera常見的幾個配置文件:sof/pof/jic/rbf

sof文件是最基本的文件,用這個文件作為基礎(chǔ)可以直接用Quartus Programmer進(jìn)行JTAG下載。同時也可以通過這個sof文件生成其它文件。

pof是針對altera Flash的配置文件器。需要用Quartus Programmer軟件,通過JTAG燒錄Flash。由于這個文件需要使用JTAG連接Flash,所以在很多環(huán)境下并不使用這個文件進(jìn)行配置。

jic是間接配置Flash的文件,具體使用已經(jīng)介紹過了。

rbf文件,從名稱看是二進(jìn)制文件,可能最接近寫入Flash的文件。

由于并沒有在Intel(Altera)網(wǎng)站上找到幾種配置文件的具體數(shù)據(jù)內(nèi)容和格式,所以需要手動分析文件內(nèi)容。實(shí)際上這幾種格式?jīng)]有一種可以直接寫入Flash

這里已經(jīng)得到最終的數(shù)據(jù)文件,暫時稱之為bin文件,下面直接給出各個文件無法使用的原因。文件基于Altera A10系列FPGA。

1.sof

對比最終寫入Flash的數(shù)據(jù),幾乎看不到正常的數(shù)據(jù),懷疑是存在一些Quartus工具才能識別的命令。

2.pof文件

pof文件是針對Flash的,所以里面內(nèi)容和rbf文件有大部分都是相同的。

不過差別在于pof文件前面有大量的不明數(shù)據(jù),不清楚具體作用,所以

左邊為rbf文件,右邊為pof文件

和正確的bin文件相比,pof前面的開頭部分確實(shí)也是多余的。所以rbf也比pof文件更接近于最終的bin文件。

3.rbf文件

rbf文件確實(shí)幾乎非常接近最終的文件。

左邊為bin文件,右邊為rbf文件

從文件格式中可以看到,數(shù)據(jù)可以對應(yīng)上,只是位序有點(diǎn)不同。

不過比較大的問題是,rbf文件的開頭相比bin文件,少了一些內(nèi)容。

左邊為bin文件開頭,右邊為rbf文件開頭

調(diào)整位序?qū)PGA開發(fā)來說,幾乎沒有難度。不過開頭這些數(shù)據(jù)的作用,就不太清楚了。如果有條件可以嘗試寫入rbf文件,試試FPGA能否從Flash中加載成功。本人嘗試過兩次,失敗后直接嘗試bin文件。對于rbf無法成功的原因,并沒有深究。所以失敗也有可能是操作失誤導(dǎo)致的,而rbf文件是可以這樣使用的。

4.jic

對比發(fā)現(xiàn)jic和pof文件的格式位序一樣,但開頭依然多出部分?jǐn)?shù)據(jù)。多出來的部分長度幾乎和pof文件一樣,但數(shù)據(jù)內(nèi)容由不完全相同,所以懷疑開頭部分包括了一些Quartus工具的操作命令,如果直接寫入Flash,可能會導(dǎo)致無法加載成功。

從上述分析可以看到,Quartus提供的四種配置文件,并沒有保證直接對應(yīng)Flash中的數(shù)據(jù),對比后也發(fā)現(xiàn)多少都有點(diǎn)出入。由于沒有找到對各自文件詳細(xì)的內(nèi)容說明,所以也不便于直接修改。

所以這就是使用ASMI方案的最大問題,如何獲取最終的寫入Flash的數(shù)據(jù)。

從這一點(diǎn)說,Xilinx的方案其實(shí)更直接,直接使用原始的二進(jìn)制數(shù)(bit、bin)文件,或者標(biāo)準(zhǔn)文件——MCS。

Flash標(biāo)準(zhǔn)內(nèi)容文件

Xilinx的MCS文件,后綴mcs是Xilinx獨(dú)有的,但是其內(nèi)容是標(biāo)準(zhǔn)格式。

MCS為文本文件,查看內(nèi)容,可以看到兩種內(nèi)容。第一種是相對較短的一行,第二種是相對較長的一行。

真實(shí)數(shù)據(jù)是保存在較長的一行。分析后可以看到較長行的長度都是一樣的。具體內(nèi)容是,前端若干位是控制符(包含地址),然后是具體數(shù)據(jù),之后是校驗(yàn)碼。找到規(guī)律后,就可以直接提取其中內(nèi)容了。

Quartus中沒有直接提供這個格式的文件,不過Quartus下用于Nios2開發(fā)的套件(nios2eda)中,有一個小工具:sof2flash

在Nios2 Shell中啟動這個工具,可以將sof文件轉(zhuǎn)為.flash文件。查看這個.flash工具,就能發(fā)現(xiàn)這個文件的語法結(jié)構(gòu)和MCS文件一樣。

那么后面的事情就很容量了,用腳本語言(Python)寫一個轉(zhuǎn)換工具,生成一個文件,后綴名可以隨意取(本人使用.bin這個后綴)。將這個文件以二進(jìn)制形式讀取,直接傳給ASMI IP寫入Flash,從實(shí)際效果看,沒有任何問題,F(xiàn)PGA順利從Flash啟動。

這里要感謝:武漢芯路恒科技有限公司的小梅哥。當(dāng)初是小梅哥的提點(diǎn),才知道有.flash這個文件的存在。

這個方法算是另辟路徑,用不是很正式的方法將sof文件轉(zhuǎn)為了一個標(biāo)準(zhǔn)的Flash內(nèi)容描述格式。本人使用的是這種格式。不過,從道理上分析,Altera應(yīng)該是提供了正確的配置文件。

通過朋友向Altera技術(shù)支持打聽,得到一個方案,這里云分析一下。先給出結(jié)論:這個方案應(yīng)該是可行的。

通過Quartus提供的文件轉(zhuǎn)換工具,可以將sof轉(zhuǎn)為pof文件。這一步上文已經(jīng)做了分析,pof并不是直接寫入Flash中的文件。

再一次使用文件轉(zhuǎn)換工具,利用pof文件,轉(zhuǎn)為rpd文件。這個rpd文件,就是需要使用的文件。

分析一下rpd文件和.flash文件中的內(nèi)容

左邊為.flash文件內(nèi)容,右邊為.rpd文件內(nèi)容

從開頭部分就可以看出,數(shù)據(jù)是有明顯的對應(yīng)關(guān)系,56565656調(diào)整位序后就可以得到6a6a6a6a。第10行的20000000和04000000也能看出對應(yīng)的關(guān)系。

從這個結(jié)果可以看到.rpd的數(shù)據(jù)是可以使用的,只是在位序方面需要做一些調(diào)整。

這一還有一些地方需要討論,就是文件大小。

sof文件代表FPGA的配置文件,F(xiàn)PGA的配置文件都是和FPGA的型號相關(guān)。與Xilinx不同,Altera的sof文件似乎無論是否打開壓縮,均不會改變文件大小。

bin文件是從.flash文件中提取的,.flash是從sof中提取的。所以bin文件包含的是完整的配置信息。實(shí)際使用中可以發(fā)現(xiàn)這個bin文件的大小會比sof文件小一些。而.flash文件由于是文本格式,所以無法比較大小。

jic、pof和rpd文件,這三個文件是針對Flash的,所以這三個文件的大小是依據(jù)Flash而變化的。使用中可以發(fā)現(xiàn)這三個文件其實(shí)比sof/bin文件大很多。但這三個文件幾乎是一樣大小的。

用一個例子來說明,假設(shè)sof文件是20MB,F(xiàn)lash是128MB。那么bin文件代表sof文件中有效內(nèi)容,可能是16MB,而由于Flash固定是128MB,則jic/pof/rpd三個文件都幾乎是128MB大小,其中只有開頭的16MB是有效內(nèi)容,后面的數(shù)據(jù)基本為填充的無效數(shù)據(jù)(或者在生成時添加了其他數(shù)據(jù)源的數(shù)據(jù))

這里有一個例子,rpd文件,二進(jìn)制用文本展開,32bit一組用8位16進(jìn)制數(shù)表示,一共33554432組,其中ffffffff占了22578142,可以看到幾乎大部分都是無效的flash初始數(shù)據(jù)。

33554432*32bit / 1024/1024 / 8 = 128MB

這個128MB的Flash,大概三分之二都是無用的Flash數(shù)據(jù)。

這可以側(cè)面驗(yàn)證,jic/pof/rpd文件雖然很大,但其中有效數(shù)據(jù)并沒有很多。

所以,如果只有一個鏡像的遠(yuǎn)程更新,那么bin文件其實(shí)是很方便的,但生成的方法會麻煩一些。如果直接使用rpd文件,代價是要么寫入大量無用數(shù)據(jù),要么確認(rèn)一下有效數(shù)據(jù)的結(jié)尾,來避免大量無效數(shù)據(jù)的寫入。

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

    關(guān)注

    1630

    文章

    21802

    瀏覽量

    606364
  • FlaSh
    +關(guān)注

    關(guān)注

    10

    文章

    1644

    瀏覽量

    148757

原文標(biāo)題:Altera平臺遠(yuǎn)程更新中FPGA讀寫Flash設(shè)計的討論

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

收藏 人收藏

    評論

    相關(guān)推薦

    基于FPGA的SPI Flash控制器的設(shè)計方案

    Flash讀寫硬件實(shí)現(xiàn)方案,該方案利用硬件對SPI Flash進(jìn)行控制,能夠非常方便地完成
    發(fā)表于 09-24 09:12 ?6212次閱讀
    基于FPGA的SPI <b class='flag-5'>Flash</b><b class='flag-5'>控制</b>器的設(shè)計<b class='flag-5'>方案</b>

    Nand Flash接口定義解析 基于AMD FPGA的Nand Flash接口讀寫實(shí)現(xiàn)

    Nand Flash因其具有容量大、成本低、壽命長的特點(diǎn),被廣泛的用作數(shù)據(jù)存儲的解決方案。然而NandFlash的讀寫控制較為復(fù)雜,Nand Fla
    的頭像 發(fā)表于 11-10 09:40 ?8417次閱讀
    Nand <b class='flag-5'>Flash</b>接口定義解析 基于AMD FPGA的Nand <b class='flag-5'>Flash</b>接口<b class='flag-5'>讀寫</b>實(shí)現(xiàn)

    Flash基本操作——Flash基礎(chǔ)(1)#多媒體技術(shù)

    FlaSh
    未來加油dz
    發(fā)布于 :2023年05月24日 10:43:53

    基于CPLD的Flash讀取控制的設(shè)計與實(shí)現(xiàn)

            在使用Flash 存儲數(shù)據(jù)時,有時需要對其設(shè)計讀寫控制邏輯。本文介紹了用VHDL 語言在CPLD內(nèi)部編程,實(shí)現(xiàn)對
    發(fā)表于 09-04 09:29 ?35次下載

    基于FLASH的FIFO讀寫

    基于FLASH的FIFO讀寫,介紹的比較詳細(xì),值得一讀。
    發(fā)表于 04-28 10:30 ?22次下載

    基于FPGA 的SPI Flash 控制器設(shè)計及驗(yàn)證

    現(xiàn)場可編程門陣列FPGA 常常進(jìn)行大數(shù)據(jù)量的處理,數(shù)據(jù)的存儲便成了問題,利用SPI Flash 大容量、讀寫速度快、成本低廉以及數(shù)據(jù)在斷電后不丟失的特點(diǎn),可以將配置數(shù)據(jù)存儲于SPI Flash
    發(fā)表于 11-22 08:47 ?1.4w次閱讀
    基于FPGA 的SPI <b class='flag-5'>Flash</b> <b class='flag-5'>控制</b>器設(shè)計及驗(yàn)證

    STM32_ SPI讀寫Flash

    STM32_SPI讀寫Flash
    的頭像 發(fā)表于 04-08 10:26 ?5680次閱讀
    STM32_ SPI<b class='flag-5'>讀寫</b><b class='flag-5'>Flash</b>

    ESP8266的Flash讀寫詳細(xì)教程

    本?介紹ESP8266的Flash讀寫接?,Flash讀寫時的注意事項(xiàng),以及ESP8266_NONOS_SDK中IOT_Demo提供的Flash
    發(fā)表于 03-26 14:12 ?31次下載
    ESP8266的<b class='flag-5'>Flash</b><b class='flag-5'>讀寫</b>詳細(xì)教程

    STM32內(nèi)部Flash讀寫問題

    讀寫要注意幾點(diǎn)keil的.map文件中包含了什么操作不當(dāng)導(dǎo)致Flash損壞會怎樣Flash上鎖與解鎖Keil編譯器如何查看MCU寄存器的值Flash讀、寫、擦除、擦除寫代碼下一篇:
    發(fā)表于 12-01 20:21 ?20次下載
    STM32內(nèi)部<b class='flag-5'>Flash</b><b class='flag-5'>讀寫</b>問題

    SPI控制EF3內(nèi)置FLASH讀寫

    電子發(fā)燒友網(wǎng)站提供《SPI控制EF3內(nèi)置FLASH讀寫.pdf》資料免費(fèi)下載
    發(fā)表于 09-27 10:19 ?2次下載
    SPI<b class='flag-5'>控制</b>EF3內(nèi)置<b class='flag-5'>FLASH</b><b class='flag-5'>讀寫</b>

    安路ELF2 FPGA內(nèi)置FLASH讀寫控制

    電子發(fā)燒友網(wǎng)站提供《安路ELF2 FPGA內(nèi)置FLASH讀寫控制.pdf》資料免費(fèi)下載
    發(fā)表于 09-27 09:32 ?2次下載
    安路ELF2 FPGA內(nèi)置<b class='flag-5'>FLASH</b><b class='flag-5'>讀寫</b><b class='flag-5'>控制</b>

    UART控制EF2內(nèi)置FLASH讀寫

    電子發(fā)燒友網(wǎng)站提供《UART控制EF2內(nèi)置FLASH讀寫.pdf》資料免費(fèi)下載
    發(fā)表于 09-27 11:20 ?6次下載
    UART<b class='flag-5'>控制</b>EF2內(nèi)置<b class='flag-5'>FLASH</b><b class='flag-5'>讀寫</b>

    SPI控制EF2內(nèi)置FLASH讀寫

    電子發(fā)燒友網(wǎng)站提供《SPI控制EF2內(nèi)置FLASH讀寫.pdf》資料免費(fèi)下載
    發(fā)表于 09-26 15:16 ?3次下載
    SPI<b class='flag-5'>控制</b>EF2內(nèi)置<b class='flag-5'>FLASH</b><b class='flag-5'>讀寫</b>

    基于FPGA的SPI Flash控制器的設(shè)計方案

    一個基于FPGA的SPI Flash讀寫硬件實(shí)現(xiàn)方案,該方案利用硬件對SPI Flash進(jìn)行控制
    的頭像 發(fā)表于 07-15 16:55 ?2153次閱讀
    基于FPGA的SPI <b class='flag-5'>Flash</b><b class='flag-5'>控制</b>器的設(shè)計<b class='flag-5'>方案</b>

    使用VHDL實(shí)現(xiàn)Flash讀寫控制器設(shè)計

    首先拋出重點(diǎn):使用Xilinx的平臺,最大的難點(diǎn)在于,要自己設(shè)計一個Flash讀寫控制器。
    的頭像 發(fā)表于 08-03 09:34 ?1121次閱讀
    使用VHDL實(shí)現(xiàn)<b class='flag-5'>Flash</b><b class='flag-5'>讀寫</b><b class='flag-5'>控制</b>器設(shè)計
    主站蜘蛛池模板: 欧美一级特黄aa大片视频 | 欧美a色 | 欧美日操 | 狠狠噜天天噜日日噜 | 五月激情久久 | 亚洲成人免费看 | 日本在线视频不卡 | 国产资源网 | sihu影院永久在线影院 | 日本特黄绿像大片免费看 | 91国内在线视频 | 一本到卡二卡三卡四卡 | 国产美女一级视频 | 种子在线搜索 | 91夫妻视频 | 国产精品主播在线观看 | 天天操天天艹 | 哺乳期xxxx视频 | 奇米影视亚洲春色77777 | 欧美极品在线 | 一级特黄aaa大片29 | 国产精品伦理一区二区三区 | 美女视频黄.免费网址 | 波多野结衣的毛片 | 免费亚洲视频在线观看 | 午夜影院免费入口 | 欧美天堂视频 | 久久成人影视 | 久久综合九色综合欧美狠狠 | 韩国激情啪啪 | 免费人成年激情视频在线观看 | 国产黄色网页 | 49pao强力免费打造在线高清 | 日本黄色免费网址 | 亚洲黄色三级网站 | 好硬好大好爽女房东在线观看 | 五月婷婷视频在线 | 三级在线播放 | 亚洲日本在线观看视频 | 在线中文字幕第一页 | 大黄网站在线观看 |