「FPGA」基本時(shí)序電路元件——鎖存器和觸發(fā)器
FPGA是一種數(shù)字電路實(shí)現(xiàn)的方式,它是基于小型查找表(16X1)設(shè)計(jì)的,它的兄弟CPLD是基于高密度復(fù)雜組合邏輯設(shè)計(jì)的。FPGA的一個(gè)優(yōu)點(diǎn)是觸發(fā)器資源豐富,適合實(shí)現(xiàn)復(fù)雜的時(shí)序設(shè)計(jì)。本文將從 門(mén)級(jí)電路的角度來(lái)介紹時(shí)序電路的基本結(jié)構(gòu),鎖存器(Latch)和觸發(fā)器(flip-flop)。實(shí)際上,還可以直接使用晶體管來(lái)構(gòu)建鎖存器和觸發(fā)器,這樣更節(jié)約。
1. 最簡(jiǎn)單的雙穩(wěn)態(tài)元件
雙穩(wěn)態(tài)元件是記憶電路的基礎(chǔ),它的特點(diǎn)是有兩個(gè)穩(wěn)定狀態(tài)(Q=1,Q=0),當(dāng)外界無(wú)外來(lái)觸發(fā)信號(hào)的時(shí)候,它將保持上一個(gè)狀態(tài)。
最簡(jiǎn)單的雙穩(wěn)態(tài)元件是交叉耦合的反相器,如圖1。當(dāng)Q=1的時(shí)候,下面反相器的輸入為1,輸出為0,即Q-=0,這個(gè)輸出0又作為上面反相器的輸入,從而進(jìn)一步“鞏固”Q=1。Q=0同理。
不過(guò),這個(gè)電路是沒(méi)有使用價(jià)值的,因?yàn)闆](méi)有輸入,其狀態(tài)完全由一個(gè)無(wú)法控制的初始狀態(tài)決定,Q=1則一直為1,Q=0則一直為0。因此,具有實(shí)用價(jià)值的是它的改進(jìn)版,鎖存器和觸發(fā)器。
2. SR鎖存器
其中S是set的首字母,表示置位,R是reset的首字母,表示復(fù)位。它的組成是兩個(gè)交叉耦合的或非門(mén),如圖2,其中綠線表示高電平,灰線表示地電平。當(dāng)S=1,R=0的時(shí)候,Q=1,Q-=0。當(dāng)R=0時(shí),與的結(jié)果一定是0,則其上面的或非門(mén)的輸出Q=1。Q=1作為下面的或非門(mén)的輸入,同時(shí)S=1,兩個(gè)1相或結(jié)果為1,則下面的或非門(mén)的輸出為0。
當(dāng)S=0,R=1的時(shí)候,Q=0,Q-=1。分析同理。
當(dāng)S=0,R=0的時(shí)候,這兩個(gè)或非門(mén)和兩個(gè)反相器在邏輯功能上沒(méi)有區(qū)別。當(dāng)一個(gè)或非門(mén)的一端輸入常為0,那么當(dāng)另外一端輸入為1,輸出為0,另一端輸入為0,則輸出為1。其分析可參考交叉耦合反相器。該鎖存器將保持原有的狀態(tài)。
當(dāng)S=1,R=1的時(shí)候,由于或門(mén)是有1為1,因此兩個(gè)或非門(mén)的輸出都是0。這是一個(gè)混亂的電路響應(yīng)(正常的Q和Q-應(yīng)互為相反數(shù))。
值得注意的是,以上電路是采用或非門(mén)實(shí)現(xiàn)的SR鎖存器,實(shí)際上,我們可以,只要滿足上述輸入輸出關(guān)系的元件都是SR鎖存器。比如可以采用與非門(mén)實(shí)現(xiàn)SR鎖存器,如圖3。注意區(qū)別,當(dāng)S=0,R=0時(shí),該器件無(wú)效,當(dāng)S=1,R=1時(shí),該器件保持。
3. D鎖存器(data latch)
SR鎖存器可以在Q上儲(chǔ)存一個(gè)1bit的狀態(tài)值,還可以通過(guò)S和R來(lái)控制Q=1或者是Q=0。但是這種設(shè)計(jì)有個(gè)缺陷,我們不知道什么時(shí)候進(jìn)行置位和復(fù)位?;蚓湓捳f(shuō),SR鎖存器在時(shí)間和內(nèi)容上是混在一起的。
因此,對(duì)電路進(jìn)行改進(jìn),引入一路時(shí)鐘信號(hào)(占空比為50%的方波),當(dāng)時(shí)鐘信號(hào)為高電平的時(shí)候,才讓數(shù)據(jù)信號(hào)(D)作用在SR鎖存器的S端,并直接體現(xiàn)在Q上,就好像一根導(dǎo)線,用專(zhuān)業(yè)術(shù)語(yǔ)叫透明(transparent)。當(dāng)時(shí)鐘信號(hào)為低電平的時(shí)候,SR鎖存器保持,就好像把數(shù)據(jù)信號(hào)阻斷了一樣,叫不透明(opaque)。要實(shí)現(xiàn)該功能,需要在外側(cè)加入兩個(gè)與門(mén),其電路結(jié)構(gòu)如圖4。
D鎖存器又稱(chēng)電平敏感鎖存器。
4. D觸發(fā)器
觸發(fā)器的英文是flip-flop,flip是輕拋,flop是重重地落下。相比于電平敏感的D鎖存器,D觸發(fā)器是上跳沿敏感的,只有當(dāng)時(shí)鐘CLK從低電平變化到高電平的時(shí)候,電路才是透明的。所以其實(shí)現(xiàn)可以是,用兩個(gè)D鎖存器,第一個(gè)鎖存器在時(shí)鐘低電平的時(shí)候儲(chǔ)存D的值,當(dāng)變化成高電平的時(shí)候,再將儲(chǔ)存的值送到第二個(gè)D鎖存器中。
如圖5,左圖是當(dāng)CLK為低電平時(shí),下側(cè)的D鎖存器(又稱(chēng)“主鎖存器”),讀入輸入數(shù)據(jù),右圖是當(dāng)CLK為高電平時(shí),上側(cè)的D鎖存器(又稱(chēng)“從鎖存器”),將主鎖存器的輸出作為輸入。
5. 寄存器(register)
寄存器的概念,最開(kāi)始接觸,可能是在學(xué)習(xí)C語(yǔ)言的時(shí)候。那個(gè)時(shí)候剛剛接觸到內(nèi)存,知道一個(gè)變量的值是被儲(chǔ)存在某個(gè)地址對(duì)應(yīng)的內(nèi)存空間,內(nèi)存則是由寄存器構(gòu)成的。然后如果使用到一些微處理器,也會(huì)接觸到寄存器的概念,通過(guò)對(duì)某些寄存器寫(xiě)入特定值,從而設(shè)置微處理器的工作模式。
所謂寄存器,是由共用一路時(shí)鐘的一列D觸發(fā)器構(gòu)成。圖6所示的寄存器,被設(shè)置成1001。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-509162.html
文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-509162.html
小結(jié)
- 交叉耦合反相器是記憶元件,但不能控制輸入,不具有實(shí)用性。
- SR鎖存器可以設(shè)置輸出為0或者1,但是沒(méi)有時(shí)間的概念。需要兩個(gè)或非門(mén)或者兩個(gè)與非門(mén)。
- D鎖存器是在SR鎖存器的基礎(chǔ)上,增加了兩個(gè)與門(mén)和一路時(shí)鐘信號(hào),CLK為低電平,兩個(gè)與門(mén)都不通,SR Latch保持,CLK為高電平,根據(jù)D是高還是低,分別讓SR鎖存器出現(xiàn)置位和復(fù)位。
- D觸發(fā)器是兩個(gè)D Latch背靠背相連接而成,兩個(gè)鎖存器的CLK信號(hào)相反。低電平時(shí),先將D存入第一個(gè)鎖存器,高電平時(shí),再將第一個(gè)鎖存器的輸出送入第二個(gè)鎖存器。因此只在低電平接收數(shù)據(jù),上跳時(shí)改變數(shù)據(jù),高電平送出數(shù)據(jù)。
- 寄存器就是一摞觸發(fā)器。
- 此外還有帶使能端的觸發(fā)器、帶復(fù)位端的觸發(fā)器。
到了這里,關(guān)于「FPGA」基本時(shí)序電路元件——鎖存器和觸發(fā)器的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!