題:
鎖存器和触發器之間的區別?
Ankur Trapasiya
2011-11-06 18:16:31 UTC
view on stackexchange narkive permalink

鎖存器和触發器之間有什麼區別?

我在想的是,鎖存器等效於觸發器,因為它用於存儲位並且也等效於一個也用於存儲數據的寄存器。但是在閱讀了互聯網上的一些文章之後,我發現基於邊沿觸發和電平敏感功能的鎖存器和触發器之間存在差異?

這是什麼意思?觸發器是否與鎖存器相同?

九 答案:
Rick_2047
2011-11-06 18:53:26 UTC
view on stackexchange narkive permalink

基本區別是門控或時鐘機制。例如,讓我們談談SR鎖存器和SR觸發器。

SR鎖存器看起來像這樣

SR Latch using NAND gates

如果將S設置為有效,則輸出Q將為高,而Q'將為低。這無關緊要。 (這是一個低電平有效電路,因此這裡的低電平有效意味著低電平,而對於高電平有效的高電平有效則意味著高電平)

SR觸發器(也稱為門控或時鐘SR鎖存器)如下所示。

enter image description here

在此電路中,僅當您提供有效的時鐘信號時,才更改輸出(即,更改存儲的數據)。否則,即使S或R處於活動狀態,數據也不會更改。該機制用於使電路和寄存器同步,從而不會不必要地更改數據。

所以我能得出結論,鎖存器是電平觸發的,而觸發器是邊緣觸發的?
閂鎖根本不會觸發。一旦輸入,就會得到鎖存器中的輸出。觸發器被觸發,就像我必須給一個時鐘觸發器以將我的輸入轉換成輸出一樣。
那不是SR觸發器。那是一個門控SR鎖存器。該電路的建立和保持時間將與具有“啟用透明”引腳的任何其他鎖存器一樣起作用。觸發器是主從配置。只需考慮使用此鎖存器從一個週期到另一個週期。你不能。您將需要兩個具有相反相位時鐘的鎖存器(因此需要一個觸發器)
jbord39
2016-11-18 02:58:02 UTC
view on stackexchange narkive permalink

一個觸發器是由兩個具有相反極性時鐘的背對背鎖存器構成的,從而形成一個主從拓撲。

鎖存器的類型與此約束無關(JK,SR,D,T),但是透明性由某個引腳(稱為時鐘或啟用或任何您喜歡的引腳)控制是很重要的。

SR鎖存器使每個人都陷入循環,因為最基本的設計始終是透明的。因此,一旦添加了時鐘使能,人們便開始將其稱為觸發器。好吧,不是。它是一個門鎖。但是,您可以從兩個門控SR鎖存器中構建一個SR觸發器:

true SR flip flop

或兩個JK鎖存器:

true jk ff

或兩個D鎖存器: enter image description here

將時鐘引腳添加到鎖存器(SR或JK)並不會使其成為觸發器,而是使其成為門控鎖存器。將時鐘脈動到門鎖存器也不會使其成為觸發器。使其成為脈衝鎖存器(脈衝鎖存器描述)。

觸發器是邊沿觸發的,建立和保持時間均相對於該有效邊沿。傳統的觸發器不允許任何時間借用循環邊界,因為主從拓撲結構就像鎖死系統一樣,在活動時鐘處產生硬邊沿。

另一方面,將閂鎖設置為閂鎖的透明度,並按住直到閂鎖關閉。他們還允許在整個透明階段中藉用時間。這意味著如果一個半週期路徑較慢而另一半週期路徑較快;採用基於閂鎖的設計,慢速路徑可以將時間借入快速路徑週期。

當您需要從路徑中擠出每一皮秒的時間時,一個非常常見的設計技巧是將觸發器分開(分成兩個單獨的鎖存器)並在它們之間進行邏輯運算。

