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

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

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

對于一款新的Zynq板卡來說,如何開掛啟動程序

YCqV_FPGA_EETre ? 來源:互聯(lián)網(wǎng) ? 作者:佚名 ? 2018-01-17 09:08 ? 次閱讀

答案是:Digital Discovery

口袋式高速邏輯分析儀

當(dāng)新入手一款Zynq開發(fā)板后,一般新手在串口輸出一個hello world,實現(xiàn)功能就可以了。而對于一些對于Zynq有一定了解的老手而言,往往則會去嘗試了解板上硬件的特性和時序,探究hello world輸出背后整個系統(tǒng)是如何運(yùn)作的。

事實上,對于一款新的Zynq板卡來說,在啟動序列中QSPI傳輸?shù)乃俣炔皇且粋€明顯的規(guī)范,本文教程就將教你如何使用Digital Discovery口袋式高速邏輯分析儀來快速分析啟動序列并確定時序。

01

硬件清單

  • Digital Discovery口袋式高速邏輯分析儀

  • 帶有flash的Zynq開發(fā)板(本文中使用Digilent Zybo作為被測對象)

  • SOIC測試夾(若有最佳)

  • 杜邦線

注:事實上,除了Digital Discovery之外,當(dāng)然你也可以用經(jīng)典的Digilent Analog Discovery 2來操作,后者同樣帶有邏輯分析儀功能。這里更為推薦使用Digital Discovery,有兩個原因:一是由于QSPI時鐘頻率很高,超過100MHz,因此所選的儀器需要具有足夠的采樣率。二是Digital Discovery具有512 MB的DDR,可以完成大規(guī)模數(shù)據(jù)存儲的要求。

02

連接Digital Discovery

連接關(guān)系如下:

QSPI 信號

QSPI/測試夾引腳

DigitalDiscovery引腳

cs

7

DIO0

clk

16

DIO1

d0

15

DIO2

d1

8

DIO3

d2

9

DIO4

d3

1

DIO5

gnd

10

Gnd

在使用如上圖所示的杜邦線進(jìn)行連接時,要注意保證信號完整性,避免串?dāng)_。在某些時候,需要將某個信號和地線進(jìn)行纏繞,如圖中的藍(lán)色cs信號就使用了接了地的黑線進(jìn)行了纏繞。

03

QSPI腳本

為了將QSPI的信號轉(zhuǎn)換成數(shù)據(jù),在邏輯分析儀的WaveForm軟件中增添了一個“定制”通道,并使用js語言編寫了一個“解釋器”。代碼如下:

// rgData: input, raw digital sample array// rgValue: output, decoded data array// rgFlag: output, decoded flag arrayvar c = rgData.length // c = number of raw samplesvar pClock = false; // previous cock signal levelvar iStart = 0;   // used to keep track on word start indexvar cByte = 0;   // byte count per transmissionvar cBits = 0;   // bit countervar bValue = 0;   // value variablevar fCmd = true;for(var i = 0; i < c; i++){ // for each sample? ? var s = rgData[i]; // current sample? ? var fSelect = 1&(s>>0); // pin0 is the select signal    var fClock = 1&(s>>1); // pin1 is the clock signal  var fData = 1&(s>>2); // pin2 is the data signal  var fData4 = 0xF&(s>>2); // DIN 2-5 DQ 0-3    if(fSelect != 0){ // select active low    // while select inactive reset our counters/variables    iStart = i+1; // select might become active with next sample    cByte = 0;    cBits = 0;    bValue = 0;    pClock = false;    fCmd = true;    continue;  }  if(pClock == 0 && fClock != 0){ // sample on clock rising edge       bValue <<= 4; // serial data bit, MSBit first? ? ?? ? ? bValue |= fData4;? ? ??? ? ?? ? ? ? ? ?? ? ? cBits++;? ? ?? ? ? if(cBits==2){ // when got the 8th bit of the word store it? ? ?? ? ?  ? cByte++;? ? ?? ? ?  ? // store rgValue/Flag from word start index to current sample position? ? ?? ? ?  ? for(var j = iStart; j < i; j++){? ? ?? ? ?  ? ? ? // Flag change will be visible on plot even when data remains constant.? ? ?? ? ?  ? ? ? // This is useful in case we get more consecutive equal values.? ? ?? ? ?  ? ? ? rgFlag[j] = cByte;? ? ?? ? ?  ? ? ? rgValue[j] = bValue;? ? ?? ? ?  ? ?}? ? ?? ? ?  ? ?iStart = i+1; // next word might start after this sample? ? ?? ? ?  ? ?cBits = 0; ?// reset bit count for the next byte? ? ?? ? ?  ? ?bValue = 0; // reset value variable? ? ?? ? ?  }? ? ??}? ? ??pClock = fClock; // previous clock level}

