本次整理2023年6月5日~6月11日,FPGA算法技術(shù)交流群的相關(guān)問答。相關(guān)問題的解答和交流來(lái)自群成員,僅作參考。
1.有用過(guò)xilinx FIFO的first word fall through模式,然后write data count會(huì)少2個(gè)計(jì)數(shù)的嗎?
答:wr count應(yīng)該是代表目前fifo中寫入值,讀出fifo的值是不算在他的計(jì)數(shù)內(nèi),不是累加的。
2.GTH自回環(huán),直接把差分收發(fā)assign就行吧?
答:是控制loopback。直接assign,表面上是連起來(lái)了,實(shí)際硬件管腳并沒有連起來(lái)。ip核里邊有個(gè)loopback,配置一下看自收發(fā)數(shù)據(jù)正不正常。Ibert可用來(lái)測(cè)高速收發(fā)器的功能。
3.有沒有遇到flash啟動(dòng)不了的情況,上電有百分之10的幾率不運(yùn)行固化的程序?
答:看看SPI速率是不是比較高?如果flash是3.3v的,3.3得快點(diǎn)上,用k7的時(shí)候遇到過(guò),可以試一下。
4. FPGA是不是不支持PCIE4.0X16的啊,IP核最大只找到了PCIE4.0X8的?
答:PCIE4.0X16得用高級(jí)一點(diǎn)的片子,versal已量產(chǎn)的可以支持gen4x16,gen5x8。同時(shí)Vivado版本也要用新的。
5.寫verilog代碼,有那些好用的編輯器?
答:notepad++、gvim、sublime、vim、vscode(有不少插件)、utral edit、TerosHDL、Digital IDE等,用起來(lái)習(xí)慣就好。
6.請(qǐng)問下vivado生成ram的ip時(shí)只能生成vhdl代碼嗎,可以選生成verilog嗎?
答:取決于這個(gè)IP 最初是用什么語(yǔ)言寫的,確實(shí)有部分IP底層用的VHDL寫的。不過(guò)一般在例化接口,提供了VHDL和verilog兩種模式,可以選擇。
7.想問問大家,一般比如說(shuō)ZYNQ中,PS/PL之間交互,一般是xilinx的ip,還是自己寫axi_dma讀寫的ip???
答:自己手動(dòng)寫。此外,BD側(cè)可以調(diào)用DMA。
8. 阻塞與非阻塞賦值問題。
always@(*)、assign用于組合邏輯,阻塞賦值。
always@(posedge clk)用于時(shí)序邏輯,非阻塞賦值。
9.NTP 協(xié)議用于時(shí)鐘同步FPGA怎么實(shí)現(xiàn)?
答:看協(xié)議規(guī)范,找資料。以下是NTP的同步原理。
NTP最典型的授時(shí)方式是Client/Server方式,如下圖所示。
客戶端首先向服務(wù)端發(fā)送一個(gè)NTP請(qǐng)求報(bào)文,其中包含了該報(bào)文離開客戶端的時(shí)間戳t1;
NTP請(qǐng)求報(bào)文到達(dá)NTP服務(wù)器,此時(shí)NTP服務(wù)器的時(shí)刻為t2。當(dāng)服務(wù)端接收到該報(bào)文時(shí),NTP服務(wù)器處理之后,于t3時(shí)刻發(fā)出NTP應(yīng)答報(bào)文。該應(yīng)答報(bào)文中攜帶報(bào)文離開NTP客戶端時(shí)的時(shí)間戳t1、到達(dá)NTP服務(wù)器時(shí)的時(shí)間戳t2、離開NTP服務(wù)器時(shí)的時(shí)間戳t3;
客戶端在接收到響應(yīng)報(bào)文時(shí),記錄報(bào)文返回的時(shí)間戳t4。
客戶端用上述4個(gè)時(shí)間戳參數(shù)就能夠計(jì)算出2個(gè)關(guān)鍵參數(shù):
NTP報(bào)文從客戶端到服務(wù)器的往返延遲delay。
客戶端與服務(wù)端之間的時(shí)間差offset。
根據(jù)方程組:
可以解得時(shí)間差為:
NTP客戶端根據(jù)計(jì)算得到的offset來(lái)調(diào)整自己的時(shí)鐘,實(shí)現(xiàn)與NTP服務(wù)器的時(shí)鐘同步。
與NTP類似的還有PTP,NTP客戶端根據(jù)計(jì)算得到的offset來(lái)調(diào)整自己的時(shí)鐘,實(shí)現(xiàn)與NTP服務(wù)器的時(shí)鐘同步。可以通過(guò)IEEE 1588進(jìn)行時(shí)鐘同步。
10. 就是千兆網(wǎng)的crc計(jì)算中,為啥用網(wǎng)站生成了crc公式得到的值,還要按字節(jié)為單位按位取反呀?
答:查一下IEEE Ethernet中的計(jì)算說(shuō)明。
11. 請(qǐng)問一下大家這個(gè)zynq ps 40M進(jìn)來(lái) 到PL 40M 在pl里邊經(jīng)過(guò)鎖相環(huán)生成100MHz時(shí)鐘,非常準(zhǔn)確嗎?
答:PS的里面的這個(gè)時(shí)鐘精度不高,大都給AXI總線時(shí)鐘用,很少用來(lái)當(dāng)FPGA的工作時(shí)鐘,也就不怎么關(guān)注詳細(xì)的精度了。
12. 能不能用PLL IP的lock信號(hào)當(dāng)作復(fù)位信號(hào)用呢?我看這個(gè)lock是晚于幾個(gè)時(shí)鐘周期后出來(lái)的。假如板子上沒有設(shè)計(jì)硬件復(fù)位引腳,可以拿這個(gè)信號(hào)當(dāng)全局復(fù)位用嗎?
答:可以,現(xiàn)實(shí)當(dāng)中就這這么用的??梢裕且话阄叶甲屗刂埔粋€(gè)計(jì)數(shù)器,因?yàn)橛行〇|西對(duì)復(fù)位信號(hào)長(zhǎng)度有要求,不小于XX周期。
13. 用zynq做nvme的接口,讀寫SSD有啥好方案嘛?
答:直接掛載到linux上用文件系統(tǒng)讀寫,我之前用的SATA接口讀寫SSD 使能cache能到200~300Mbytes/s。
14.某些IP核生成時(shí)關(guān)于共享邏輯的問題。
答:如果選上邊的,核里多包含一些必要的東西,使用起來(lái)簡(jiǎn)單些。但是那些東西也就沒法復(fù)用了。下邊的,是核里只包含必要的東西,其它附屬東西放在例子里。
有時(shí)候需要例化多個(gè)該IP時(shí),選用下面的在例子中使用共享邏輯,可以復(fù)用部分時(shí)鐘和復(fù)位,特別是GT相關(guān)的。
15. SSS檢測(cè),找相關(guān)峰的時(shí)候可以這樣(a^2+b^2-->|a|+|b|)簡(jiǎn)化算法嗎?336個(gè)相關(guān)器,如果并行處理,會(huì)消耗大量的乘法器。
答:SSS檢測(cè),需要336個(gè)相關(guān)器,考慮虛警概率,如果處理方法不當(dāng),可能在拉距時(shí)容易漏檢。SSS周期長(zhǎng),允許時(shí)間內(nèi),可不全并行處理,復(fù)用部分相關(guān)器。找最大值,可以直接用功率了吧,不用開方了,效果差不多。求功率也就2個(gè)乘法器,1個(gè)加法器。
另外,平方根的簡(jiǎn)化算法:z=sqrt(a^2+b^2)有個(gè)近似算法:
M=max(abs(a),abs(b))
m=min(abs(a),abs(b))
if (M>2*m) z=M+m/4
else z=7/8*M+m/2
16. 請(qǐng)教一下,VHDL怎么和c聯(lián)合仿真呢?
答:通過(guò)DPI接口可以把c和sv交互?;蛘呖紤]以下QEMU。一般來(lái)說(shuō),ARM側(cè)不用仿真。
17. 對(duì)于zynq的使用,單獨(dú)從vivado加載程序,可以嗎?如果我pl鐘來(lái)自ps得話,需要加載sdk加載嗎?
答:這只是下載程序的問題,下載PS的程序只能從SDK ,你PL的時(shí)鐘需要加載PS的程序才能激活。
18.實(shí)信號(hào)與復(fù)數(shù)信號(hào)采樣問題。
答:一路實(shí)信號(hào),fs得兩倍。正交的IQ有效帶寬其實(shí)是加倍了。實(shí)信號(hào)正負(fù)頻率共軛對(duì)稱的,帶寬定義的是零頻到正半邊,采樣率大于二倍這個(gè)就行。復(fù)信號(hào)相當(dāng)于兩個(gè)實(shí)信號(hào),兩路AD都大于實(shí)信號(hào)二倍就行。采樣速率,所以是兩個(gè)實(shí)信號(hào)相加。
19. 請(qǐng)教一下,大家都是怎么在設(shè)計(jì)初期估計(jì)硬件板子的功耗,以及電源需求的哈。
答:Xilinx有一個(gè)excel表格可以估,XPE。XPE的使用方法參考《Xilinx Power Estimator User Guide (UG440)》。極限條件的XPE仿真步驟參考《xapp1348-power-analysis》。
20. 請(qǐng)教一個(gè)問題,數(shù)字中頻閉環(huán)采線性調(diào)頻信號(hào)做脈壓,匹配濾波器用理想的系數(shù),脈壓的結(jié)果看著很差,這個(gè)問題接下來(lái)還可以怎么排查呢?
答:線性調(diào)頻信號(hào),可以簡(jiǎn)單看看頻率是不是線性變化。線性調(diào)頻直接用相位差分,看看調(diào)頻曲線。相位取差分,就是調(diào)頻曲線,看是不是線性。
21. 有沒有類似github的但是以verilog為主的開源網(wǎng)站?
答:例如
a、opencores,https://opencores.org/
b、FPGAs4fun,http://www.fpga4fun.com/
c、OpenHW Group ,https://www.openhwgroup.org/
d、FPGACPU,http://www.fpgacpu.org/links.html
審核編輯:湯梓紅
-
FPGA
+關(guān)注
關(guān)注
1625文章
21620瀏覽量
601239 -
Xilinx
+關(guān)注
關(guān)注
71文章
2155瀏覽量
120853 -
fifo
+關(guān)注
關(guān)注
3文章
386瀏覽量
43496 -
編輯器
+關(guān)注
關(guān)注
1文章
800瀏覽量
31055
原文標(biāo)題:FPGA算法技術(shù)交流問答集錦(6.5~6.11)
文章出處:【微信號(hào):FPGA算法工程師,微信公眾號(hào):FPGA算法工程師】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論