異步時(shí)鐘切換電路
問(wèn)題: 2個(gè)頻率無(wú)關(guān)的時(shí)鐘,在sel的選擇下做切換。
有時(shí)一個(gè)看起來(lái)簡(jiǎn)單,實(shí)際上是在考驗(yàn)ASIC工程師的問(wèn)題。
1.簡(jiǎn)單的講就是做信號(hào)的2選1么,那么我們就先做一個(gè)簡(jiǎn)答的2選1吧。
這是一個(gè)邏輯圖,實(shí)際的2選1是由3個(gè)門電路過(guò)程的,比如2個(gè)與一個(gè)或:
這個(gè)電路顯然不能用于時(shí)鐘的選擇,因?yàn)檫@將導(dǎo)致輸出時(shí)鐘存在毛刺,后級(jí)電路是不能直接用的。
2. 我們很自然的會(huì)想到,要是能在時(shí)鐘低時(shí)切換到另一個(gè)時(shí)鐘低電平,就能保證時(shí)鐘的品質(zhì)。這樣在時(shí)鐘切換時(shí)就必然要經(jīng)歷4個(gè)階段:1)選擇信號(hào)改變、2)在clk1為低時(shí)停掉clk1的選擇 、3)在clk2為低時(shí)打開clk2的選擇端、3)正常工作,完成切換。
這樣一想,似乎要寫一個(gè)狀態(tài)機(jī)了。但是這里面有一個(gè)問(wèn)題先要解決:clk的低電平用什么來(lái)檢測(cè)?當(dāng)然,如果你有更高頻率的時(shí)鐘,確實(shí)是可以寫一個(gè)狀態(tài)機(jī)的,但是恐怕多數(shù)時(shí)候是沒(méi)有那個(gè)高頻時(shí)鐘的。那我們就只能用時(shí)鐘的下降沿來(lái)檢測(cè)時(shí)鐘的低電平的到來(lái)了。于是我們就基本有了方向。
這個(gè)電路是比較經(jīng)典的,其思考過(guò)程也很屈折,關(guān)鍵就在于寄存器前的那個(gè)與門,它的位置非常關(guān)鍵。
是不是這就可以了呢?當(dāng)然不完全。我們考慮了輸出時(shí)鐘的完整性,但是我們忘了,圖上的這2個(gè)寄存器本身就是跨時(shí)鐘域的寄存器,其本身也存在壓穩(wěn)態(tài)的問(wèn)題。而且這個(gè)壓穩(wěn)態(tài)會(huì)隨著輸出的時(shí)鐘擴(kuò)展到很遠(yuǎn)。芯片恐怕是承受不了的。
3. 所以,我們還需要一點(diǎn)特殊處理(圖就不畫,有點(diǎn)煩,但是這一步很重要),就是在寄存器輸出端到另一個(gè)寄存器前的與門之間用相應(yīng)的時(shí)鐘鎖存2次(這是最通常的做法,地球人恐怕都知道)。