首先開門見山的回答這個問題——LUT的作用是 實現所有的邏輯函數 ,也就是類似于計算Y=A&B+C+D之類的算式結果!
LUT是什么構成的?
xilinx的LUT是4輸入1輸出的 RAM ,也就是4根地址線的,一根數據線的RAM,并且I1是高地址位,I4是低地址位,樣子參考下圖。I1到I4就是地址線,O是輸出數據線。
RAM怎么實現邏輯運算?
假設要實現運算Y=A&B+C+D。假設I1代表A,I2代表B,I3代表C,I4代表D,O代表Y。此時將下表存入LUT中。從下表可以看出,LUT存儲的就是函數Y=A&B+C+D的真值表。 **4個輸入信號的地址對應的位置上存儲的就是4個地址進行邏輯運算后的真值!** 這樣任何4輸入的所有邏輯運算都可以通過存取真值表的方法實現。一旦輸入地址中的任何一個數,立馬就會輸出存儲位置上對應的結果。
verilog怎么實現上面的函數呢?
reg Y;
reg [3:0] I ;
always@(*)begin Y=(I[0] & I1) | I2 | I3;end
請注意( )里面是 ,代表不需要時鐘,實現的是組合邏輯。如果最后一行變成如下:
always@(posedge clk)begin Y=(I[0] & I1) | I2 | I3;end
則生成的不是一個LUT是一個LUT加一個觸發器FF。如下圖。
-
RAM
+關注
關注
8文章
1367瀏覽量
114530 -
觸發器
+關注
關注
14文章
1996瀏覽量
61051 -
LUT
+關注
關注
0文章
49瀏覽量
12482 -
FPGA系統
+關注
關注
0文章
10瀏覽量
7028 -
Verilog語言
+關注
關注
0文章
113瀏覽量
8213
發布評論請先 登錄
相關推薦
評論