組合邏輯LUT和時序邏輯REG

2021-08-15 22:09:55 字數 2044 閱讀 4411

lut(look-up-table):查詢表。 

lut本質上就是乙個ram。它把資料事先寫入ram後, 

每當輸入乙個訊號就等於輸入乙個位址進行查表,找出位址對應的內容,然後輸出。

latch :就是鎖存器。由電平觸發,非同步控制。在使能訊號有效時latch相當於通路,在使能訊號無效時latch保持輸出狀態。

lut和latch 他們的共同點是:均屬於組合邏輯(和時鐘沒有半點關係)。

不同點是:lut是fpga最小單元的組成結構,而latch不是。

說道latch就不得不提到ff,ff(flip flop):觸發器。

那麼dff就是,眾所周知的d類觸發器。它是邊沿觸發的,歸為時序邏輯。

他和reg又有著什麼關係呢?reg就是由dff組成的。乙個8位的暫存器,就是用了8個同步的d觸發器。

一般乙個fpga最小單元就會包含多個lut和多個reg,且reg的個數多於lut。(這個以後再具體分析)

關係都找出來了,我們來做些實驗,看看下列**都能綜合出什麼東西:

實驗1:

實驗2:

實驗3:

總結:1、always (*)或者 assign 綜合出的就是lut構建的東西,可認為就是lut。

2、在always (*)的情況下,如果if 或者cace 不完整的話,會綜合出latch,導致不穩定。

3、在always (posedge clk)的情況下,綜合出的是reg,即使if,或者case不完整,也不會綜合出latch。

4、不要用latch作為模組名,會報錯,這個名字已經被quartus占用了。

大家可能會說,並沒有看到lut,我們知道lut就是查詢表,去technology map viewer,去看看: 

就知道rtl那些  「梯形的選擇器」 ,其實就是由lut構成的!!

梯形選擇器,類似於:

一句話點題:

萬能查表法再加上暫存器就保證了快速運算邏輯,這就是fpga!

技術討論歡迎**~~

電子技術協會   362584474

組合邏輯和時序邏輯

組合邏輯和時序邏輯 一 組合邏輯 always 敏感訊號 或者always 組合邏輯相當於組合電路,與或非門組成的電路,其輸出只與當前狀態有關,與其他輸入狀態的函式無關,不涉及訊號跳變處理 組合邏輯競爭冒險 只要輸入訊號同時變化,組合邏輯就必然產生毛刺 二 時序邏輯 always 跳變時鐘 是時序電...

組合邏輯和時序邏輯

根據邏輯電路的不同特點,數位電路可以分為 組合邏輯和時序邏輯。1 組合邏輯 組合邏輯的特點是任意時刻的輸出僅僅取決於該時刻的輸入,與電路原本的狀態無關,邏輯中不牽涉跳變沿訊號的處理,組合邏輯的verilog描述方式有兩種 1 always 電平敏感訊號列表 always模組的敏感列表為所有判斷條件訊...

組合邏輯與時序邏輯

組合邏輯 輸出只是當前輸入邏輯電平的函式 有延時 與電路的原始狀態無關。當前電路輸入訊號任何乙個發生改變,輸出都將發生改變。時序邏輯 輸出不僅是當前輸入電平的函式,還與目前電路的狀態有關。若controlswitch為1,則輸出in訊號,否則輸出0。inout 7 0 bus 定義匯流排wire a...