《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 其他 > 入門:FPGA之組合邏輯與時(shí)序邏輯、同步邏輯與異步邏輯的概念

入門:FPGA之組合邏輯與時(shí)序邏輯、同步邏輯與異步邏輯的概念

2022-12-11
來(lái)源:CSDN技術(shù)社區(qū)

  邏輯電路" target="_blank">組合邏輯電路與時(shí)序邏輯電路

  數(shù)字電路根據(jù)邏輯功能的不同特點(diǎn),可以分成兩大類:一類叫做組合邏輯電路,簡(jiǎn)稱組合電路或組合邏輯;另一類叫做時(shí)序邏輯電路,簡(jiǎn)稱時(shí)序電路或時(shí)序邏輯。

  如果數(shù)字電路滿足任意時(shí)刻的輸出僅僅取決于該時(shí)刻的輸入,那么該數(shù)字電路為組合邏輯電路。相反,如果數(shù)字電路任意時(shí)刻的輸出不僅取決于當(dāng)前時(shí)刻的輸入,而且還取決于數(shù)字電路原來(lái)的狀態(tài),那么該數(shù)字電路為時(shí)序邏輯電路。例如,下圖中只由一個(gè)與門組成的電路就是一個(gè)組合邏輯電路。

40.JPG

  對(duì)于上圖所示數(shù)字電路,無(wú)論在任何時(shí)刻,并且無(wú)論上次A、B輸入是什么情況,只要在當(dāng)前時(shí)刻輸入端口A、B同時(shí)為邏輯1時(shí),輸出端C才會(huì)輸出邏輯1,而其他情況下輸出端C都會(huì)輸出邏輯0。由此可見(jiàn)符合組合邏輯電路的定義。

  如果上圖中與門的兩個(gè)輸入端分別是來(lái)自一個(gè)寄存器的輸入和輸出,如下圖所示,那么這就肯定是一個(gè)時(shí)序電路。

39.JPG

  對(duì)于上圖所示數(shù)字電路,假設(shè)寄存器中目前保存的值是邏輯1,而此時(shí)輸入端B沒(méi)有從邏輯0到邏輯1的跳變(B相當(dāng)于寄存器的時(shí)鐘信號(hào)),設(shè)此時(shí)B為邏輯0,那么如果輸入端A為邏輯1,則C輸出邏輯1;但是如果過(guò)了一段時(shí)間后,A變?yōu)?,且隨后B的上升沿到來(lái),那么寄存器中保持的值變?yōu)檫壿?,那么在這之后,若令輸入端A為邏輯1,B為邏輯0,則由于寄存器中保存著邏輯0值,所以C輸出邏輯0。對(duì)比前后兩種情況,A、B兩端的輸入都是邏輯1,但是C的輸出卻不同。由此可見(jiàn),該數(shù)字電路的輸出并不完全由輸入決定,因此它是一個(gè)時(shí)序邏輯電路。

  對(duì)比如上兩例我們可以看出,時(shí)序邏輯電路和組合邏輯電路并不是完全割裂開(kāi)來(lái)的,而更像是一種包含關(guān)系,即時(shí)序邏輯電路中肯定有組合邏輯的成分存在,但組合邏輯電路中卻不可能有時(shí)序邏輯的成分存在。由此可見(jiàn),只要加以恰當(dāng)?shù)南拗疲瑫r(shí)序邏輯電路甚至可以完全模擬組合邏輯電路的功能,例如查找表LUT。FPGA中用LUT來(lái)實(shí)現(xiàn)組合邏輯,但是LUT本身是不包含任何功能的,在FPGA上電或配置的時(shí)候?qū)ζ渲械拇鎯?chǔ)載體進(jìn)行相關(guān)設(shè)定的賦值,然后LUT由于記住了這個(gè)賦值設(shè)定,才能模仿各種各樣的組合邏輯功能。由于FPGA一般都是基于SRAM工藝的,因此FPGA中的LUT不太可能是基于多路選擇器和一系列到電源和地的熔絲組成,如果該查找表是由ROM、RAM或者寄存器等實(shí)現(xiàn)的,那么它也是有記憶的,只不過(guò)在整個(gè)電路工作期間,它不會(huì)改變自己的記憶罷了。所以,我們可以認(rèn)為時(shí)序邏輯電路是有記憶的,而組合邏輯電路是無(wú)記憶的。有記憶的可以模仿無(wú)記憶的,而無(wú)記憶的卻不能模仿有記憶的。

  同步邏輯電路與異步邏輯電路

  基于FPGA的設(shè)計(jì)幾乎都是時(shí)序邏輯電路,極少會(huì)有設(shè)計(jì)純組合邏輯電路的情況。記憶性賦予時(shí)序邏輯電路更多的功能和更豐富的表達(dá),因此,時(shí)序邏輯電路在FPGA的設(shè)計(jì)中占有非常重要的地位。對(duì)于時(shí)序邏輯,按信號(hào)間關(guān)系來(lái)看,又可分為同步時(shí)序邏輯和異步時(shí)序邏輯,簡(jiǎn)稱同步邏輯和異步邏輯。

  時(shí)序邏輯電路中最關(guān)鍵的就是驅(qū)動(dòng)各個(gè)記憶元素(例如寄存器、RAM甚至鎖存器等)進(jìn)行記憶動(dòng)作的時(shí)鐘信號(hào)。通常,我們認(rèn)為只被一個(gè)時(shí)鐘信號(hào)驅(qū)動(dòng)的設(shè)計(jì)叫做同步時(shí)序邏輯。這是因?yàn)樗杏洃浽囟荚诒煌粋€(gè)時(shí)鐘信號(hào)驅(qū)動(dòng),那么它們的輸出都會(huì)同時(shí)變化,所以它們對(duì)數(shù)字電路的影響是同步的。例如下圖:

 38.JPG

  不過(guò)這個(gè)定義還有些狹隘,廣義的同步時(shí)序邏輯概念中,允許數(shù)字電路中有多個(gè)時(shí)鐘存在,但是這些時(shí)鐘之間應(yīng)該有著固定的因果關(guān)系,又或者它們所驅(qū)動(dòng)的記憶單元在電路上是完全隔離的。對(duì)于第一種情況:如果多個(gè)時(shí)鐘信號(hào)之間有固定的因果關(guān)系的話,那么即使它們對(duì)電路的影響不是完全同時(shí)的,但可以根據(jù)時(shí)鐘之間的因果關(guān)系推斷出這種時(shí)間上的固定誤差,從而電路狀態(tài)的變化也是完全可預(yù)期的,因此可以認(rèn)為是同步。例如

  37.JPG

  如果多個(gè)時(shí)鐘驅(qū)動(dòng)的記憶單元之間完全是隔離的,那么其實(shí)它們就是多個(gè)同步時(shí)序邏輯電路的簡(jiǎn)單集合體,因此也是同步的。例如:

