精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

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

對(duì)于一款新的Zynq板卡來說,如何開掛啟動(dòng)程序

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

答案是:Digital Discovery

口袋式高速邏輯分析儀

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

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

01

硬件清單

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

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

  • SOIC測試夾(若有最佳)

  • 杜邦線

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

02

連接Digital Discovery

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

QSPI 信號(hào)

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)行連接時(shí),要注意保證信號(hào)完整性,避免串?dāng)_。在某些時(shí)候,需要將某個(gè)信號(hào)和地線進(jìn)行纏繞,如圖中的藍(lán)色cs信號(hào)就使用了接了地的黑線進(jìn)行了纏繞。

03

QSPI腳本

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

// 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的最高時(shí)鐘頻率是100MHz,但在啟動(dòng)過程中的最高頻率僅為25MHz。此外,整個(gè)啟動(dòng)過程大概需要700ms。因此對(duì)于同時(shí)滿足大量樣本和高速采樣率,這也正是選擇Digital Discovery的原因——200MHz的采樣速度可以在1.3s內(nèi)采樣268M的樣本數(shù)據(jù)。

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

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

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

05

啟動(dòng)傳輸

想要明白所傳輸?shù)臄?shù)據(jù)含義需要閱讀兩個(gè)文檔,一是Zynq技術(shù)參考手冊(www.xilinx.com/support/documentation/user_guides/ug585-Zynq-7000-TRM.pdf),另一個(gè)是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的。還需要注意到,此時(shí)的SPI時(shí)鐘是5.405MHz,是一個(gè)比較低的速度。

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

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

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

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

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

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

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

關(guān)于引導(dǎo)鏡像和啟動(dòng)過程可以閱讀這一用戶手冊(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ī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1626

    文章

    21670

    瀏覽量

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

    關(guān)注

    32

    文章

    1794

    瀏覽量

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

    關(guān)注

    0

    文章

    1

    瀏覽量

    2063

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

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

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    冷機(jī)啟動(dòng)板卡時(shí),LMX2572鎖定時(shí)間在2分鐘以上,為什么?

    冷機(jī)啟動(dòng)板卡時(shí),LMX2572鎖定時(shí)間在2分鐘以上。當(dāng)LMX2572鎖定后重新啟動(dòng),鎖定時(shí)間在1-3秒內(nèi)。
    發(fā)表于 11-11 08:09

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

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

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

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

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

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

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

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

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

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

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

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

    NVIC_SystemReset()導(dǎo)致系統(tǒng)死怎么解決?

    我用的芯片是psoc6,基于psoc creator4.4,基于CE217633這個(gè)示例,在M4 的main函數(shù)加入NVIC SystemReset(), 實(shí)現(xiàn)系統(tǒng)每隔5秒重新啟動(dòng),但系統(tǒng)有10
    發(fā)表于 02-01 07:38

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

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

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

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

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

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

    通過JTAG啟動(dòng)Linux的方法和腳本

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

    使用AD7490開發(fā)一款多通道數(shù)據(jù)采集的項(xiàng)目,在開發(fā)的過程中對(duì)于時(shí)序的疑問求解

    各位大神好: 最近在使用AD7490開發(fā)一款多通道數(shù)據(jù)采集的項(xiàng)目。在開發(fā)的過程中對(duì)于時(shí)序有點(diǎn)疑問,請(qǐng)教下。 1、如圖所圈1,這個(gè)ADD3是有還是沒有,怎樣設(shè)置才能正常讀出來; 2、如圖所圈2
    發(fā)表于 12-13 09:08

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

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

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

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