FPGA研發(fā)之道(7)架構(gòu)設(shè)計(jì)漫談(二)穩(wěn)定壓倒一切
敏捷開發(fā)宣言中,有一條定律是“可以工作的軟件勝過面面俱到的文檔”。如何定義可可以工作的,這就是需求確定后架構(gòu)設(shè)計(jì)的首要問題。而大部分看這句話的同志更喜歡后半句,用于作為不寫文檔的借口。
本文引用地址:http://cafeforensic.com/article/264350.htmFPGA的架構(gòu)設(shè)計(jì)最首先可以確定就是外接接口,就像以前說的,穩(wěn)定可靠的接口是成功的一半。接口的選擇需要考慮幾個(gè)問題。
1, 有無外部成熟IP。一般來說,ALTERA和XILINX都提供大量的接口IP,采用這些IP能夠提升研發(fā)進(jìn)度,但不同IP在不同FPGA上需要不同license,這個(gè)需要通過代理商來獲得(中國國情,軟件是不賣錢的)。
2, 自研接口IP,能否滿足時(shí)間、進(jìn)度、穩(wěn)定性、及兼容性的要求。
案例1設(shè)計(jì)一個(gè)網(wǎng)絡(luò)接口在邏輯設(shè)計(jì)上相對簡單,比如MII接口等同于4bit數(shù)據(jù)線的25MHZ樣,而RGMII可以使用雙沿125Mhz的采樣專用的雙沿采樣寄存器完成(使用寄存器原語)。但是如何支持與不同PHY連接一個(gè)兼容性問題(所謂設(shè)計(jì)挑PHY的問題,這個(gè)問題后面詳述)。
案例2:CPU通過接口連接FPGA時(shí),如果CPU此時(shí)軟復(fù)位,則有管腳會上拉,此時(shí)如果該管腳連接FPGA接口是控制信號且控制信號高電平有效,則此時(shí)FPGA邏輯必然出錯(cuò)。同樣FPGA在配置時(shí),管教輸出高阻,如此時(shí)CPU上電且板級電路管腳上拉,則同樣會導(dǎo)致CPU采樣出錯(cuò)(誤操作的問題)。
不能只是考慮編寫verilog代碼仿真能對就行,接口設(shè)計(jì)應(yīng)該站在系統(tǒng)的角度來看問題,問題不是孤立的,還是互相聯(lián)系。
設(shè)計(jì)中,如果需要存儲大量數(shù)據(jù),就需要在外部設(shè)計(jì)外部存儲器,這是因?yàn)镕PGA內(nèi)部RAM的數(shù)量是有限的。是采用SRAM、DDR2、DDR3。這就需要綜合考慮存儲數(shù)據(jù)大大小,因?yàn)镾RAM的容量也有限,但是其接口簡單,實(shí)現(xiàn)簡單方便,且讀取延時(shí)較小。DDR2、DDR3的容量較大,接口復(fù)雜,但FPGA內(nèi)部有成熟IP可用,但是讀取的延時(shí)較大,從發(fā)起讀信號到讀回?cái)?shù)據(jù)一般在十幾個(gè)時(shí)鐘周期以上。如果對數(shù)據(jù)時(shí)延有要求,需要上一次存儲數(shù)據(jù)作為下一次使用,且數(shù)據(jù)量不太大(幾百K到幾兆),則SRAM是較好的選擇。而其他方面DDR2/DDR3是較好的選擇。為什么不用SDRAM或者DDR。這是因?yàn)樵O(shè)計(jì)完畢,采購會告訴你,市場上這樣老的芯片基本都停產(chǎn)了。
FPGA接口在設(shè)計(jì)選擇的原則就是:能力夠用,簡單易用。特別值得一提的是高速SERDES接口,最好使用廠商給的參考設(shè)計(jì),有硬核則不選擇軟核,測試穩(wěn)定后,一定要專門的位置約束,避免后面添加的邏輯擁擠后影響到接口時(shí)序,也可避免接口設(shè)計(jì)人員與最終的邏輯設(shè)計(jì)人員扯皮(不添加過多邏輯,接口是好用的)。一個(gè)分析高速SERDES的示波器,采樣頻率至少20G甚至更高以上,動輒上百萬,出現(xiàn)問題,不一定有硬件條件可調(diào)試。
回到開頭,如何定義“可用的”設(shè)計(jì),穩(wěn)定我想是前提,而接口的穩(wěn)定性更是前提的前提。這里穩(wěn)定包括,滿負(fù)荷邊界測試,量產(chǎn)、環(huán)境試驗(yàn)等一系列穩(wěn)定可靠。而在架構(gòu)設(shè)計(jì)中,就選擇成熟的接口,能有效的避免后續(xù)流程中的問題,從源頭保證產(chǎn)品的質(zhì)量。
fpga相關(guān)文章:fpga是什么
汽車防盜機(jī)相關(guān)文章:汽車防盜機(jī)原理 頻譜分析儀相關(guān)文章:頻譜分析儀原理
評論