全文 2031 字,閱讀大約需要 4 分鐘
第一臺(tái)真正意義上的自動(dòng)駕駛汽車(chē)最早可追溯至 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 (Field Programmable Gate Array),即現(xiàn)場(chǎng)可編程邏輯陣列。
現(xiàn)場(chǎng)可編程邏輯門(mén)陣列(Field Programmable Gate Array,縮寫(xiě)為FPGA),它以PAL、GAL、CPLD等可編程邏輯器件為技術(shù)基礎(chǔ)發(fā)展而成。作為特殊應(yīng)用集成電路中的一種半定制電路,它既彌補(bǔ)全定制電路不足,又克服原有可編程邏輯控制器邏輯門(mén)數(shù)有限的缺點(diǎn)。
圖: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ǔ)言開(kāi)發(fā),F(xiàn)PGA 的開(kāi)發(fā)過(guò)程更為繁瑣,盡管 FPGA 也有 Verilog/VHDL 這樣的代碼語(yǔ)言去描述和定義邏輯功能,但 Verilog/VHDL 是硬件描述語(yǔ)言,跟 C/C++ 不同的是,經(jīng)過(guò)后續(xù)的綜合以后,可以直接生成對(duì)應(yīng)的電路。
FPGA 的開(kāi)發(fā)流程主要包括 7 個(gè)部分,如下圖所示:
圖:FPGA 開(kāi)發(fā)流程
下面簡(jiǎn)要聊聊各個(gè)部分的作用(敲重點(diǎn)!)
我們可以看到,F(xiàn)PGA 的開(kāi)發(fā)過(guò)程是非常折騰的,通過(guò) RTL 級(jí)仿真、綜合后仿真、時(shí)序仿真三大仿真實(shí)現(xiàn)從邏輯到門(mén)電路時(shí)延的反饋和調(diào)整,好在大部分工作都由 EDA 軟件工具幫我們完成了,實(shí)際上,在大部分開(kāi)發(fā)中,整個(gè)流程中最核心的還是前兩部分,Verilog/VHDL 代碼和RTL 級(jí)仿真。
FPGA 的仿真工具有很多,但由于 FPGA 芯片本身專(zhuān)利問(wèn)題及制造的差異性,基本上某一具體型號(hào) FPGA 芯片的開(kāi)發(fā)工具和該器件廠(chǎng)商是綁定的,不像 ARM 這種嵌入式通用處理器有更加完善和通用的開(kāi)發(fā)工具鏈。當(dāng)然,對(duì)于一般 Verilog/VHDL 的 RTL 級(jí)層面仿真,不涉及具體的芯片型號(hào),市面上的仿真工具都可以使用,常見(jiàn)的如大牌廠(chǎng)商 Altera(現(xiàn)已被 Intel 收購(gòu))家的 Quartus,Xilinx 家的 Vivado,Mentor Graphics 家的 ModelSim,Cadence 家的 NCSim,開(kāi)源的 Icarus Verilog 以及一些國(guó)產(chǎn)方案等。
注:本文用到的所有軟件相關(guān)參考鏈接都會(huì)附在文末
工具 | 廠(chǎng)商 | 說(shuō)明 |
Quartus | Altera | |
Vivado | Xilinx | |
ModelSim | Mentor Graphics | PE、DE、SE 三個(gè)版本,非常流行 |
NCSim | Cadence | Incisive 工具套件,用于 ASIC 設(shè)計(jì) |
Icarus Verilog | GNU GPL | 開(kāi)源、輕量 |
TangDynasty | 上海安陸科技 | 國(guó)產(chǎn)廠(chǎng)商 |
Pango Design Suite | 紫光同創(chuàng)(深圳) | 國(guó)產(chǎn)廠(chǎng)商 |
procise | 復(fù)旦微(上海) | 國(guó)產(chǎn)廠(chǎng)商 |
Altera 和 Xilinx 家的 FPGA 是市場(chǎng)占有率最高的,涵蓋了 FPGA 設(shè)計(jì)的整個(gè)流程,ModelSim 是 FPGA 仿真最受歡迎的軟件,非常流行, Icarus Verilog 支持 GPL 協(xié)議,開(kāi)源免費(fèi)且輕量,也是 FPGA 開(kāi)發(fā)中 RTL 級(jí)仿真值得使用的軟件,搭配 GTKwave,出仿真圖非常方便,功能強(qiáng)大。
本文簡(jiǎn)單介紹了 FPGA 開(kāi)發(fā)的基本流程和常見(jiàn)的仿真工具,太長(zhǎng)時(shí)間沒(méi)更新了所以趕緊水一篇。
開(kāi)設(shè) FPGA 專(zhuān)題咯,就當(dāng)作 FPGA 專(zhuān)題的開(kāi)篇吧!
文中涉及 FPGA 軟件工具參考網(wǎng)站:
Icarus Verilog — Icarus Verilog documentation (steveicarus.github.io)
TangDynasty(TD)-開(kāi)發(fā)軟件-國(guó)產(chǎn)FPGA創(chuàng)新者 - 安路科技 (anlogic.com)
歡迎光臨 (http://www.zg4o1577.cn/bbs/) | Powered by Discuz! X3.1 |