FPGA 微控制器的區別?

時間 2021-05-30 16:28:54

1樓:一枚工程師

FPGA本體是一種數字積體電路,乙個可以通過程式設計來改變內部結構的晶元;顧名思義,微控制器就是在單個晶元中整合了計算機的所有資源,它適合實現電子產品的簡單程式設計控制。

2樓:kicker

聽過的乙個說法,感覺很到位:

FPGA是把指令鎖定在架構上,資料流在指令上面被處理;

而微控制器則是相反,把資料鎖定在架構上,指令在資料上面執行。

3樓:電子小C

開發環境、程式語言、晶元架構、電路組成,等等,都不一樣。

相同點是:都是電子器件,都可以程式設計來實現一些功能。

公尺聯客2020版FPGA入門經典課程

微控制器到底是個什麼東西

4樓:天易飛颺

一句話:FPGA是空白的晶元,程式設計後可以實現各種各樣的數位電路(功能與效能均可以遠超微控制器);微控制器是成品數位電路晶元,功能固定,效能有限。

5樓:梁維

STM32 微控制器是乙個 ARM的CPU 加上對應的輸入輸出和外設IP,通用的可程式設計處理器,開發主要是軟體工作,本質上和計算機是一回事。

FPGA 的程式設計,應該叫配置Configure,包含很多 LUT(用於實現組合邏輯和時序邏輯), BRAM和 DSP, 和可配置的互連線網,基於這些邏輯資源可以通過配置實現大多數數位電路(基於verilog語言所描述的),形象的理解就是一堆積木,你可以搭建出各種形狀的東西。

PID演算法控制用STM3基本上沒問題的。

6樓:逍遙

感覺都沒有說到點子上,fpga是硬體實現邏輯,就是給你一堆與或非門,通過編寫程式,讓這一堆與或非門組合實現邏輯功能,而微控制器,是內部已經被人寫好了暫存器,與或非門,外部通過組合語言轉換成機器語言,即二進位製碼,讓資料選擇器決定資料進行什麼樣的運算,通過堆疊與實體地址決定資料位置,進行綜合運算,求得輸出值~換句話說,FPGA在層次上也相對更加底層~~

7樓:Champion

個人覺得本質上FPGA解決的是頻寬和實時性問題。如果目前的STM32解決不了這個兩個問題,就換主頻高的,如果還解決不了,換DSP,如果還解決不了,嘗試FPGA吧。

用FPGA解決其他處理器解決不了的問題,是個正確的思路,因為FPGA的開發相對其他的處理器而言,開發難度大,周期長。

8樓:王傳鑫

FPGA就是一堆邏輯門啊,可以想象就是一堆74、CD堆一起啊。思維也和微控制器差遠了。我記著FPGA程式設計需要有狀態機的思維,這個和微控制器的順序程式設計是完全不同的。

9樓:ZWZ囧

微控制器多用來小規模的控制系統,高階微控制器其實就是arm,FPGA是程式設計化的硬體,可以通過編寫硬體描述語言vhdl或verilog等靈活實現各種功能電路

10樓:楊培文

在我看來,FPGA是一塊可以程式設計的電路板,比如我剛才用FPGA做了乙個74HC595,用十六個D觸發器實現的,你如果跑演算法,也得用各種加法器乘法器乙個個搭出來,如果演算法比較簡單,且並行程度比較高,可以用FPGA來實現,比如說影象處理,你可以將影象分割成許多小塊,然後同時進行運算。 遺傳演算法理論上也可以通過加法器乘法器實現染色體交叉,然後乙個設計出來了就可以同時跑幾百個甚至幾萬個。不過設計出這樣的東西難度比較大,相當於你造了乙個可以進行遺傳演算法計算的晶元,入門比較困難。

簡單一些的辦法就是,直接上GHz級別的CPU,比如樹莓派,底層仍然可以用STM32控制,複雜的演算法讓高速的CPU來做,然後串列埠傳回控制指令即可。

11樓:陸松

不要把微控制器跟FPGA分得這麼遠。

微控制器裡面的數位電路模組,基本上(或很多)也是用FPGA開發、驗證好,然後做成IC晶元的。

FPGA嵌入CPU核心,再加上一些數位電路模組功能,也能完成MCU的數位電路功能,再把設計檔案交給工廠,出來就是MCU晶元。

12樓:向晨

通常意義下,FPGA不是計算機,不是計算機,不是計算機,所以不要和微控制器這種計算機放在一起比較,FPGA是沒有CPU的,但是有人為加強FPGA的性(逼)能(格),可以給FPGA嵌入乙個CPU。。。。

所以,沒有CPU的FPGA採用數位電路模式的程式設計方式,因為程式沒法像有CPU的單片微型計算機那樣一條條執行機器碼。。。

而嵌有CPU的FPGA,其CPU上就可以用通常的彙編,C等真正計算機語言程式設計,,而沒有CPU的邏輯塊,還是用數位電路的方法。。。