基本上,鎖存器和触發器的建立和保持時間完全不同;在如何處理循環邊界方面。如果您進行任何基於閂鎖的設計,則這一區別很重要。很多人(甚至在此站點上)也會將兩者混為一談。但是一旦您開始對它們進行計時,它們之間的差異就會變得清晰起來。

另請參閱:

描述閂鎖和触發器的好文字

什麼是觸發器?

編輯:

僅顯示了基於t門的D觸發器(請注意,它是由兩個具有相反相位時鐘的背靠背t門D鎖存器構建的。)

t-gate based d ff

嗨,jb想要舊的複興徽章嗎?在我的書中,“鎖存器”是異步存儲器寄存器,而“觸發器”是同步存儲器寄存器,有些具有稱為“設置/復位”的異步功能。實際上,所有同步操作都是邊沿敏感的。
@TonyStewart.EEsince'75:嘿,有人在我面前回答。是的,我對這個定義很熟悉,但是有點手搖。我認為,更清楚地認識到觸發器是由兩個具有相反相位時鐘的鎖存器構成的。這樣可以非常準確地了解內部實際情況,並更好地了解建立時間和保持時間。在表徵標准單元或進行任何自定義數據路徑設計時,這是一個重要的區別。它還留有歧義的餘地:例如,時間借用觸發器在有效clk邊緣附近具有異步字符。
用在不同時鐘相位上運行的成對鎖存器代替觸發器會引入在這些相位之間包含死區時間的可能性。如果某些芯片僅當其時鐘輸入低於(1/3)VDD時才激活其前端鎖存器,而僅當時鐘輸入高於(2/3)VDD時才使後端鎖存器,共享相同時鐘的芯片將即使所有芯片在同一時間都沒有看到時鐘切換,也能夠可靠地進行通信,前提是所有芯片都先將時鐘上升到(1/3)VDD以上,然後再將時鐘看到在(2/3)VDD以上。這樣的設計似乎是...
...在幾乎所有方面,其功能都比施密特觸發器更好;我想知道為什麼寄存器使用Schmidt觸發器比拆分前端和後端時序更常見?
@supercat:在CPU設計中沒有人使用施密特觸發器,這是大多數實際速度路徑數字設計都在其中完成的地方。這樣的設備更大,更慢並且消耗更多功率。常規鎖存器和触發器易於表徵和裕量化。也許施密特觸發器用於火柴線感應放大器之類的東西,但我不直接使用它。但是我的答案是專門針對多周期的普通數字速度路徑
FF有TG,而Latches沒有,但實際上同步的事實使一切有所不同。在任何情況下,它都是邏輯術語,而不是實現術語。邏輯名稱並不關心它是如何完成的。SCR是鎖存器
@jbord39:在許多情況下,有必要讓許多設備使用比現代CPU時鐘速度慢很多的時鐘來交換數據。如果設備在某個時鐘沿提早對其輸入進行採樣,但直到該時鐘沿稍後才對其輸出進行切換,則在兩塊板以10Khz進行通信的應用中,可以使用低至0.1V / us的轉換速率。沒有困難。但是,在使用相同閾值進行輸入採樣和輸出傳播的芯片上,轉換速率變慢可能會導致行為不可靠。
-1
無論如何,實現參數都無關緊要,TTL和ECL都是不同的。唯一的意義是在邊緣同步
-1
是的,但您的回答是,至少有一半是90%!物理!從技術上講,無關但有趣的實現
@TonyStewart.EEsince'75:好吧,verilog模型顯然必須與原理圖的行為相匹配。這些是物理實現的事實並沒有改變真正的區別-鎖存器和FF之間的建立時間和保持時間差(由主從拓撲引起)。發生這種情況是因為FF是由兩個鎖存器構成的。也許您可以概念化一個不是由閂鎖構成的FF,但是實際上它的行為會有所不同,不再是觸發器imo了!
如果上下文是IC設計環境,則該術語暗指物理屬性,但術語不應偏離我定義的其原始含義。一個是異步的,另一個是同步的
>觸發器可以是簡單的(透明或不透明),也可以是定時的(同步或邊沿觸發)。儘管“觸發器”一詞在歷史上通常是指簡單電路和時鐘電路,但在現代用法中,通常保留“觸發器”一詞專門用於討論時鐘電路。簡單的通常稱為閂鎖。
-1
@TonyStewart.EEsince'75:此源正確描述了差異。http://www.cs.ucr.edu/~ehwang/courses/cs120b/flipflops.pdf從RTL的角度來看,您可以擺脫無知。在低MHz下,您也可以。但是,當您實際設計CPU多周期電路(10-11級管線)時,就無法擺脫它,這些電路必須全部與其他較少管線化的路徑同步。如果您花時間閱讀任何有關借閱時間的資料,您將很快理解兩者之間的區別。.html
同意了。cs.ucr.edu/~ehwang/courses/cs120b/flipflops.pdf重複了我說的內容
+1。IMO,這是最好的答案。另一個以某種方式混淆了邊緣觸發(FF)和選通(選通鎖存器)之間的差異。在實現方面有點沉重,尤其是對於初學者。挑剔:您似乎暗示實現邊緣觸發的唯一技術是在主從配置中耦合兩個鎖存器。我不是專家,但是我認為(IIRC)還有其他技巧可以實現邊沿觸發。
順便說一句,http://www.cs.ucr.edu/~ehwang/courses/cs120b/flipflops.pdf鏈接上的非常好的材料。如果可以在答案中添加帶有該鏈接的最後一段,以防萬一評論被刪除,那將是很好的。
@LorenzoDonati:謝謝。關於FF,請注意:我不知道。您可以將時鐘信號脈動到鎖存器,它類似於觸發器(脈衝鎖存器),除非您會遇到一些問題,例如最小脈衝寬度在任何情況下都不會小於鎖存器的保持時間,並且透明窗口等於活動時鐘周圍的脈衝寬度(您只需要考慮這一點)。我將鏈接添加到我的答案中。
感謝您對FF具有主從內部結構的反饋。現在,我需要更新我的“大腦數據庫”:-)(可能我仍然記得那些您稱為“脈衝閂鎖”的東西,我不知道它們是單獨的類別,是FF)。
@jbord39您的定義不正確。正如您暗示的那樣,觸發器並不總是沿邊沿觸發的,也不總是具有時鐘輸入的。您的其他解釋部分也不正確。
以下是Richard Dorf撰寫的“電子手冊”中的定義以及一些其他說明。 鎖存器是“不受外部反饋影響的存儲元件”。詳細地說,鎖存器是一種具有兩個穩定狀態(又稱雙穩態多諧振盪器)的反饋電路,可用於存儲狀態信息。觸發器是“主從配置中的兩級鎖存器”。兩者本質上都是異步順序機(即狀態機)。可以異步或同步使用。需要時鐘的鎖存器是“同步鎖存器”。
“標準DFF既可以用作異步SR鎖存器,也可以與數據和時鐘輸入同步使用。”“通常需要處理存儲在存儲元件中的信息,然後將其恢復到存儲元件中。如果存儲元件是鎖存器,則反饋會引起問題。信號可以在這種反饋迴路中傳播未知次數導致未知結果。僅允許信號傳輸一次的存儲元件消除了這種不確定性,這可以通過兩階段配置來實現。”
@mrbean:我認為您引用的是您並不真正理解的單一來源。我說的大部分內容都與這本《電子手冊》保持一致,我從未,也不會讀過。我曾擔任CPU庫設計人員3年,提供鎖存器,觸發器,寄存器文件和其他存儲元件,而擔任定制電路設計人員則有2-3年使用這些存儲元件的經驗。每個人對這些東西的定義略有不同。但是,對它們進行設置/保持/延遲的設計/調整/表徵將闡明這些差異。
Olin Lathrop
2011-11-06 19:07:32 UTC
view on stackexchange narkive permalink

