FPGA内部结构
? ? ? ? FPGA實現功能的方式與其他芯片通過軟件實現方式有所不同,簡單的來說,它是通過高級語言來控制內部資源的分配來實現想要的功能,我們所編寫的語言知識將想要實現的功能描述出來,然后通過編輯器來轉換成芯片能夠識別的代碼,實現內部資源的布線,實現功能。
????????FPGA內部有很多可供用戶任意配置的資源,其中包括:可編程邏輯、可編程I/O、互連線、IP核等資源,很多學過數字電路的人都知道與或非門可以構成幾乎所有的數字電路,但是FPGA內部最基本的主要單元并不是這些與或非門,而是由無數個查找表 (Look Up Tabe,簡稱為LUT)和寄存器構成。
? ? ? ? ?上圖是在Vivado中查看的芯片內部資源情況,可以通過放大來實現查看內部資源情況,讓我們更好的學習,一片FPGA芯片中包含了數以萬計的LUT模塊,是功能實現的主力資源,下面圖中的一個一個小方格都是SLICE,每一個SLICE中包含了4個LUT與一些邏輯門。
? ? ? ? ?每兩個SLICE被包括在一個CLB中,SLICE有兩種類型,分別為SLICEL(L是指Logic)和SLICEM(M是指Memory),SLICEL和SLICEM的區別是,SLICEM中含有能夠把LUT資源重新整合為Ram和Rom的邏輯。
?
? ? ? ? ?在芯片的邊部包含了一些 I/O?的調節模塊,以及接收數據可能用到的FIFO(先進先出寄存器),PLL(鎖相環)等,在FIFO例化的時候可以將BLOCK RAM設置為FIFO,不會使用額外的CLB資源,并且這部分RAM是真雙口RAM。因為剛開始學習所以對一些內部資源并不是特別關心,主要理解FPGA內部的工作原理即可,剩下的活就交給編譯器來干。
? ? ? ? ?上面的圖中可以看到有不少顏色不一樣的部分,黃色的部分是被占用的部分,當一個程序綜合完成后,以Vivado為例,綜合之后能夠看到資源的占用情況,比如占用了多少LUT資源,多少I/O被占用等等。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 占用內部資源情況報告
? ? ? ? 對于新手來說,內部資源并不需要非常的了解,有很多的模塊只要會使用就行,還是那句話,這些事情留給編譯器來做就好,新手只需對內部的資源分配有一個簡單的了解,首先還是需要將語法等等實現熟記于心。
????????有錯誤期待大佬指正,因為我也是個新手可能邏輯并不是十分清晰,寫作不易點個贊走吧!!!?
?
?
總結
- 上一篇: Android开发百度地图指南针消失问题
- 下一篇: 关键字__rptr、__eptr、 __