持續(xù)了幾個月,從零開始,學(xué)習(xí)其他項(xiàng)目的方案和原理圖,閱讀相關(guān)器件的手冊。終于,磕磕絆絆的完成了硬件電路方案和原理圖的設(shè)計。
與射頻datasheet相比,硬件的手冊都特別長,短則幾百頁,長則上千頁,硬件和軟件知識夾雜在一起。看的時候真的是需要耐心,區(qū)分哪些是硬件電路設(shè)計需要的,哪些是軟件設(shè)計相關(guān)的。
那硬件電路設(shè)計到底應(yīng)該怎么下手呢?總結(jié)了一下,主要是三方面:
l時鐘分配
l器件互聯(lián)
關(guān)于時鐘分配,核心器件就是時鐘管理芯片,如下圖所示,其本質(zhì)上是一個數(shù)字鎖相環(huán),可以多路輸出。和射頻鎖相環(huán)一樣,廠家也提供設(shè)計軟件,協(xié)助設(shè)計人員進(jìn)行寄存器配置。所以,時鐘分配的難點(diǎn),在于如何確定各路時鐘的頻率。
ADC,DAC,SoC上的PS-CLK和GTX等等,都需要時鐘。比如說,如果你要選用千兆以太網(wǎng),PS-CLK選為50MHz,可能是比較合適的。因?yàn)?a class="article-link" target="_blank" href="/article/1664978.html">FPGA內(nèi)部的PLL都是整數(shù)分頻的,選50MHz時,F(xiàn)PGA可以產(chǎn)生PHY芯片需要的125MHz。而ADC,DAC,GTX的時鐘選擇,相互制約,選擇時還需要咨詢算法人員(與其符號率、編碼方式等有關(guān),這個我也還沒搞清楚,直接采用的是算法人員推薦的頻率)。
關(guān)于電源設(shè)計,除給各個器件供電外,還要保證FPGA的上電時序滿足要求。FPGA只有按照一定的時序上電,才能保證其消耗最小的電流,且I/O在上電過程中為三態(tài)狀態(tài)。這可以通過單片機(jī)控制實(shí)現(xiàn),也可以利用電源芯片的PGOOD功能。
FPGA等芯片的功耗的估計都比較難,因?yàn)槠浜蜕漕l器件不一樣,它的功耗和其工作狀態(tài)有很大的關(guān)系。而在最后算法等出來之前,可能連FPGA設(shè)計人員都不清楚其功耗是怎樣。所以,設(shè)計時,先用廠家提供的功耗計算軟件進(jìn)行估算。然后,在硬件上做兼容,先按大電流設(shè)計,實(shí)際過程中按照需求調(diào)整,以保證電源效率。
關(guān)于器件互聯(lián),主要是指FPGA與Flash,DDR,PHY芯片,ADC,DAC等之間的互聯(lián)。而這些互聯(lián)都遵循一定的規(guī)則,F(xiàn)PGA都有明確的規(guī)定,需要仔細(xì)閱讀FPGA相關(guān)的應(yīng)用文檔。
PS:
一直不明白,為什么硬件PCB上的供電,大部分都是用電源平面,而射頻,就是用寬度為mm級的線就行了?
我想大致原因,可能是:
數(shù)字器件在運(yùn)行過程中,瞬態(tài)電流會很大,而數(shù)字器件對其供電誤差的容忍度很小,可能只有0.02V左右,所以需要大的電源平面,這樣電阻就小,保證電流瞬態(tài)變化時,其供電電壓仍在誤差范圍內(nèi)。當(dāng)然,這還需要去耦電容的幫忙。
而射頻器件,電流就小很多,mA級,而且,對供電誤差不太敏感。5V的器件,給個4.8V,可能也能正常工作。
所以,數(shù)字PCB需要采用電源平面,而射頻只需用微帶線連接即可。