【問題1】如何知道ddr3里不空,可以讀取了?
答:DR3和RAM一樣,是一個(gè)存儲器件,它的每個(gè)內(nèi)部單元都存儲了當(dāng)前的數(shù)據(jù)狀態(tài)值。
但DDR3和RAM本身,是沒有“空”、“存有數(shù)據(jù)”,“數(shù)據(jù)滿”等概念的。只要給地址,它就會把當(dāng)前地址的數(shù)據(jù)給到總線上,而且這個(gè)地址可以讀很多次。
在設(shè)計(jì)的時(shí)候,是由設(shè)計(jì)師用自己寫邏輯來判斷DDR3是否為空。
【問題2】SPI多字節(jié)發(fā)送是多個(gè)字節(jié)連在一起發(fā)還是分成單字節(jié)來進(jìn)行發(fā)送?
答:每款芯片的數(shù)據(jù)手冊,都會有時(shí)序圖的介紹,需要按照芯片數(shù)據(jù)手冊的要求進(jìn)行通信。每款芯片的要求都是不同的。所以,您需要查閱數(shù)據(jù)手冊。
【問題3】如何避免競爭和冒險(xiǎn)的情況?
答: 競爭和冒險(xiǎn)是由于組合電路中計(jì)算的延遲不一致而導(dǎo)致的。它是天然的、不可克服的現(xiàn)象。雖然它不可克服,但在FPGA設(shè)計(jì)里,它根本就不是一個(gè)問題。
因?yàn)镕PGA都是在D觸發(fā)器的時(shí)鐘上升沿對電路進(jìn)行采樣,只要時(shí)鐘上升沿前,電路計(jì)算結(jié)果已經(jīng)確定,競爭和冒險(xiǎn)已經(jīng)沒有了,那就不會有問題。
那設(shè)計(jì)時(shí),如何確認(rèn)時(shí)鐘上升沿前,計(jì)算結(jié)果已經(jīng)確定了呢?
這就靠時(shí)序報(bào)告了:時(shí)序報(bào)告會告訴任何兩個(gè)D觸發(fā)器之間,它們電路延時(shí)之和,從而確認(rèn)在上升沿之前計(jì)算結(jié)果確定。
總而言之,設(shè)計(jì)時(shí)不用考慮競爭和冒險(xiǎn);設(shè)計(jì)完看,看時(shí)序報(bào)告;沒有問題,那就正常;如果時(shí)序報(bào)告有問題,就解決時(shí)序問題。
【問題4】計(jì)數(shù)器分頻怎么個(gè)不穩(wěn)定法?
答:1. 時(shí)鐘在FPGA里是非常重要的,所有的寄存器都是統(tǒng)一在時(shí)鐘的節(jié)拍下工作。這個(gè)時(shí)鐘就相當(dāng)于一個(gè)軍隊(duì)的司令部,寄存器都聽從司令部的命令下工作。
2. 一個(gè)穩(wěn)定的系統(tǒng),時(shí)鐘是越少越好。就相當(dāng)于,一個(gè)軍隊(duì),司令部越少越好。如果司令部越多,那么部隊(duì)之間的協(xié)作必須要增加流程和成本。
3. 計(jì)數(shù)器分頻的時(shí)鐘,無形中增加了時(shí)鐘個(gè)數(shù),另一方面,就相當(dāng)于弄一個(gè)自己獨(dú)立的王國,自然就不穩(wěn)定。
【問題5】仿真是正確的,但為什么上板就不行?
答:首先要明確,仿真可以而上板不行,這是屬于研發(fā)過程中,非常非常之正常的現(xiàn)象,可以說仿真通過后,上板一次性就成功的概率,小之又小。
原因是:仿真只是用電腦模擬運(yùn)行的情況,它與真實(shí)情況可能有所差別。例如:
1. 輸入激勵是您想象出來的,事實(shí)上是不是這樣輸入?
2. 您的代碼是否可以綜合出電路?
3. 您的仿真是否測試完所有的情況?
以上都表示了仿真和實(shí)際是有差距的,所以不能認(rèn)為“仿真正確了,上板就正確”。
【問題6】:管腳未分配的現(xiàn)象,老師,我把CPLD的一個(gè)引腳接到了LED燈,但是程序中沒有分配這個(gè)管腳,第一個(gè)版本的程序上電后這個(gè)LED燈一直是亮的。
第二個(gè)版本上電后LED一直是滅的。這兩個(gè)版本的程序,都沒有對這個(gè)管腳分配,是什么原因?qū)е碌哪?
答:管腳如果未分配,則管腳電平值可認(rèn)為是不可控,也就是隨機(jī)。
【問題7】:FPGA資源不足問題當(dāng)程序所使用的資源,超出FPGA芯片資源時(shí),如何處理?
答:
1. 按照錯(cuò)誤提示,判斷是哪種資源不足,如管腳數(shù)、RAM、寄存器等。
2. 閱讀資源QUARTUS、ISE和VIVADO的資源報(bào)告,查看是哪些模塊占用了哪些資源。
3. 分析該項(xiàng)目程序中各個(gè)模塊的資源占用情況,分析代碼,綜合運(yùn)用多種方法,以求減少資源的使用,如速度換資源;去除冗余的邏輯;降低設(shè)計(jì)精度;速度換資源等方法。
注意,這些都需要 花費(fèi)大量時(shí)間,一點(diǎn)一點(diǎn)去摳資源。
4. 如果資源依然不足,可以考慮換更高級的芯片;或者改變功能需求等。
【問題8】 就是lvds恢復(fù)出數(shù)據(jù)和時(shí)鐘,對齊是需要手動調(diào)節(jié)時(shí)鐘相位,還是寫代碼自動調(diào)節(jié)?serdes
答:我們做法是手動調(diào)節(jié)相位對齊。理論上,任何功能都可以使用代碼來調(diào)節(jié),只是有沒有必要以及復(fù)雜度而已。
【問題9】FPGA生成的DDS數(shù)據(jù)如何導(dǎo)出到matlab中
答:
1. 可以通過串口、千兆網(wǎng)等接口,傳送到電腦上;
2. 可以采用在線調(diào)試工具,如SIGNALTAP、CHIPSCOPE、VIVADO等,捕捉到信號,然后保存的方式得到數(shù)據(jù)。
【問題10】通常情況下rtl代碼module里面的輸入信號,值是哪里來的呢?
答:
1. 來源于其他模塊的輸出
2. 來源于FPGA外部的管腳,例如按鍵、其他芯片的輸出信號等
【問題11】if(counter<8)請問這句代碼是什么意思呢,按理來說/的優(yōu)先級高于左移運(yùn)算符呀?
答:不清楚它要表達(dá)的含義。串并轉(zhuǎn)換的方法,可以參考至簡設(shè)設(shè)計(jì)原理與應(yīng)用書籍, 串口案例。
FPGA至簡設(shè)計(jì)原理與應(yīng)用】書籍連載13 第三篇FPGA至簡設(shè)計(jì)項(xiàng)目實(shí)踐 第四章 串口通信
http://www.fpgabbs.cn/forum.php? ... 13&fromuid=9396
(出處: 明德?lián)P論壇)
【問題12】老師,怎么將信號實(shí)現(xiàn)準(zhǔn)確的ns級別的延時(shí)呢,有什么好思路嗎?[color=rgba(17, 31, 44, 0.56)]
答:正規(guī)的做法,就是采用寄存器打拍來延遲,精度為一個(gè)時(shí)鐘周期
【問題13】lvds和lvds_25有什么區(qū)別?
答:主要區(qū)別在于內(nèi)部buffer的供電電源情況,在電氣方面,兩者是等效的(參見數(shù)據(jù)手冊規(guī)格)但是內(nèi)部的I/O電路配置不同
【問題14】xilinx,spartan6的jtag引腳,tck,tms,tdi,tdo需要做上拉處理嗎?
答:這個(gè)是ALTERA EP4C的JTAG電路,僅供參考
【問題15】用FPGA輸出0->1或者1->0的信號,我現(xiàn)在想把上升沿或者下降沿的時(shí)間拉長到10ms左右,用FPGA的輸出管腳可以實(shí)現(xiàn)嗎?
答:FPGA直接輸出的數(shù)字信號,上升沿和下降沿都是很快就完成變化的。如果要控制變慢,其實(shí)就是輸出固定電平的信號,那么這個(gè)需要外置DAC來實(shí)現(xiàn)。
【問題16】我們的TFT顯示屏是工作在DE模式,是吧?
答:我們的案例默認(rèn)使用的是DE模式,如果需要非DE模式,可以手動修改底板硬件實(shí)現(xiàn)。
【問題17】很多的數(shù)字電子元件的引腳都是要求有明確的電平(0/1),但是有個(gè)別的器件引腳鏈接時(shí),可以處于懸空狀態(tài)
【但很多的教材上寫的 引腳不能懸空,因?yàn)榭赡軐?dǎo)致數(shù)字邏輯電路的狀態(tài)不確定】,這一點(diǎn)如何理解呢~?
答:對于這種引腳,需要去看對應(yīng)芯片的數(shù)據(jù)手冊,一般里面都會有介紹說明的。
【問題18】CPLD是沒有IP核可以使用嗎?
答:看要使用的ip核是什么類型,像RAM、FIFO等固有資源都是有IP核的
【問題19】實(shí)質(zhì)的時(shí)鐘周期與仿真時(shí)鐘周期有差別,這個(gè)差別會累積起來嗎?
答:仿真的時(shí)候使用的是理想時(shí)鐘,例如50M時(shí)鐘,在實(shí)質(zhì)的板上不可能完全等于50M的,一定有差別。
這種差別的積累,可能會對“總時(shí)間”有影響,例如計(jì)算1秒時(shí)鐘,那么就有可能有差別了。
但這種差別的積累,不會產(chǎn)生時(shí)序的混亂:因?yàn)镕PGA內(nèi),所有D觸發(fā)器,都是在一個(gè)時(shí)鐘周期內(nèi)計(jì)算完的,只要滿足時(shí)序要求,不關(guān)心實(shí)際頻率是多少,總之上升沿來就計(jì)算一次。
如不清楚,請仿真,嘗試用不同周期的時(shí)鐘來對同一個(gè)電路仿真。
【問題20】如果扇出很大,high fanout 到了4000多,要怎么優(yōu)化?
答: 扇出是指一個(gè)信號驅(qū)動了很多其他信號(即這個(gè)信號是其他很多信號的產(chǎn)生條件),F(xiàn)PGA對扇出數(shù)量有要求,不能扇出太多。
如果扇出太多了,該怎么優(yōu)化呢?現(xiàn)舉例如下:
假設(shè)信號A,驅(qū)動了信號BCDEFG,即扇出數(shù)為6。優(yōu)化思路是:讓A用寄存器分別產(chǎn)生信號A1和A2,再用A1驅(qū)動信號BCD,用A2驅(qū)動信號EFG。這樣扇出數(shù)減少為3。
【問題21】如果FPGA芯片沒有時(shí)鐘晶振,其他IO口是不是就不能輸入數(shù)據(jù)呀。晶振影響輸入數(shù)據(jù)不?
答:要看輸入是否需要時(shí)鐘。
例如:使用串口的時(shí)候,在電路上就接收和發(fā)送兩根線,沒有用到時(shí)鐘,所以晶振不影響。而攝像頭輸出圖像的時(shí)候,需要先給攝像頭一個(gè)時(shí)鐘,再進(jìn)行相關(guān)的配置,這時(shí)晶振就有影響。
【問題22】異步信號慢時(shí)鐘域采集到快時(shí)鐘域的方法有嗎?
答:1、使用FIFO進(jìn)行跨時(shí)鐘域處理
2、慢時(shí)鐘域的信號到快時(shí)鐘域,是可以被采集到的,跨時(shí)鐘域之后進(jìn)行打拍,使其同步化即可
【問題23】工程中經(jīng)常使用的sop表示第一個(gè)有效數(shù)據(jù)、eop表示最后一個(gè)有效數(shù)據(jù)、mty表示無效字節(jié)數(shù)等,這些都是那些單詞的縮寫?
答:習(xí)慣性引用了華為項(xiàng)目時(shí)的縮寫,具體不清楚。
溫馨提示:明德?lián)P除了培訓(xùn)學(xué)習(xí)還有元器件一站式配單業(yè)務(wù),人工服務(wù)的模式采購,采購**人員聯(lián)系方式:明德?lián)P元器件一站式配單服務(wù)咨詢:易老師13112063618(微信同號)
審核編輯:湯梓紅
-
FPGA
+關(guān)注
關(guān)注
1630文章
21796瀏覽量
605524 -
matlab
+關(guān)注
關(guān)注
185文章
2980瀏覽量
230882 -
DDR3
+關(guān)注
關(guān)注
2文章
276瀏覽量
42366 -
計(jì)數(shù)器
+關(guān)注
關(guān)注
32文章
2261瀏覽量
94923 -
DDS
+關(guān)注
關(guān)注
21文章
636瀏覽量
152885
發(fā)布評論請先 登錄
相關(guān)推薦
評論