除了使用定制的“解釋器”外,我們還可以使用標(biāo)準(zhǔn)的SPI來分析那些沒有通過QSPI發(fā)送到指令,例如第一條讀取指令。

04

觸發(fā)與采樣

雖然QSPI的最高時鐘頻率是100MHz,但在啟動過程中的最高頻率僅為25MHz。此外,整個啟動過程大概需要700ms。因此對于同時滿足大量樣本和高速采樣率,這也正是選擇Digital Discovery的原因——200MHz的采樣速度可以在1.3s內(nèi)采樣268M的樣本數(shù)據(jù)。

采樣本身是十分浪費(fèi)資源的,這個過程需要使用16GB的電腦內(nèi)存,并且需要很長的時間來完成數(shù)據(jù)的處理。

觸發(fā)設(shè)置在CS信號的下降沿。

下圖是Waveforms中整個QSPI的傳輸過程。注意圖中采樣信號的短暫中斷,從這個時候起時鐘頻率由5.4MHz變?yōu)榱?5MHz。

05

啟動傳輸

想要明白所傳輸?shù)臄?shù)據(jù)含義需要閱讀兩個文檔,一是Zynq技術(shù)參考手冊(www.xilinx.com/support/documentation/user_guides/ug585-Zynq-7000-TRM.pdf),另一個是flash memory的數(shù)據(jù)手冊(www.cypress.com/file/177966/download)。

Zynq與flash之間使用SPI協(xié)議進(jìn)行通信,Zynq發(fā)送通過D0向flash發(fā)送指令。所發(fā)送的第一條指令是0x03 0x00 0x00 0x20,含義是SPI讀,讀起始地址是0x20。Flash通過D1接收0x66 0x55 0x99 0xaa。Flash讀指令的含義在flash memeory的第85頁做了解釋。

(點(diǎn)擊可查看大圖)

在Zynq技術(shù)參考手冊的第170到179頁解釋了所回復(fù)指令的含義,簡單說這組字節(jié)告訴了Zynq內(nèi)存是支持QSPI的。還需要注意到,此時的SPI時鐘是5.405MHz,是一個比較低的速度。

從這點(diǎn)上看,確定了Zynq的內(nèi)存支持QSPI,并且所有的交互都將在這4條數(shù)據(jù)線上完成。例如,下一條指令是0x6b,跟在一個3個字節(jié)的地址的后面。0x6b表示一個quad讀指令,在8個時鐘周期后的QSPI解釋器上看到響應(yīng),這是虛擬字節(jié)。

(點(diǎn)擊可查看大圖)

在本例中,地址是0x1d,讀取7個字節(jié)。這些字節(jié)來自地址0x1d、0x1e、0x1f,它是中斷表的一部分,然后從地址0x20開始讀取4個字節(jié),這是在第一個SPI讀取時讀取的相同字節(jié)。

Znqy將繼續(xù)讀取字節(jié),地址逐漸增加,直到0x45,這是bootROM Header的結(jié)尾。

