數(shù)據(jù)采集器核心器件FPGA如何進(jìn)行片上調(diào)試
發(fā)布人: 發(fā)布時(shí)間:2021-06-06
FPGA與STM32等嵌入式開(kāi)發(fā)最大的一個(gè)優(yōu)點(diǎn)就是,可以在時(shí)序仿真階段驗(yàn)證超過(guò)90%的功能,發(fā)現(xiàn)90%的問(wèn)題。當(dāng)所有的仿真沒(méi)問(wèn)題了,才能進(jìn)行最后一步:板級(jí)調(diào)試。如果仿真都不對(duì),那就沒(méi)必要下載到芯片里了。
STM32等單片機(jī),使用J-Link或ST-Link等調(diào)試器,可以進(jìn)行在線調(diào)試,由于C代碼是順序執(zhí)行的,我們可以插入斷點(diǎn),讓程序停在我們需要的位置,或者是實(shí)時(shí)查看一些變量的數(shù)值,大大提高了我們Debug的速度,提高產(chǎn)品的開(kāi)發(fā)效率。

zynq芯片
對(duì)于FPGA來(lái)說(shuō),仿真畢竟是仿真,可以理解為理想條件,而最終我們的代碼是需要運(yùn)行在實(shí)際的FPGA芯片硬件上的。
所以也會(huì)遇到仿真正常,實(shí)際下載到板子里不正常的情況。這種現(xiàn)象有兩種原因:1.程序有BUG,2.硬件有問(wèn)題。比如實(shí)際程序中復(fù)位信號(hào)是低電平復(fù)位,而實(shí)際電路中設(shè)計(jì)的復(fù)位按鍵按下才是高電平,這樣按鍵未按下就會(huì)導(dǎo)致程序一直處于復(fù)位狀態(tài)。
當(dāng)然,這只是一種最簡(jiǎn)單的問(wèn)題點(diǎn),實(shí)際開(kāi)發(fā)過(guò)程中,仿真與實(shí)際運(yùn)行不匹配的情況還有很多。那么如何才能以最快的速度找到問(wèn)題點(diǎn)呢?
早期的FPGA調(diào)試方法通常使用邏輯分析儀,連接到FPGA芯片的外部管腳上,如果想查看內(nèi)部信號(hào),還需要把這些信號(hào)定義成Output引出到外部管腳進(jìn)行了測(cè)量,如果是多位數(shù)據(jù),這樣就會(huì)占用大量的管腳,但是此類工具有個(gè)優(yōu)點(diǎn)就是支持多種協(xié)議解析,可以非常方便的查看協(xié)議的報(bào)文數(shù)據(jù)。