36.JPG

  那么從廣義同步時(shí)序邏輯電路的概念出發(fā),凡是不符合的即屬于異步時(shí)序邏輯電路。不過(guò)這樣的定義顯得太過(guò)偷懶,那么這里總結(jié)一下異步時(shí)序邏輯的特點(diǎn),給出異步時(shí)序邏輯電路的概念:如果時(shí)序邏輯電路存在至少一個(gè)這樣的組合邏輯功能塊——它的輸入、輸出端口不全來(lái)自或?qū)胍粋€(gè)時(shí)鐘或若干個(gè)具有因果關(guān)系的時(shí)鐘所驅(qū)動(dòng)的記憶元素,那么該電路為異步時(shí)序邏輯電路。例如,下圖組合邏輯(一根連線也是組合邏輯,可看成緩沖門)的輸入由clk1時(shí)鐘驅(qū)動(dòng)的寄存器提供,輸出卻給了clk2驅(qū)動(dòng)的寄存器。

 35.JPG

  或下圖,與門的輸入來(lái)自不同的時(shí)鐘所驅(qū)動(dòng)的寄存器。

 34.JPG

  或下圖,與門的兩個(gè)輸入一個(gè)來(lái)自時(shí)鐘驅(qū)動(dòng)的寄存器,一個(gè)來(lái)自純組合的輸入端口。

 33.JPG

  對(duì)比同步邏輯和異步邏輯的概念,我們可以了解到它們也不是完全割裂開(kāi)來(lái)的,其實(shí)也是一種包含關(guān)系。即異步邏輯中肯定有同步邏輯的成分在,但是同步邏輯中不可能有異步的成分在。關(guān)于異步時(shí)序邏輯電路的使用一定要盡量避免,如果不能避免一定要非常的謹(jǐn)慎和小心。



更多信息可以來(lái)這里獲取==>>電子技術(shù)應(yīng)用-AET<< 

mmexport1621241704608.jpg

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,請(qǐng)及時(shí)通過(guò)電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。