大家好,我是小小的電子之路,這是我的第44篇原創文章,很高興與大家一起分享~
原文出自微信公眾號【小小的電子之路】
FPGA的全稱為Field Programmable Gate Array,即現場可編程門陣列,屬于可編程邏輯器件,其中,基本可編程邏輯單元是可編程邏輯的主體,可以根據設計靈活地改變其內部連接與配置,完成不同的邏輯功能。FPGA的基本可編程邏輯單元一般都采用了基于SRAM的查找表結構,查找表(LUT,Look Up Table)一般為四輸入,用于完成組合邏輯功能。
下圖是四輸入查找表的基本結構,核心元件為二選一多路選擇器,四個輸入通過控制二選一多路選擇器的狀態實現所需結果的輸出。
接下來通過一個簡單的運算來演示一下FPGA是如何利用LUT實現組合邏輯功能的。假設需要實現的組合邏輯功能為A&B&C&D,該邏輯功能的實現可分為三步,分別是求解真值表、數據下載、數據輸出。
1、求解真值表
在代碼編譯的過程中,FPGA會根據所需實現的邏輯功能求解出對應的真值表。
2、數據下載
在代碼下載的過程中,真值表中的數據會下載至LUT對應的SRAM中。
3、數據輸出
在代碼運行的過程中,四個輸入通過控制二選一多路選擇器的選通狀態來輸出不同的數據。
在本例中,當且僅當四個輸入A、B、C、D均為1時,LUT才會輸出bit0中的數據,即輸出1,在其它輸入組合下,LUT會輸出其它位的數據,但都為0,實現了A&B&C&D的組合邏輯功能。