很多人不清楚FPGA和單片機的區別有哪些,這里小編整理了一下,從幾個角度對FPGA和單片機的區別進行說明,希望對大家有所幫助。
FPGA和單片機在概念上的區別
單片機是什么?單片機可以簡單理解為集成在單一芯片上的微型計算機,也有運算器、控制器、存儲器、總線及輸入輸出設備,采用也是存儲程序執行的方式,對單片機的編程就是對其中的ROM寫入程序,在加電后ROM中的程序會像計算機內存中的程序一樣得到逐條的執行。
單片機有很強的接口性能,非常適合于工業控制,因此又叫微控制器(MCU) 。
FPGA是什么?FPGA則是操控層次更低,所以自由度更大的芯片,對FPGA的編程在編譯后是轉化為FPGA內的連線表,相當于FPGA內提供了大量的與非門、或非門、觸發器(可以用與非門形成吧)等基本數字器件,編程決定了有多少器件被使用以及它們之間的連接。只要FPGA規模夠大,這些數字器件理論上能形成一切數字系統,包括單片機甚至CPU。
FPGA是作為專用集成電路(ASIC)領域中的一種半定制電路而出現的,既解決了定制電路的不足,又克服了原有可編程器件門電路數有限的缺點。
FPGA和單片機在結構上的區別
單片機是一種微處理器,類似于電腦CPU的,它一般采用的是哈佛總線結構,或者馮諾依曼結構,對單片機的編程很大程度上要考慮到它的結構和各個寄存器的作用,單片機用途比較廣,一般用在控制流水線上,還有日 常你看得到的東西上!
FPGA 它的結構是查找表結構,其程序不用去太考慮芯片的結構,要注意的是時序上問題,它的結構比較復雜,功能也很強大,一般應用在通信領域等比較高端的場合,目前在FPGA還算是一個新興的行業,當然它的價格也要比單片機貴得多!
單片機是一個微控制器,通過加載模塊軟件來實現某種功能,單片機是成型的芯片;FPGA是用來設計芯片的芯片。
FPGA和單片機速度上的區別
FPGA由于是硬件電路,運行速度直接取決于晶振速度,系統穩定,特別適合高速接口電路。單片機由于是單線程,哪怕是常用的M3系列流水線也是單線程執行,程序語句需要等待單片機周期才能執行。
單片機和FPGA的本質區別
FPGA和單片機的區別,本質上是軟件和硬件的區別,FPGA更偏向于硬件電路,而單片機更偏于軟件。
單片機設計屬軟件范疇;它的硬件(單片機芯片)是固定的,通過軟件編程語言描述軟件指令在硬件芯片上的執行;
FPGA設計屬硬件范疇,它的硬件(FPGA)是可編程的,是一個通過硬件描述語言在FPGA芯片上自定義集成電路的過程;
FPGA和單片機的入門難易程度
單片機比FPGA簡單些,價格也低一些。要做PID算法控制的用單片機可以,STM32F4系列已經到300M+跑PID完全足夠,如果是跑嵌入式的話可以上ARM芯片。涉及通信、圖像等高速部分可以采用單FPGA模塊。