但是,由于我們無法訪問BootROM的代碼,其余的引導(dǎo)序列就不那么透明了。在某個時候,F(xiàn)SBL(第一階段引導(dǎo)加載程序)將開始運(yùn)行,最有可能的是當(dāng)SPI時鐘頻率變化到25 MHz的時候,如下所示,也就是在引導(dǎo)過程開始后的84毫秒。

(點(diǎn)擊可查看大圖)

然后,F(xiàn)SBL將讀取引導(dǎo)映像文件并分析它包含的不同分區(qū),包括配置Zynq PL部分的bit文件,在ARM中運(yùn)行的elf文件。

關(guān)于引導(dǎo)鏡像和啟動過程可以閱讀這一用戶手冊(www.xilinx.com/support/documentation/user_guides/ug821-zynq-7000-swdev.pdf)。

聲明:本文內(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)注

    1624

    文章

    21573

    瀏覽量

    600655
  • 賽靈思
    +關(guān)注

    關(guān)注

    32

    文章

    1794

    瀏覽量

    131085
  • Zynq板卡
    +關(guān)注

    關(guān)注

    0

    文章

    1

    瀏覽量

    2058

原文標(biāo)題:如何以開掛的方式來查看Zynq啟動順序?

文章出處:【微信號:FPGA-EETrend,微信公眾號:FPGA開發(fā)圈】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    如果設(shè)計一款桌面的機(jī)器玩具,最吸引人的外觀與功能要有哪些?

    初步設(shè)想制作如下其中一款,有感興趣的朋友可以幫提提意見。 A一款圓敦敦的音響狀的“個人日程助手”,具備番茄鬧鐘、音樂播放、減壓交互、語言對話、工作日報生成。 B一款迷你瓦利機(jī)器人,有
    發(fā)表于 10-19 18:25

    51單片機(jī)(一款國產(chǎn)8位高性能Flash的接近感應(yīng)單片機(jī)XD08M3232體驗感)

    給大家推薦一款在淘寶上發(fā)現(xiàn)的國產(chǎn)A/D型具有增強(qiáng)型1T8051內(nèi)核8位高性能Flash的接近感應(yīng)單片機(jī)XD08M3232,測試下來總體的感覺還是比較強(qiáng)大的,以下是本人試用后總結(jié)下來比較滿意的幾個點(diǎn)
    發(fā)表于 09-25 15:15

    如何設(shè)計一款50HZ陷波電路?

    如何設(shè)計一款50HZ陷波電路,有現(xiàn)成的參考電路設(shè)計嗎
    發(fā)表于 07-30 06:12

    精準(zhǔn)時刻,掌控未來:解鎖新代PCIe時鐘板卡!

    了先進(jìn)的技術(shù)和卓越的性能,為各類應(yīng)用場景提供了可靠的時間解決方案。 ? 、銣原子時鐘板卡 TS-ART是一款在PCle板卡上使用銣振蕩器作為本振的時鐘
    的頭像 發(fā)表于 06-24 11:12 ?321次閱讀
    精準(zhǔn)時刻,掌控未來:解鎖新<b class='flag-5'>一</b>代PCIe時鐘<b class='flag-5'>板卡</b>!

    人工智能模型公司Anthropic近日推出了一款Claude移動端App

    制造Claude 3人工智能模型公司Anthropic近日推出了一款iOS應(yīng)用程序,并為群組共享模型訪問添加第二個付費(fèi)層。
    的頭像 發(fā)表于 05-08 09:55 ?562次閱讀

    如何挑選一款性價比高的家用路由器

    家庭網(wǎng)絡(luò)已經(jīng)成為人們生活中不可或缺的部分。而選擇一款性價比高的家用路由器對于保障網(wǎng)絡(luò)連接質(zhì)量、提升網(wǎng)絡(luò)體驗至關(guān)重要。本文將從性能、覆蓋范圍、安全性、易用性和價格等方面,為您介紹如何挑選一款
    的頭像 發(fā)表于 04-16 15:14 ?445次閱讀

    介紹一款基于java的滲透測試神器-CobaltStrike

    Cobalt Strike是一款基于java的滲透測試神器,常被業(yè)界人稱為CS神器。
    的頭像 發(fā)表于 01-16 09:16 ?809次閱讀
    介紹<b class='flag-5'>一款</b>基于java的滲透測試神器-CobaltStrike

    基于ZYNQ FPGA構(gòu)建嵌入式的模擬計算板卡

    板卡基于高速400M 采樣AD 和ZYNQ FPGA構(gòu)建嵌入式的模擬計算板卡, 可用于工業(yè)雷達(dá),行業(yè)雷達(dá)的場合。板卡使用工業(yè)級芯片。
    的頭像 發(fā)表于 01-09 11:30 ?1111次閱讀
    基于<b class='flag-5'>ZYNQ</b> FPGA構(gòu)建嵌入式的模擬計算<b class='flag-5'>板卡</b>

    共模電容:又一款EMC濾波神器?

    共模電容:又一款EMC濾波神器?|深圳比創(chuàng)達(dá)電子(上)
    的頭像 發(fā)表于 12-25 10:54 ?629次閱讀
    共模電容:又<b class='flag-5'>一款</b>EMC濾波神器?

    通過JTAG啟動Linux的方法和腳本

    在 AMD SoC 器件(AMD Zynq 7000 SoC,AMD Zynq UltraScale+ MPSoC,AMD Versal Adaptive SoC),常見的啟動方式是通過加載外部
    的頭像 發(fā)表于 12-22 10:27 ?1308次閱讀
    通過JTAG<b class='flag-5'>啟動</b>Linux的方法和腳本

    介紹一款IDEA插件:Apipost-Helper-2.0

    IDEA是一款功能強(qiáng)大的集成開發(fā)環(huán)境(IDE)插件,它可以幫助開發(fā)人員更加高效地編寫、調(diào)試和部署軟件應(yīng)用程序。
    的頭像 發(fā)表于 12-06 10:47 ?685次閱讀
    介紹<b class='flag-5'>一款</b>IDEA插件:Apipost-Helper-2.0

    使用 PCIE 更新 AMD ZYNQ? 的 QSPI Flash 參考設(shè)計

    簡介 AMD ZYNQ? 7000 的 S_AXI 端口提供了外設(shè)訪問 PS 內(nèi)部外設(shè)控制器的接口,這其中包括 4 個 S_AXI_HP 端口以及兩個 S_AXI_GP 端口。一般來說,可以訪問
    發(fā)表于 11-30 18:49

    如何選擇一款真對數(shù)放大器?

    想選擇一款真對數(shù)放大器,用來實現(xiàn)接收機(jī)的動態(tài)范圍的壓縮,信號頻率為10M, 壓縮前動態(tài)范圍為120dB, 想通過放大器壓縮到70dB范圍內(nèi)? 請推薦幾芯片? 謝謝
    發(fā)表于 11-22 08:23

    如何實現(xiàn)套FPGA工程無縫兼容兩管腳不同的板卡?

    試想這樣種場景,有兩不同的FPGA板卡,它們的功能代碼90%都是樣的,但是兩個板卡的管腳分配完全不同,
    的頭像 發(fā)表于 11-08 14:21 ?958次閱讀
    如何實現(xiàn)<b class='flag-5'>一</b>套FPGA工程無縫兼容兩<b class='flag-5'>款</b>管腳不同的<b class='flag-5'>板卡</b>?

    車規(guī)MCU的啟動加載程序是什么

    啟動加載程序(bootloader) 車規(guī)MCU的啟動加載程序(bootloader)是種用于在汽車電子控制單元(ECU)上加載和更新應(yīng)用
    的頭像 發(fā)表于 10-27 17:26 ?1478次閱讀