鎖存器在打開狀態下直接通過輸入數據,並在鎖存狀態下凍結輸出。鎖存器響應控制信號的電平 i>。

觸發器有多種類型,但基本上,這些觸發器會在邊緣 i>上改變狀態。控制信號,在某些情況下還包括數據輸入。經典的D型觸發器最像鎖存器,只是它僅在時鐘的特定邊沿上查看輸入,並在所有剩餘時間中凍結輸出。

那麼鎖存器和触發器之間有什麼區別嗎?
-1
嗯...有點清除.. !!我了解的是觸發器需要一個時鐘,而閂鎖不需要它。
@ankur.trapasiya:是的,鎖存器沒有時鐘輸入,但是有相應的輸入:大多數時候稱為ENABLE。 D觸發器的時鐘輸入對邊沿敏感,鎖存器的使能輸入具有電平特性,即當使能有效且輸入發生變化時輸出會發生變化。
具有時鐘輸入或使能的鎖存器無關緊要。所謂的“啟用透明性”引腳不能正確區分鎖存器和触發器。正確的區別是觸發器越過週期邊界,而鎖存器僅越過半個週期邊界(需要兩個鎖存器才能創建觸發器)。
@Jbord:,這使您變得太複雜了。鎖存器為電平門控,觸發器為邊沿時鐘。這幾乎就是它的全部。
@OlinLathrop:我要說的是,您通過捨棄重要的區別來簡化它。有了這個定義,您如何理解一個時間借用觸發器(具有從鎖存器延遲到主時鐘的主鎖存時鐘的觸發器),它在觸發沿周圍具有透明性?
Gouse Shaik
2011-11-11 18:42:37 UTC
view on stackexchange narkive permalink

