比較寄存器、鎖存器和觸發器

作者 : Max Maxfield,EEWeb

有沒有遇到過這樣的怪事:你一直以為自己知道某件事,但當你試著向別人解釋這件事時,才發現自己的論述中存在漏洞和邏輯上的差異?這是我最近遇到的情況,當時有人問我鎖存器(latch)和觸發器(flip-flop)之間的區別,以及為什麼它們都與寄存器(register)有關…

有沒有遇到過這樣的怪事:你一直以為自己知道某件事,但當你試著向別人解釋這件事時,才發現自己的論述中存在漏洞和邏輯上的差異?這是我最近遇到的情況,當時有人問我鎖存器(latch)和觸發器(flip-flop)之間的區別,以及為什麼它們都與寄存器(register)有關。

取決於一個人的背景,這在電子學中可能是個有點主觀的領域,而隨著術語的不斷發展,我們又可能對此產生進一步混淆。因此,本文要做的就是以我的理解來解釋這些事物,然後歡迎各位專家發表評論,以便瞭解我的觀點是否獲得認同。

寄存器和寄存器文件

我們在微控制器(MCU)等電子系統中儲存資料的方式之一是在寄存器中。一些寄存器由一個位元組成,而另一些寄存器由多個位元組成;「寄存器文件」(又稱寄存器堆)一詞則是指一組共用通用功能和目的的寄存器。

寄存器的特性與半導體記憶體相類似,例如每個基元(單元)可儲存一個二進位數字或位元(以0或1的形式表示)。但是,記憶體往往用於儲存相對大量的資訊(指令和資料),而寄存器則更趨於專業化,用於實現記住配置和控制資訊、保存輸入/輸出值,以及臨時儲存邏輯或算數運算結果等任務。

另一個區別是儲存單元往往相對簡單,需要盡可能少地使用電晶體來完成工作。這是因為它們太多了,因此就功耗而言應保持小巧、快速和簡約。相比之下,寄存器由於數量要少得多,因此在大小和功耗方面約束就比較少,並且通常具有與硬體相關的更高階的特殊控制和功能。

鎖存器和觸發器

每個寄存器單元的核心都是一個雙穩態電路,據此就可以0或1的形式儲存資訊。這種電路可能有一個或多個控制輸入,可能有一個資料登錄,以及一個或兩個輸出。如果有第二個互補的QB輸出存在,那麼它將呈現與主輸出Q相反或互補的邏輯值。

就控制訊號而言,這種電路可以是電平觸發(非同步、透明或不透明)或邊緣觸發(同步或時脈)方式。前者的一個例子是置-復位鎖存器(SR鎖存器),後者的一個例子是資料型觸發器(D型觸發器),詳見圖1。

圖1 SR鎖存器和D型觸發器的圖形符號及真值表對比。

觸發器一詞通常在這種電路的背景下使用,因為這種電路在兩種狀態之間來回觸發翻轉。歷史上,「觸發器」一詞通常包含電平觸發和邊緣觸發兩種類型。但是,最近「鎖存器」一詞被用來指代電平觸發的版本,而「觸發器」一詞則用來指代邊緣觸發的版本已經變得很普遍。常見的寄存器類型如下:

  • SR鎖存器:包括NOR、NAND與AND-OR
  • JK鎖存器
  • 閘控SR鎖存器
  • 閘控D鎖存器
  • Earle鎖存器
  • D型觸發器
  • T型觸發器(翻轉,toggle)
  • JK型觸發器

順帶一題,JK型被認為是最通用的鎖存器和觸發器,因為可以將JK鎖存器修改用作SR鎖存器,同時可以將JK觸發器配置為D型或T型觸發器。

多諧振盪器(Multivibrator)

多諧振盪器是一種用於實現各種簡單兩態功能的電子電路,有以下三種類型:

  • 無穩態多諧振盪器在兩種狀態下均不穩定,而會不斷地從一種狀態切換到另一種狀態(不需要外部觸發器),因此用作張弛振盪器(relaxation oscillator);
  • 單穩態多諧振盪器僅在一種狀態下穩定。在觸發脈衝的激勵下,它將進入不穩定狀態,並在這種狀態保持一段所設定的時間,然後返回穩定狀態。單穩態多諧振盪器也稱為「單觸發」,可用於生成固定持續時間的脈衝,而作為對某些外部觸發事件的回應。
  • 雙穩態多諧振盪器在任一狀態下都是穩定的,它可以透過施加外部觸發脈衝從一種狀態切換到另一種狀態。

之所以在此提及多諧振盪器,是因為雙穩態多諧振盪器可用於儲存1位元資訊,也即所謂的觸發器。

開始討論

所以你怎麼看?您是否同意我上面的介紹方式?另外,你有什麼希望分享或想要補充的內容嗎?

(參考原文:Registers vs. Latches vs. Flip-Flops,by Max Maxfield)

本文同步刊登於EDN Taiwan 2021月號數位版雜誌

 

 

 

 

 

 

加入LINE@,最新消息一手掌握!

 Line For EETT and EDNT

發表評論