可能大家通常意義上的程式設計都是用計算機程式設計,肯定是有CPU的,所以沒法理解沒有CPU是什麼概念,因為FPGA根本還不算乙個計算機,但是它是可以程式設計設計的,所以你沒法完全用計算機程式語言去程式設計理解

13樓:zjulixin

你要說不同,1:架構上面,FPGA一般由DCM、IOB、CLB等組成,現在的FPGA還包含各種IPCORE。MCU要麼是馮諾伊曼結構要麼是哈佛結構,從結構上來說差異巨大。

2. 應用上,差別更大。MCU最終所有的指令在乙個MCU中都是順序執行的,而FPGA由於是邏輯單元,很容易做到並行執行。

14樓:Riseyoung

fpga和微控制器不是衝突的關係。一方面對外設驅動可以通過如verilog的hdl進行驅動;而核心處理可以新增nios等軟核用c或cpp進行類微控制器的核心處理,這才是fpga強大之處。

15樓:

並行和序列的區別,並行可以看做鐘錶齒輪,最小的齒輪是時鐘,其他的齒輪都是在小齒輪帶動下運轉,序列可以看成流水線,做完一件事後做下一件

16樓:

首先結構上,微控制器是基於CPU的馮·諾依曼器件,FPGA是基於並行邏輯單元的器件。

相應的,微控制器的開發是對指令的程式設計,FPGA的開發是對邏輯單元的連線。FPGA要比微控制器底層很多,而且開發工具也要簡陋很多。

兩者的主要應用場合也是不一樣的。微控制器適合通用任務、通用運算、標準介面。FPGA適合一些極端任務,同時做100個串列埠收發器、用幾十個乘法器做演算法的終極改進等。

按照題主的需求——遺傳演算法PID控制——算是通用運算,顯然是用微控制器比較合適。

17樓:shane lan

FPGA、微控制器(如STM32)在做控制方面哪個更好?

這個要看控制什麼,以及要達到的控制效果。假如需要高速控制,快速反應(響應時間達到us, 甚至ns級別),fpga是首選。如果對這沒那麼高要求,用微控制器足矣。

還有乙個影響好壞的因素是開發時間。一般來說fpga的開發周期比微控制器長,特別是複雜演算法,比微控制器長得多。

18樓:

FPGA主要用於通訊、影象處理和晶元驗證領域,兩者的晶元結構有很大不同,FPGA更偏向於硬體電路,而微控制器更偏於軟體,無論是從成本上還是做控制肯定是微控制器要好,兩者的應用領域和擅長點大有不同。

19樓:黃飛

個人覺得這東西主要看成本,控制方面都可以實現。晶元速度夠不夠可以查手冊,根據你的要求去算。如果需要協議解析之類的,可以使用FPGA的軟核,比如說Xilinx的MicroBlaze,很方便。

還有就是最新的FPGA晶元運算速度較對應DSP還是不錯的,兩者分工不同罷了,話說N通道流水DSP搞不了啊。

20樓:Sean

同意樓上@Rex所說的「簡單的說FPGA是硬體程式設計,微控制器是軟體程式設計」。這是本質。

FPGA可以做並行運算,但靈活性差,因此最適合用做高速但重複性強的工作,用它管理高速外設是很不錯的選擇。

PID控制稍微接觸過一點,貌似運算量很大,但STM32應該也夠用了,所以建議用STM32做主控晶元,FPGA管理外圍裝置,兩者之間有資料交換即可。如果運算量很大,或者對實時性要求比較高,可以嘗試用運算能力更強的專用DSP晶元。

21樓:換個名字不知是誰

FPGA是現場可程式設計邏輯門陣列,微控制器是微控制器,兩者各有千秋,FPGA速度快,微控制器實現較為簡單。FPGA可以先從verilog語言學起,很容易入門,再繼續學習VHDL語言。開發板黑金的比較好,資料多。

FPGA和51微控制器互聯的應用有哪些?

Winston Hao 老實說我還真做過幾個微控制器配FPGA的專案。說的是配,不是擴充套件,請注意強調的用詞。這種搭配是用FPGA做了主要的資料採集,處理,直接輸出。資料是不過微控制器的,微控制器的角色僅用於進行流程控制和串列埠通訊與除錯。所以我把這種應用稱之為微控制器 配 FPGA,而不是微控制...

51微控制器,STM32,FPGA之間有什麼聯絡嗎?

AI電堂 51微控制器和STM32都是微控制器,是CPU型別的,FPGA是數位電路。微控制器偏軟體,FPGA偏硬體。FPGA的程式語言常用的有verilog VHDL,微控制器常用的是C語言。微控制器和FPGA之間有很大的不同,沒學過微控制器直接學FPGA是可以的。 碎碎思 這個問題得從幾個方面去比...

學習微控制器,?

製杖的兔砸 對於微控制器初學者來說,剛開始接觸微控制器的時候,其硬體的內部結構一般不需要知道的太細,甚至暫存器等一開始都不需要學,你首先應該完成的工作是能看懂程式,根據例程能明白各語句所執行的功能,以及各例程所實現的功能與實現方法,培養自己對微控制器的初步認知,培養自己關於微控制器的興趣愛好,從而獲...