今天想來聊一聊芯片設(shè)計中的一個非?;A(chǔ)的概念——時鐘。對于外行來說聽到這個詞可能會感覺迷茫,猜一個大概意思吧可能也不太準。
對于芯片工程師來說時鐘這個詞就像每天喝水吃飯一樣平常,以至于可能從來不會注意它的存在。我也趁此機會,通過寫文章的方式,梳理一下我所理解的芯片時鐘是怎么一回事。
提起時鐘,就不得不先說芯片的兩種邏輯——時序邏輯(sequential)和組合邏輯(combinational)。
組合邏輯比較好理解,他就是我們常說的與或非這種邏輯門,輸出信號邏輯僅僅依賴于輸入信號的邏輯,或者按我的理解,組合邏輯的信號傳播是瞬間完成的(不考慮cell delay的話)。
不管是多么復(fù)雜的組合電路,就比如剛?cè)腴T電路時候大家都會學(xué)一些全加器、半加器、超前進位加法器什么什么的,雖然電路圖猛一看特別復(fù)雜,可能一張圖還畫不完,但只要他全部是由邏輯門構(gòu)成,都可以認為當(dāng)給定輸入信號的時候,輸出是不需要等待就可以直接看到的。當(dāng)然這只是我的理解啦,具體的組合邏輯定義肯定不是這樣吧?而時序邏輯,最重要的就是出現(xiàn)了由時鐘驅(qū)動的信號。
什么意思呢?就是說電路中存在這樣一類器件:他有一個特殊的控制輸入信號,當(dāng)這個信號跳變的時候,輸出信號才會根據(jù)其他一般的輸入信號變化。我們一般稱這種器件叫觸發(fā)器(flip-flop),而稱這種特殊的控制信號叫時鐘。
舉一個最簡單的D觸發(fā)器的例子,當(dāng)時鐘從0到1跳變的時候,輸出才等于輸入,其他時間,不管輸入如何變化,輸出保持不變。
由此可以看出時序邏輯器件一個重要的功能:寄存數(shù)據(jù),因此這些觸發(fā)器有時候也可以被稱為寄存器(register)。當(dāng)然還有另一種時序邏輯器件叫鎖存器(latch),它是指時鐘信號維持某個電平時信號才可以傳輸。
隨著flip-flop的出現(xiàn),時鐘的概念也就應(yīng)運而生了。其實時鐘并沒有多么奇怪的,他只是一個特殊的控制信號罷了。但是請大家思考這樣一個問題:隨著電路漸漸復(fù)雜,不同電路分支輸出的信號我總要抓取的呀,而具體什么時間點抓取信號就成了問題。
如果這個時鐘信號一會快一會慢,那么信號的抓取就會很艱難。所以為了規(guī)范化、統(tǒng)一化整個電路,讓大家都按照同一個規(guī)則來走,那么設(shè)計就會變得簡單化,這也是時鐘信號(clock)的最初衷。
為什么要叫“時鐘”?就是希望這個信號能像鐘表一樣,穩(wěn)定的每隔一段時間跳變一次,很形象吧?一個穩(wěn)定的時鐘會控制這個時鐘域所有的時序器件,這些器件就會統(tǒng)一的隔一段時間跳變一次,或者說信號傳輸一次,這就使我們的邏輯設(shè)計成為可能。
那么,我們?nèi)绾蔚玫揭粋€穩(wěn)定的時鐘呢?現(xiàn)在的芯片一般是由晶振產(chǎn)生一個周期信號,但這個信號并不太好,需要后面經(jīng)過一系列處理,關(guān)鍵的一步就是通過鎖相環(huán)(PLL),最終得到一個我們想要的時鐘。
但是這個時鐘也并不是數(shù)學(xué)意義上完美的,對我們后端來說,必須要考慮它的不確定性,就是說我們還是會認為它的周期一會大一會小,從來不會有一個完美的時鐘在現(xiàn)實宇宙里,畢竟我們后端是要做具體芯片實現(xiàn)的,必須悲觀考慮。
時鐘從PLL出來,到每個flip-flop的delay也會不同,而我們又希望所有flip-flop都同時跳變,就需要一步CTS(時鐘樹綜合)。這些就比較深入了,PLL和CTS以后再用別的章節(jié)來講吧。
突然又想到一個貼近生活的例子,我們平???a href="http://www.ttokpm.com/v/tag/1247/" target="_blank">電腦CPU多少多少赫茲,就是指CPU的時鐘頻率,時鐘頻率越高,CPU計算速度自然就越快了嘛。
而所謂超頻,就是強行增大CPU的時鐘頻率,可以使CPU速度提高。但是頻率越快,timing越難滿足,可能會出現(xiàn)setup violation哦,所以說超頻更容易死機,而且power也會變大,對芯片也不太好喲。
-
加法器
+關(guān)注
關(guān)注
6文章
183瀏覽量
29970 -
鎖存器
+關(guān)注
關(guān)注
8文章
903瀏覽量
41315 -
D觸發(fā)器
+關(guān)注
關(guān)注
3文章
164瀏覽量
47738 -
PLL電路
+關(guān)注
關(guān)注
0文章
92瀏覽量
6371 -
CTS
+關(guān)注
關(guān)注
0文章
34瀏覽量
13969
發(fā)布評論請先 登錄
相關(guān)推薦
評論