競爭與險象

本來是準備花一次課(兩個課時)好好講講這方面的內(nèi)容的,實驗課老師緊催慢催,花了不到一節(jié)課就過去了,感覺很多東西都來不及講,借助這篇簡述詳細說說,希望對大家能有點幫助。

概述

前面的課程中,我們學(xué)習(xí)的都是理想情況,即:假設(shè)電信號經(jīng)過線路和每個邏輯門電路時,沒有延遲,在這一前提下,得到非常規(guī)整的波形圖。然而,在現(xiàn)實中,這種情況是不可能存在的(否則,我們學(xué)完這門課就能造CPU了),信號經(jīng)過線路和邏輯門都會有延遲。在IT界,任何分析只要加上時間(有些還會加上空間)這個維度,問題就很難解了,同樣,數(shù)字電路中只要加上時間,其難度立馬就難上一個級別,分析起來比較燒腦。

如果線路延遲和邏輯門的延遲,會有怎樣的結(jié)果呢?

基本概念

先說基本概念。在組合電路中,同一信號或同時變化的某些信號,經(jīng)過不同路徑到達某一點的時間有先有后,這種現(xiàn)象稱為競爭。

由于競爭而引起電路輸出發(fā)生瞬間錯誤的現(xiàn)象稱為險象(冒險)。表現(xiàn)為輸出端出現(xiàn)了原設(shè)計中沒有的窄脈沖,常稱為“毛刺”。在組合電路中,“毛刺”不一定造成嚴重后果。但當(dāng)組合邏輯與時序邏輯結(jié)合在一起時,險象就可能造成嚴重錯誤。特別是當(dāng)組合邏輯的輸出作為時序電路的使能輸入時。

競爭是邏輯電路正常工作時也會出現(xiàn)的現(xiàn)象,有競爭的地方不一定會出現(xiàn)險象,而險象一定是競爭的結(jié)果。

引起錯誤輸出的競爭稱為臨界競爭;沒產(chǎn)生錯誤輸出的競爭稱為非臨界競爭。

靜態(tài)險象

下面以一個例子進行說明:

圖1:出現(xiàn)險象的例子

我們對這個例子進行分析,例子中假設(shè)經(jīng)過線路沒有延遲,經(jīng)過每個門的延遲是一樣的,均為td(其實已經(jīng)很理想化了,但分析起來也很煩)。分析的條件,假設(shè)A=B=1,C從1->0。顯然,此時:

F = !C + C

理論上,它的值應(yīng)該為1,但是實際的電路表現(xiàn)呢?當(dāng)C從1變?yōu)?時,!C的值變化需要經(jīng)過一個td,A!C的值需要經(jīng)過兩個td,BC的值變化需要一個td,F(xiàn)的值變化需要幾個td呢?因為產(chǎn)生F的是一個或門,所以,如果BC是1,則不用考慮A!C,可以認為此時F的延遲是兩個td;如果BC是0時,則F的值由A!C決定,這時認為F的延遲是三個td。

現(xiàn)在我們具體分析C從1變?yōu)?時的情況,分為幾個時刻:

| 各門輸出\ 時刻| t-1 | t0| t1 | t2 | t3 | t4 |
|:-----------:|:-------------:||:-------------:|:-------:|:-----:|:-----:|:-----:|
| C | 1| 0 | 0 | 0 | 0 | 0 |
| !C | 0| 0 | 1 | 1 | 1 | 1 |
| A!C | 0| 0 | 0 | 1 | 1 | 1 |
| BC | 1| 1 | 0 | 1 | 1 | 1 |
| F | 1| 1 | 1 | 0 | 1 | 1 |

在看上面這個表格時,因為門有延遲,所以!C的在 t1時刻的取值實際上是t0時刻C的值取非(經(jīng)過一個非門延遲);同理A!C在 t2時刻的值是t1時刻!C的值(因為A取1),其它的類似分析,根據(jù)這個表格,我們可以看到F的值有一個毛刺出現(xiàn)(在 t2錯誤輸出0)。大家看的時候,結(jié)合電路圖可以畫上面類似的表格。

現(xiàn)在,我們再分析另一種情況,假設(shè)A=B=1,如果C從0變?yōu)?呢?會不會有險象呢?還是按照上面來畫表:

各門輸出 \ 時刻 t-1 t0 t1 t2 t3 t4
C 0 1 1 1 1 1
!C 1 1 0 0 0 1
A!C 1 1 1 0 0 1
BC 0 0 1 1 1 1
F 1 1 1 1 1 1