鎖存器是雙穩態多諧振盪器的一個例子,即具有兩個穩定狀態的設備。
這些狀態是高輸出和低輸出。
鎖存器具有反饋路徑,因此信息可以被設備保留。
因此,鎖存器可以是存儲設備,並且只要設備通電就可以存儲一位數據。
顧名思義,鎖存器用於“鎖存”信息
閂鎖與觸發器非常相似,但是它們不是同步設備,並且不能像觸發器那樣在時鐘沿上操作。

enter image description here

觸發器是一種非常類似於鎖存器的設備,因為它是一個雙穩態誘變器,具有兩個狀態和一個允許其存儲位的反饋路徑鎖存器和触發器之間的區別在於鎖存器是異步的,並且輸入可以立即改變輸出(或至少在很小的傳播延遲之後)。
觸發器另一方面,觸發器則是邊沿觸發的,並且僅在控制信號從高到低或從低到高時才改變狀態。
這種區別是相對較新的並且不是正式的,許多權威機構仍在提及翻轉觸發器為鎖存器,反之亦然,但是為了清楚起見,這是一個有用的區分。

enter image description here

鎖存器不是(雙穩態或任何其他)多諧振盪器。
Prasanth
2011-11-07 13:36:00 UTC
view on stackexchange narkive permalink

鎖存器和触發器之間的區別在於,只要存在使能信號,它們的輸出就會一直受到其輸入的影響。啟用它們後,其內容將在輸入更改時立即更改。觸發器的內容僅在使能信號的上升沿或下降沿改變。該使能信號控制時鐘信號。在時鐘的上升沿或下降沿之後,即使輸入發生變化,觸發器的內容也保持不變。

DarenW
2011-11-07 14:46:14 UTC
view on stackexchange narkive permalink

主要是預期用途有所不同。觸發器是一個通用概念,並且有多種變化-觸發方式,JK輸入或D等等。觸發器可用於計數器,移位寄存器以及有關觸發器的文本和在線文章中找到的所有其他用途。

