計算機數學小書2-D觸發器的進化之路

計算機數學小書2-D觸發器的進化之路

84 人贊了文章

關於D觸發器,其實《編碼》這本書的第14章《反饋與觸發器》已經寫得很通俗易懂了,從電鈴開始講起,很是佩服大師寫出如此簡單流暢的文章。

不過呢,我準備重新換一個角度梳理一下,將非門一直到邊沿性D觸發器,全部從邏輯上講通,確保你只看一遍,理解了這輩子都不會忘記這玩意。

數字邏輯里,最美妙的設計就是觸發器!

那就讓我們開始旅程吧!

首先,放張圖鎮一下,hahaha

1.從非門講起

請盯著這個非門電路圖看30秒,你會想到什麼:

吾非吾。

對,就是自相矛盾,邏輯錯誤,那最後到低是輸出真呢還是假呢,答案是,不真不假。

也就是輸出的電平不斷地01010101交替變化,輸出震蕩波形。

那我們有沒有辦法,讓這個系統穩定住呢???

2.穩定記憶

接著看這張圖

我們把兩個非門串在一起,是不是就能夠穩定了,邏輯自洽啦,既可以存儲狀態0也可以存儲狀態1。

吾亦是吾

結論:兩個非門反饋串聯,產生記憶。

遺憾的地方:我們沒有辦法改變這個系統的記憶,因為沒有控制介面。

3.控制記憶狀態

於是有了這張圖

用與非門替代上圖的非門,這樣就可以給系統添加兩個控制端。

如果我把下面的與非門翻轉180度,會變成下面的圖:

哈哈哈哈,有沒有一種似曾相識的感覺。沒錯,這就是RS觸發器呀!

還記不記得RS觸發器的四種狀態

  • 輸入全為1就是保持,也就退化為兩個非門反饋串聯。
  • 其中一個為0,就會控制記憶和輸出
  • 兩個全為0,就會非法態。

備註:當然也可以用或非門玩,於是就產生了兩種RS觸發器呀。

Bug:1. 能夠控制記憶,但是有非法態。

2.整個系統不受控,一直都在工作。

4.自控給我自由

在輸入端添加了兩個或門,這樣的話,中間這個輸入引腳為1的話,那就自動屏蔽外部輸入,也就是老子不想幹活了。只有中間這個引腳為0的時候,才工作。

我們這樣的設計,解決了3中的第二個bug2,但是依然存在非法態,那我們怎麼幹掉呢?

5.化繁為簡

既然中間引腳解決了保持記憶的問題,那我們最後只要保證輸入的兩個引腳不同,就可以避免全0的情況,加個非門不就完事了。兩個輸入,永遠都不會同時為0.

仔細看一下,這是不是電平型D觸發器。

電平型D觸發已經可以保存數據,修改數據,但是存在bug,就是使能的時候,一旦輸入數據發生干擾變化,輸出也會受干擾。

那有沒有可能,我們精確控制數據只在某一時刻改變,其他時候都是可靠地保持數據。

6.繼續串聯,終極觸發器

將兩個D觸發器串聯,其中使能端CP用非門保證互斥,

於是第一個傳輸數據的時候,第二個D觸發器保持

第二個傳輸數據的時候,第一個觸發器保持。

最後的結果就是,只在邊沿觸發的那一刻傳輸數據!

於是邊沿性D觸發器誕生了。

我們可以在某一時刻同步觸發所有讀寫動作,然後其他時候數據一致可靠保存記憶。

此文,很短,如果細講的話,可能要好一會兒。

點到為止,大家細細理解。

推薦閱讀:

計算機論文精選-20180530
資料庫事務隔離標準分析
關於C++,你了解這些嗎?
從mSATA到M.2,新生代固態硬碟介面優勢解讀
Android 64 bit的一些兼容性分析

TAG:計算機 | 計算機科學 | 數字電路 |