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