VL64 時(shí)鐘切換

說(shuō)實(shí)話還是真正的面試題有含金量,時(shí)鐘切換我學(xué)了這么久的IC其實(shí)都沒(méi)怎么接觸過(guò),以為就是與一下,但是今天才發(fā)現(xiàn)會(huì)產(chǎn)生毛刺,如何不產(chǎn)生毛刺?
在時(shí)鐘的下降沿切換,這樣子比較穩(wěn)定,并且不會(huì)在高電平切換導(dǎo)致周期不對(duì)
兩個(gè)時(shí)鐘之前用一個(gè)由sel控制的互斥電路,有clk0就沒(méi)有clk1,這樣子永遠(yuǎn)是先關(guān)閉一個(gè),再打開(kāi)一個(gè),不會(huì)出現(xiàn)同時(shí)打開(kāi)和關(guān)閉,導(dǎo)致glitch
如何產(chǎn)生互斥電路呢?,那就是下面這張圖

可以看到控制clk1的sel會(huì)反饋!q0給q1前的組合邏輯,讓其互斥,假設(shè)sel本來(lái)為1且穩(wěn)定,此時(shí)sel變?yōu)?,當(dāng)clk1的下降沿來(lái),0傳遞到q0,關(guān)閉clk1,此時(shí)clk2還沒(méi)打開(kāi),!q0傳遞到d1,等到clk2下降沿到了,此時(shí)打開(kāi)clk2,實(shí)現(xiàn)時(shí)鐘切換,當(dāng)然如果sel是異步的,可以在前面加兩級(jí)同步器防止亞穩(wěn)態(tài),具體代碼非常簡(jiǎn)單,按照原理圖寫(xiě)rtl
標(biāo)簽: