本帖最后由 電子愛(ài)好者沒(méi)錯(cuò) 于 2023-8-22 20:07 編輯
FPGA 開發(fā)專題 | 初識(shí) FPGA 開發(fā)流程和仿真工具
目錄:
- 一、FPGA 開發(fā)流程
- 二、FPGA 仿真工具
- 三、開設(shè) FPGA 專題咯D:\Xzhao\Documents\OfficialAccounts\Article\2023.07.01\photos\Apolong_at_Shougang_Jiaohuachang_(20230322140939).jpg
sss.jpg (3.1 MB, 下載次數(shù): 11)
下載附件
2023-8-22 12:04 上傳
圖:北京首鋼園內(nèi)的無(wú)人駕駛小巴士
全文 2031 字,閱讀大約需要 4 分鐘
第一臺(tái)真正意義上的自動(dòng)駕駛汽車最早可追溯至 1980 年代,隨著近年來(lái)人工智能和新型傳感器(硬件)的快速發(fā)展,自動(dòng)駕駛相關(guān)行業(yè)迅速進(jìn)入紅海。盡管相關(guān)技術(shù)已經(jīng)逐步趨于成熟,但如何更快地識(shí)別路況、提高系統(tǒng)判別實(shí)時(shí)性一直是學(xué)術(shù)界和工業(yè)界追求的目標(biāo)。 FPGA 作為一種半定制化電路,具有 ASCII 芯片所沒(méi)有的可編程的靈活性,又具有一般 CPU 所不具備的硬件層并行數(shù)據(jù)處理的優(yōu)勢(shì),廣泛用于圖像處理、機(jī)器視覺(jué)、無(wú)人駕駛等領(lǐng)域。在某種程度上,F(xiàn)PGA 可兼顧人工智能的大量計(jì)算需求和工業(yè)應(yīng)用中低延時(shí)的要求。從前幾年神經(jīng)網(wǎng)絡(luò)軟件算法的爆火到近些年來(lái) “用 FPGA 加速神經(jīng)網(wǎng)絡(luò) ” 逐漸火出圈,讓我們看到了技術(shù)發(fā)展自上而下的革新,從軟件到硬件,從高層抽象到底層電路,硬件的天花板作用越發(fā)彰顯。
本文首發(fā)于在下石同學(xué) 未經(jīng)授權(quán) 不得轉(zhuǎn)載
文 | 在下石同學(xué)
一、FPGA 開發(fā)流程 FPGA (Field Programmable Gate Array),即現(xiàn)場(chǎng)可編程邏輯陣列。
現(xiàn)場(chǎng)可編程邏輯門陣列(Field Programmable Gate Array,縮寫為FPGA),它以PAL、GAL、CPLD等可編程邏輯器件為技術(shù)基礎(chǔ)發(fā)展而成。作為特殊應(yīng)用集成電路中的一種半定制電路,它既彌補(bǔ)全定制電路不足,又克服原有可編程邏輯控制器邏輯門數(shù)有限的缺點(diǎn)。
TE0720-03-2IF_1.jpg (1.23 MB, 下載次數(shù): 18)
下載附件
2023-8-22 11:38 上傳
圖:ZYNQ-7020 核心板
FPGA 作為一種半定制化電路,具有 ASCII 芯片所沒(méi)有的可編程的靈活性,又具有一般 CPU 所不具備的硬件層并行數(shù)據(jù)處理的優(yōu)勢(shì),廣泛用于圖像處理、機(jī)器視覺(jué)、無(wú)人駕駛等領(lǐng)域。在某種程度上,F(xiàn)PGA 可兼顧人工智能的大量計(jì)算需求和工業(yè)應(yīng)用中低延時(shí)的要求。從前幾年神經(jīng)網(wǎng)絡(luò)軟件算法的爆火到近些年來(lái) “用 FPGA 加速神經(jīng)網(wǎng)絡(luò) ” 逐漸火出圈,讓我們看到了技術(shù)發(fā)展自上而下的革新,從軟件到硬件,從高層抽象到底層電路,硬件的天花板作用越發(fā)彰顯。
相對(duì)于一般編程語(yǔ)言開發(fā),F(xiàn)PGA 的開發(fā)過(guò)程更為繁瑣,盡管 FPGA 也有 Verilog/VHDL 這樣的代碼語(yǔ)言去描述和定義邏輯功能,但 Verilog/VHDL 是硬件描述語(yǔ)言,跟 C/C++ 不同的是,經(jīng)過(guò)后續(xù)的綜合以后,可以直接生成對(duì)應(yīng)的電路。 FPGA 的開發(fā)流程主要包括 7 個(gè)部分,如下圖所示:
Snipaste_2023-07-02_11-34-37.png (2.47 MB, 下載次數(shù): 17)
下載附件
2023-8-22 11:37 上傳
圖:FPGA 開發(fā)流程 下面簡(jiǎn)要聊聊各個(gè)部分的作用(敲重點(diǎn)!)
- Verilog/VHDL 代碼:我們使用硬件描述語(yǔ)言去編寫對(duì)應(yīng)的電路模塊,實(shí)現(xiàn)邏輯功能,這部分是整個(gè)設(shè)計(jì)中占比最大的一環(huán)
- RTL 級(jí)仿真:這部分是功能仿真,類似于 C/C++ 開發(fā)中的 debug 功能,我們需要對(duì)寫好的 Verilog/VHDL 代碼進(jìn)行測(cè)試和檢查,以驗(yàn)證我們的功能模塊沒(méi)有出現(xiàn)邏輯錯(cuò)誤,一般會(huì)編寫 Testbench 代碼并編譯生成波形文件,通過(guò)波形文件就可以判斷邏輯功能是否有誤
- 邏輯綜合優(yōu)化:綜合是將上述過(guò)程中較為高級(jí)的硬件描述語(yǔ)言轉(zhuǎn)化為更為底層的實(shí)現(xiàn),最終編譯成由與/或/非門、RAM、觸發(fā)器等基本邏輯單元組成的網(wǎng)表,但并不代表真實(shí)的門電路
- 綜合后仿真:只考慮邏輯和功能的實(shí)現(xiàn)是不嚴(yán)謹(jǐn)?shù)模瑢?shí)際上真實(shí)門電路的信號(hào)傳輸一定伴隨著延時(shí),會(huì)導(dǎo)致各種競(jìng)爭(zhēng)冒險(xiǎn)和時(shí)序紊亂的現(xiàn)象發(fā)生,這部分會(huì)把標(biāo)準(zhǔn)的延時(shí)參數(shù)送入仿真模型中二次核驗(yàn),更加貼近真實(shí)情況
- 實(shí)現(xiàn)與布局布線:通過(guò)以上過(guò)程已經(jīng)得到了電路的網(wǎng)表,實(shí)現(xiàn)和布局布線的過(guò)程就是把網(wǎng)表配置到具體的 FPGA 芯片中
- 時(shí)序仿真:也稱為后仿真,時(shí)序仿真把上一步布局布線的延時(shí)都考慮進(jìn)去,并標(biāo)注到網(wǎng)表中,是芯片延時(shí)信息的最真實(shí)、最準(zhǔn)確的反映
- 板級(jí)仿真與驗(yàn)證:一般用于高速信號(hào),對(duì)信號(hào)完整性等進(jìn)行綜合分析
我們可以看到,F(xiàn)PGA 的開發(fā)過(guò)程是非常折騰的,通過(guò) RTL 級(jí)仿真、綜合后仿真、時(shí)序仿真三大仿真實(shí)現(xiàn)從邏輯到門電路時(shí)延的反饋和調(diào)整,好在大部分工作都由 EDA 軟件工具幫我們完成了,實(shí)際上,在大部分開發(fā)中,整個(gè)流程中最核心的還是前兩部分,Verilog/VHDL 代碼和RTL 級(jí)仿真。
二、FPGA 仿真工具 FPGA 的仿真工具有很多,但由于 FPGA 芯片本身專利問(wèn)題及制造的差異性,基本上某一具體型號(hào) FPGA 芯片的開發(fā)工具和該器件廠商是綁定的,不像 ARM 這種嵌入式通用處理器有更加完善和通用的開發(fā)工具鏈。當(dāng)然,對(duì)于一般 Verilog/VHDL 的 RTL 級(jí)層面仿真,不涉及具體的芯片型號(hào),市面上的仿真工具都可以使用,常見的如大牌廠商 Altera(現(xiàn)已被 Intel 收購(gòu))家的 Quartus,Xilinx 家的 Vivado,Mentor Graphics 家的 ModelSim,Cadence 家的 NCSim,開源的 Icarus Verilog 以及一些國(guó)產(chǎn)方案等。
注:本文用到的所有軟件相關(guān)參考鏈接都會(huì)附在文末 工具 | 廠商 | 說(shuō)明 | Quartus | Altera |
| Vivado | Xilinx |
| ModelSim | Mentor Graphics | PE、DE、SE 三個(gè)版本,非常流行 | NCSim | Cadence | Incisive 工具套件,用于 ASIC 設(shè)計(jì) | Icarus Verilog | GNU GPL | 開源、輕量 | TangDynasty | 上海安陸科技 | 國(guó)產(chǎn)廠商 | Pango Design Suite | 紫光同創(chuàng)(深圳) | 國(guó)產(chǎn)廠商 | procise | 復(fù)旦微(上海) | 國(guó)產(chǎn)廠商 |
Altera 和 Xilinx 家的 FPGA 是市場(chǎng)占有率最高的,涵蓋了 FPGA 設(shè)計(jì)的整個(gè)流程,ModelSim 是 FPGA 仿真最受歡迎的軟件,非常流行, Icarus Verilog 支持 GPL 協(xié)議,開源免費(fèi)且輕量,也是 FPGA 開發(fā)中 RTL 級(jí)仿真值得使用的軟件,搭配 GTKwave,出仿真圖非常方便,功能強(qiáng)大。
三、開設(shè) FPGA 專題咯 本文簡(jiǎn)單介紹了 FPGA 開發(fā)的基本流程和常見的仿真工具,太長(zhǎng)時(shí)間沒(méi)更新了所以趕緊水一篇。 開設(shè) FPGA 專題咯,就當(dāng)作 FPGA 專題的開篇吧!
電荷式比心.png (219.62 KB, 下載次數(shù): 23)
下載附件
2023-8-22 12:09 上傳
文中涉及 FPGA 軟件工具參考網(wǎng)站:
除了在51黑電子論壇發(fā)帖,大家也可以關(guān)注我的微信公眾號(hào):在下石同學(xué)
讓技術(shù)有深度,讓科普有溫度~ 旨在分享電子電路、嵌入式、編程相關(guān)的筆記和教程,包括:電子電路設(shè)計(jì)、PCB設(shè)計(jì)、通信協(xié)議、嵌入式編程等。還會(huì)不定期分享有趣好玩的開源項(xiàng)目 平時(shí)學(xué)習(xí)工作很忙,偶爾鴿一下~ 會(huì)堅(jiān)持更新的!
微信掃碼可以關(guān)注我的公眾號(hào)(哈哈純技術(shù)分享,不存在任何打廣告行為,放心食用):
Snipaste_2023-08-22_19-56-41.png (1.92 MB, 下載次數(shù): 16)
下載附件
2023-8-22 20:06 上傳
|