一碗酸梅湯 作品
第144章 時序邏輯電路和寄存器
工程實踐中,“觸發器”有多種設計方案。
江寒選用的,是最常用的,也是比較簡單的“d觸發器”(dataflip-flop),簡稱dff。
此類“觸發器”通常包括4個“與非門”,並提供1個輸入管腳,一個輸出管腳,通過“反饋迴路”來連接基本的邏輯門。
大多數計算機系統裡,都是採用振盪器來實現時鐘信號。
用連續的交變信號序列,來表示時間流逝。
所謂交變,就是電信號從高到低,在從低到高,反覆循環。
用數字來表示,就是0-1-0-1-0-1……
每兩個波峰之間的間隔,稱之為1個“時鐘週期”。
現代個人電子計算機的時鐘頻率,通常高達每秒鐘幾十、幾百甚至幾千兆赫!
計算機系統通過時序信號,來整體協調各個部件的運行。
“觸發器”根據主時鐘信號的連續交變,將前一個時鐘週期的輸入,當做當前時鐘週期的輸出。
這個過程可以用out(t)=in(t-1)來描述。
江寒用4個與非門打造出d觸發器後,又在其基礎上實現了“二進制存儲單元”。
這是隻能存取、記憶1個二進制位的小裝置。
包括一個輸入、一個輸出,和一個負責寫操作的load接口。
別看它小,可是構成寄存器和內存陣列的基本結構。
根據out(t)=in(t-1)的設計需求,d觸發器的輸出必須反饋到輸入。
但簡單的將輸出信號傳送給輸入端,肯定是行不通的。
必須通過合理的設計,才能讓其正確工作。
比如加裝一個“多路轉換器”,用它的“選擇位”作為寄存器的“加載位”……
d觸發器的設計,保證了輸出變化僅發生在兩個時鐘週期之間的切換點上,而不會發生在時鐘週期內部。
這樣,即使時序邏輯電路在時鐘週期內出現不穩定,也不會影響輸出的準確性。
只需要保證在下一個時鐘週期開始時,輸出準確無誤的數值就可以了。
這種“離散化”的特性,對於保證計算機系統的同步協調十分重要。
比如,要讓alu計算兩個數a與b的和。
假設a所在的ram寄存器,距離alu很近,而b所在的ram寄存器,距離alu較遠。
由於物理條件的限制,比如電阻、干擾、信號噪聲或者其他隨機因素,a、b信號也許無法同步到達alu。
為了不讓運算結果出錯,就要保證:在一個時鐘週期內,alu輸出的結果,能到達最遠的ram寄存器。
江寒選用的,是最常用的,也是比較簡單的“d觸發器”(dataflip-flop),簡稱dff。
此類“觸發器”通常包括4個“與非門”,並提供1個輸入管腳,一個輸出管腳,通過“反饋迴路”來連接基本的邏輯門。
大多數計算機系統裡,都是採用振盪器來實現時鐘信號。
用連續的交變信號序列,來表示時間流逝。
所謂交變,就是電信號從高到低,在從低到高,反覆循環。
用數字來表示,就是0-1-0-1-0-1……
每兩個波峰之間的間隔,稱之為1個“時鐘週期”。
現代個人電子計算機的時鐘頻率,通常高達每秒鐘幾十、幾百甚至幾千兆赫!
計算機系統通過時序信號,來整體協調各個部件的運行。
“觸發器”根據主時鐘信號的連續交變,將前一個時鐘週期的輸入,當做當前時鐘週期的輸出。
這個過程可以用out(t)=in(t-1)來描述。
江寒用4個與非門打造出d觸發器後,又在其基礎上實現了“二進制存儲單元”。
這是隻能存取、記憶1個二進制位的小裝置。
包括一個輸入、一個輸出,和一個負責寫操作的load接口。
別看它小,可是構成寄存器和內存陣列的基本結構。
根據out(t)=in(t-1)的設計需求,d觸發器的輸出必須反饋到輸入。
但簡單的將輸出信號傳送給輸入端,肯定是行不通的。
必須通過合理的設計,才能讓其正確工作。
比如加裝一個“多路轉換器”,用它的“選擇位”作為寄存器的“加載位”……
d觸發器的設計,保證了輸出變化僅發生在兩個時鐘週期之間的切換點上,而不會發生在時鐘週期內部。
這樣,即使時序邏輯電路在時鐘週期內出現不穩定,也不會影響輸出的準確性。
只需要保證在下一個時鐘週期開始時,輸出準確無誤的數值就可以了。
這種“離散化”的特性,對於保證計算機系統的同步協調十分重要。
比如,要讓alu計算兩個數a與b的和。
假設a所在的ram寄存器,距離alu很近,而b所在的ram寄存器,距離alu較遠。
由於物理條件的限制,比如電阻、干擾、信號噪聲或者其他隨機因素,a、b信號也許無法同步到達alu。
為了不讓運算結果出錯,就要保證:在一個時鐘週期內,alu輸出的結果,能到達最遠的ram寄存器。