鎖存器是一種特殊用途,其中給一組觸發器(我想可以少到一個)為布爾電平,並為其提供時鐘,然後將這些值恆定地保持在其輸出上。可以說是二進制值的快照。除了輸入新的時鐘或清除鎖存器(這意味著將所有輸出都設置為零)外,輸出值不會發生變化。

D型觸發器是顯而易見的選擇,但正是您選擇使用或如何觸發它對於鎖存器的概念並不重要,即使在您正在設計或使用的特定電路或芯片中很重要。

supercat
2012-02-16 01:30:26 UTC
view on stackexchange narkive permalink

透明鎖存器是具有數據輸入和控制輸入的設備。控制輸入具有兩個狀態,可以稱為“跟踪”和“保持”。有些設備會將控制輸入上的“高電平”視為“跟踪”,將低電平輸入視為“保持”。其他人則相反。每當控制輸入處於“跟踪”狀態時,輸出的狀態就會連續嘗試跟隨數據輸入的狀態(在數據輸入更改和輸出反映更改之間存在短暫的延遲)。如果控制輸入從“跟踪”狀態變為“保持”狀態,只要對數據輸入的最後一次更改有機會到達輸出,則輸出將保持其值,直到控制輸入變為零為止。返回到“跟踪”狀態。

儘管透明閂鎖可以以多種方式使用,但了解至少兩種使用場景非常重要。在一種情況下,鎖存器用於將有時會保留有效數據,有時會保留無效數據的信號轉換為始終會保留有效數據的信號。只要數據輸入可能與所需的輸出數據都不匹配,就可以將鎖存器保持在“保持”狀態。要更改鎖存的數據,可以將所需的數據放在輸入上,然後將鎖存器短暫地設置為“跟踪”狀態,然後再回到“保持”狀態,請注意,當“保持”信號有效。這種佈置可以用於例如。控制64使用八個控制信號和八個數據信號輸出。每個控制信號操作八個鎖存器,其中一個鎖存器連接到八個數據信號中的每個。人們可以像鎖存器一樣容易地使用邊沿觸發的觸發器,但是鎖存器的電路要簡單一些。請注意,在這種情況下,沿邊沿觸發的觸發器最好在從“保持”到“跟踪”的過渡時觸發。

在第二種使用情況下,輸入在鎖存器切換為“透明”時可能沒有意義,但在鎖存器切換為“保持”之前將變得有意義。如果使用其輸出的設備直到鎖存器切換到“保持”狀態後才關心其狀態,那麼此時將是數據輸入的狀態,該狀態將被饋送到輸出。在這種情況下,一個人可以使用邊沿觸發的觸發器,但是它必須在從“跟踪”到“保持”的轉變時觸發。注意,如果輸入到鎖存器的數據在從“保持”過渡到“磁道”之前的相當長的時間內變得有效,則輸出也將如此。相比之下,觸發器的輸出僅在時鐘改變時才有效。

sudha
2014-01-07 20:43:20 UTC
view on stackexchange narkive permalink

主要區別在於鎖存器是電平觸發的,在JK-latch和T-latch中出現了競合條件,而在JK-FF和T-FF中沒有競合條件。並且觸發器是邊沿觸發的,因此沒有在FF條件下比賽。

antonio
2014-05-07 07:56:11 UTC
view on stackexchange narkive permalink

鎖存器和触發器之間的主要區別在於,對於鎖存器,只要使能信號有效,其輸出便會不斷受到其輸入的影響。換句話說,啟用它們後,其內容將在輸入更改時立即更改。另一方面,觸發器的內容僅在使能信號的上升沿或下降沿改變。該使能信號通常是控制時鐘信號。在時鐘的上升沿或下降沿之後,即使輸入發生變化,觸發器的內容也保持不變

這似乎並沒有增加普拉桑思兩年多以前發布的答案中尚未涵蓋的任何內容。
@PeterJ:確實可以糾正語法(原始答案的條件尚未解決)。但是,應該對先前的答案進行編輯。


該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 3.0許可。
Loading...