顯然,當(dāng)C從0變?yōu)?的時候,沒有險象產(chǎn)生。

上面的情況是一個變量發(fā)生變化的情況,其具體表現(xiàn)有兩種可能,如下圖所示:

圖2:靜0現(xiàn)象和靜1現(xiàn)象

靜1險象就是出現(xiàn)“1-0-1”的電路(1為穩(wěn)態(tài),0為毛刺);靜0險象就是“0-1-0”電路(0為穩(wěn)態(tài),1為毛刺),具體規(guī)律為:

  • 當(dāng)F=A+!A時,當(dāng)A由1-->0時,會產(chǎn)生靜1險象
  • 當(dāng)F = A * !A時,當(dāng)A由0-->1時,會產(chǎn)生靜0險象

一個變量變化時產(chǎn)生的險象叫做邏輯險象,兩個變量變化產(chǎn)生的險象叫功能險象。還是針對圖1中的例子,假設(shè)A=1,BC從00-->11,則其變化在卡諾圖上的示意圖如下所示:

圖3: 功能險象卡諾圖

由圖可知,BC從00變?yōu)?1,有兩條路徑:

  • B先從0-->1, 然后C從0-->1,此時,電路的值變化情況如圖3中的綠色箭頭所示,所經(jīng)歷的都是F值為1的卡諾圖方格,不會產(chǎn)生錯誤輸出,不會產(chǎn)生險象;
  • C先從0-->1,然后B先從0-->1,此時,電路按照圖3中白色箭頭變化,會有一個毛刺產(chǎn)生,從而產(chǎn)生險象。

功能險象是電路中不可避免的,靜態(tài)險象則是我們需要防范的重點。如何防范呢?

靜態(tài)險象的判斷與避免

在上面分析的基礎(chǔ)上,其實單從邏輯表達式就可以對是否存在靜態(tài)險象進行判斷。

對于與或表達式F,如果對變量進行適當(dāng)賦值之后,F(xiàn)能變成:F=A+!A,其對應(yīng)的卡諾圖具有如下特征:

圖4:靜1險象電路的卡諾圖特征

在圖4中,F(xiàn)的表達式在A的原變量區(qū)和反變量區(qū)相切,其對應(yīng)的語義是:當(dāng)A從1-->0時,會出現(xiàn)值為0的毛刺,其規(guī)避方法為:將相切界面的兩個1方格用卡諾圈圈起來,將F變?yōu)椋?/p>

F = !A!C + !AB + AC + BC

對于或與表達式,對變量進行賦值后,F(xiàn)變?yōu)?F=A * !A的形式,則其對應(yīng)的電路圖中存在險象,其對應(yīng)的卡諾圖具有如下特征:

圖5:靜0險象電路的卡諾圖特征

在圖5中,F(xiàn)在C的原變量區(qū)和反變量區(qū)相切,對應(yīng)的語義是:當(dāng)C從0-->1時,會出現(xiàn)值為1的毛刺,規(guī)避方法則是:將相切界面的兩個0方格用卡諾圈圈起來,將F變?yōu)椋?/p>

F = (A + C)(B + !C)(!A+!B)

總結(jié)

本節(jié)主要是了解掌握電路中競爭與險象的基本概念,對電路中存在的各種風(fēng)險有較為清晰的認識,如何對電路進行測試分析是EE工程相關(guān)研究生的一個研究方向,有興趣的童鞋可以進一步挖坑填坑。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1. 下列敘述錯誤的是()。 (2.0 分) A. 質(zhì)量管理包括QA和QC一切活動的全部過程 B. 影像質(zhì)量是指對...
    我們村我最帥閱讀 4,401評論 0 8
  • 高級鉗工應(yīng)知鑒定題庫(858題) ***單選題*** 1. 000003難易程度:較難知識范圍:相關(guān)4 01答案:...
    開源時代閱讀 6,308評論 1 9
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,616評論 19 139
  • 雪球只會越滾越大! 今天下午公司集體整理內(nèi)部繫統(tǒng)信息,說起來很繁瑣,雖說方式簡單粗放,但是珊首席很負責(zé)任,開始...
    粟莎閱讀 344評論 0 0
  • 她哭的梨花帶雨 我的肩膀 快要承受不住她的重量 她說 他是我心里的一根刺啊 看不到也拔不掉 在酒精的氣味里 仿佛瞥...
    Echo王老七閱讀 618評論 2 51

友情鏈接更多精彩內(nèi)容