『壹』 時序電路的實現過程
#include #include void Merge(int sourceArr[],int tempArr[], int startIndex, int midIndex, int endIndex) { int i = startIndex, j=midIndex+1, k = startIndex; while(i!=midIndex+1 && j!=endIndex+1) { if(sourceArr[i] >= sourceArr[j]) tempArr[k++] = sourceArr[j++]; else tempArr[k++] = sourceArr[i++]; } while(i != midIndex+1) tempArr[k++] = sourceArr[i++]; while(j != endIndex+1) tempArr[k++] = sourceArr[j++]; for(i=startIndex; i<=endIndex; i++) sourceArr[i] = tempArr[i]; } //內部使用遞歸 void MergeSort(int sourceArr[], int tempArr[], int startIndex, int endIndex) { int midIndex; if(startIndex < endIndex) { midIndex = (startIndex + endIndex) / 2; MergeSort(sourceArr, tempArr, startIndex, midIndex); MergeSort(sourceArr, tempArr, midIndex+1, endIndex); Merge(sourceArr, tempArr, startIndex, midIndex, endIndex); } } int main(int argc, char * argv[]) { int a[8] = {50, 10, 20, 30, 70, 40, 80, 60}; int i, b[8]; MergeSort(a, b, 0, 7); for(i=0; i<8; i++) printf("%d ", a[i]); printf("\n"); return 0; }
『貳』 時序電路的時序電路的設計
鍾控時序邏輯電路的設計從一組規格說明書開始,繼而得到邏輯圖或一系列布爾函數,再從中生成邏輯圖。時序電路和組合電路的不同之處在於,組合電路定義完全由真值表定義,而時序邏輯電路需要用狀態表定義。所以,時序電路設計的第一步就是得到狀態,或和狀態具有相同信息表達能力的其它邏輯表示形式,如狀態圖等。
同步時序電路是由觸發器和組合門組成的。電路設計包括選擇觸發器和設計組合邏輯結構,保證這個組合邏輯結構和觸發器組成的電路可以實現狀態規格說明書中的預期目標。所需觸發器的最小個數是由電路狀態的個數決定的;n個觸發器可以表示2^n個二進制狀態。組合電路是通過計算觸發器的輸入方程和輸出方程從狀態表中得到的。實際上,一旦觸發器的類型和數量確定或,設計步驟就由對一個時序電路的設計轉換為一個組合電路的設計。用這種方法,就可以使用組合電路設計技術。 下面提到的時序電路的設計步驟與組合電路類似,但還需要一些額外的步驟。
1.規格說明書:如果沒有,先寫出電路的規格說明書。
2.系統描述:從問題的陳述中得出狀態圖或狀態表。
3.狀態賦值:如果通過步驟1中只能得到狀態圖,則在從狀態圖中得到狀態表。並未狀態表中的每個狀態賦二進制代碼。
4.得到觸發器的輸入方程:選擇一種或多種類型的觸發器,通過已經編碼的狀態表中的下一狀態得到觸發器的狀態方程。
5.得到輸出方程:通過狀態表中的輸出信號欄得到輸出方程。
6.優化:優化觸發器的輸入方程和輸出方程。
7.工藝映射:畫出電路由觸發器、與門、或門和反向器所組成的邏輯圖。將這個邏輯圖轉換為由有效的觸發器和門工藝組成的新的邏輯圖。
8.驗證:驗證最終設計的正確性。
為了方便起見,我們一般都省略步驟7即工藝映射,而在示意圖中僅使用觸發器、與門、或門和反向器。
『叄』 邏輯時序電路中的時序是什麼意思
所謂序,就是次序,時序就是按照時間的次序,前面的操作和狀態對於後位的操作和回狀態有影響,而後答位的操作和狀態對於前面的操作結果沒有影響。
比如我設計一個規則,有一扇門,本來是關著的(初狀態0),推門的人不允許進去,進門的要關門。則,第一個人沒有進去0(門開了1),第二個人進去了1(門關上0)第三個人沒有進去0(門打開1)……結果是偶數序號的人進門了,奇數序號的沒有進去。
則前面操作的結果對於後面操作有影響,後面操作對前面操作結果沒有影響。
『肆』 數電時序電路
時序電路是 時序 邏輯 電路。時序,時間 順序,是在時鍾的推動下工回作的,cpu就是一個復雜的答時序電路。組合邏輯電路和時序邏輯電路的最根本區別在於:組合邏輯電路的輸出在任一時刻只取決於當時的輸入信號;而時序邏輯電路的輸出,不僅和當前的輸入有關,還和上時刻的輸出有關,它具有記憶元件(觸發器),可以記錄前一時刻的輸出狀態,它可以沒有輸入,僅在時鍾的驅動下,給出輸出。
『伍』 時序電路的延時隨時鍾頻率變化嗎 是不是時鍾頻率不一樣,電路的延時也是不一樣的謝謝!
時序電路就是一個計數器,就像數數一樣。數得快就早數完,數得慢就晚數完。頻率是1就表示一秒數一個數,頻率是10就表示一秒數十個數。所以頻率越高,時序延時就越短。
延時間=要計數的多少÷時鍾頻率(每秒計數多少)
比如要延遲10秒,計數器計數量為1000周(一個時鍾脈沖叫一個周期,簡稱周)
10秒=1000周÷100周/秒
要是觸發頻率變成50周/秒,延遲時間就是1000/50=20秒
『陸』 至今我還不能理解電路時序,誰能幫我理解一下無限感激
時序分為同步與非同步,在非同步中,是按時間界定的,如通訊信號,約定每100微秒一個信號,以一個上升沿或下降沿作為起始點,每一個信號你在第50微秒時取,它為高或低電平,第二個信號你在第150微秒時取,以後每次增加100微秒取一個數,你所得到的值就是通訊內容。對於同步信號,是按方波進行的,它的每個方波可長可短,不受時間限制,如果是低電平有效,則每次時鍾信號為低電平時取的信號為有效值。
對於同一電路中的時序,它是一個開關門,例如雙輸入與門,它可以作為時序電路來使用,其一個輸入端作為時鍾控制端,另一輸入端可作為信號輸入端,當時鍾為低電平時,無論信號端的值是什麼,其輸出都是低電平,而當時鍾為高電平時,輸出就是數據端的值。因此,它的使用是高電平有效。它主要解決的是當電路復雜時,各信號從輸入到輸出用的門電路數量不一致,所用的時間就不同,在不同時間取輸出值會有不同的結果,用門電路數量匹配的方法雖可以解決這個問題但功耗增加,當設計大規模的電路情況下,問題會非常嚴重,而用時鍾就可以方便的解決這一問題。
『柒』 時序電路的三種工作狀態
1.什麼是時序電路
任一時刻的輸出信號不僅取決於當時的輸入信號,而且還取決於電路的原來狀態,或者說還與以前的輸入有。具有這種邏輯特點的電路稱為時序邏輯電路。說的更具體一點,舉例:兩個多位數相加,從低位到高位逐位相加,完成相加的運算,那麼每一位相加的結果不僅取決於本位的兩個加數,還與低一位是否有進位有關。
從上面的例子可以看出來,時序邏輯電路有兩個特點,(1)時許電路包含了組合電路和存儲電路(實現加法運算--組合電路,保存進位---存儲電路)。(2)存儲電路的輸出狀態必須反饋到組合電路的輸入端,與輸入信號一起,共同決定組合電路的輸出(進位和兩數相加共同決定運算的結果)。
時序電路分為:同步時序電路 和 非同步時序電路。
2.時序圖
在知道了時序電路的概念之後,需要考慮的是如何分析這個電路。或者說如何看懂這個電路。其實想要分析一個時序電路,就是找出電路的狀態和輸出的狀態在輸入變數和時鍾信號作用下的變化規律。
時許電路的每一時刻的狀態不僅和當前的輸入有關而且和電路的歷史情況有關,因此,將電路的一系列時鍾信號作用下狀態轉換的全部過程找出來,則電路的邏輯功能便一目瞭然。狀態轉換圖,狀態轉換表,狀態機流程圖和時序圖都是用來描述電路的狀態變換的。
這里只聊一下時序圖:在輸入信號和時鍾脈沖序列作用下,電路狀態和輸出狀態隨時間 變化的波形圖稱為時序圖。
時序圖究竟應該怎的么畫呢?
首先是寫方程如下圖:
『捌』 時序邏輯電路的問題(答得好有追加)
畫時序圖不能說是按照轉化表或轉換圖來畫。而應該說根據某一時刻的輸入和觸發器的初始狀態,去查轉換表或轉換圖,畫出此時的輸出時序。輸入和初始狀態決定輸出。而不是機械的去硬套表或圖。
狀態轉換圖和狀態轉換表實際是同一種時序表達形式。它們是根據電路的狀態方程計算出來的。
相對來說,查狀態轉換表,畫時序圖更直觀,更具體,因為它把每個時刻觸發器的狀態按照流水線的方式表達出來,包括無效狀態、空翻。而狀態轉換圖是從狀態轉換表提煉簡化出來的,相對來說抽象點。但是二者的本質一樣。
就以你下面的三張圖為例: CP是時鍾,相當於喊123起步走的,X是輸入, Q1、Q0和Z1、Z2實質是一樣,都是輸出,叫法不一樣,前者稱為寄存器輸出(REG型),後者是外部輸出(WIRE型)。這張時序圖表述的是在輸入分別為0或1時,初始狀態是00,觸發器隨時鍾的翻轉的情況。
看懂這張圖,關鍵是要明白現態和次態的概念。現態和次態是動態轉變的。比如Q1、Q0現態是00 ,輸入是0,Q1和Q0在第一個脈沖的下降沿發生翻轉,變成次態01 .而此時的次態,在下個CP下降沿到來前,也是現態。然後下面的過程,結合狀態表以此類推,有點繞。你自己琢磨一下。不懂再交流。
『玖』 什麼是時序電路
時序邏輯電路 簡稱時序電路
時序電路,它是由最基本的 邏輯門 電路加上反饋邏輯迴路(輸出到輸入)或器件組合而成的電路,與 組合電路 最本質的區別在於時序電路具有記憶功能。時序電路的特點是:輸出不僅取決於當時的輸入值,而且還與電路過去的狀態有關。它類似於含儲能元件的電感或電容的電路,如 觸發器 、 鎖存器 、 計數器 、 移位寄存器 、 儲存器 等電路都是時序電路的典型器件。
時序邏輯電路的狀態是由存儲電路來記憶和表示的。
編輯本段 導讀 雖然組合邏輯電路能夠很好地處理像加、減等這樣的操作,但是要單獨使用組合邏輯電路,使操作按照一定的順序執行,需要串聯起許多組合邏輯電路,而要通過硬體實現這種電路帶價是很大的,並且靈活性也很差。為了實現一種有效而且靈活的操作序列,我們需要構造一種能夠存儲各種操作之間的信息的電路,我們稱這種電路為時序電路。
編輯本段 時序電路的定義 雖然每個數字電路系統可能包含有組合電路,但是在實際應用中絕大多數的系統還包括存儲元件,我們將這樣的系統描述為時序電路。
時序電路的框圖如圖7.1.1所示。組合電路和存儲元件互聯後組成了時序電路。存儲元件是能夠存儲二進制信息的電路。存儲元件在某一時刻存儲的二進制信息定義為該時刻存儲元件的狀態。時序電路通過其輸入端從周圍接受二進制信息。時序電路的輸入以及存儲元件的當前狀態共同決定了時序電路輸出的二進制數據,同時它們也確定了存儲元件的下一個狀態。從框圖中我們可以看出,時序電路的輸出不僅僅是輸入的函數,而且也是存儲元件的當前狀態的函數。存儲元件的下一個狀態也是輸入以及當前狀態的函數。因此,時序電路可以由輸入、內部狀態和輸出構成的時間序列完全確定。
邏輯設計領域主要有兩種類型的時序電路,它們分類的標准取決於我們觀察到的輸入信息的時機和內部狀態改變的時機。同步時序電路( synchronous sequential circuit )的行為可以根據其在離散的時間點上的信號信息來定義。而非同步時序電路( asynchronous sequential circuit )的行為則取決於任意時刻的輸入信號以及輸入信號在連續的時間內變化的順序。
編輯本段 時序電路的分析 時序電路的行為是由輸入、輸出和電路當前狀態決定的。輸出和下一狀態是輸入和當前狀態的函數。通過對時序電路進行分析,可以得到關於輸入、輸出和狀態三者的時序的一個合理描述。
如果一個電路包含這樣的觸發器,該觸發器的時鍾輸入是直接驅動或者有一個時鍾信號間接驅動的,同時這個電路在正常執行時不需載入直接置位和間接置位,那麼我們就稱這個電路為同步時序電路。觸發器可以是任何類型的,邏輯圖可以包括也可以不包括組合邏輯。
輸入方程 時序電路的邏輯圖通常包括觸發器和組合門。我們所使用地觸發器類型和組合電路的一系列布爾函數為我們提供了繪制時序電路邏輯圖所需要的全部信息。在組合邏輯電路中,觸發器輸入信號的產生,可以用一系列的布爾函數描述,我們稱這些布爾函數為觸發器的輸入方程( flip-flop input equation )。在這里,我們同樣將採用傳統的表示方法,使用觸發器的輸入符號作為觸發器輸入方程中的變數,使用觸發器的輸出符號作為變數下標。在組核電路中,觸發器的輸入方程是一系列布爾表達式,下表變數是組合電路的輸出符號。因為在電路中觸發器的輸出端始終與輸入端相連,所以命名為「觸發器的輸入方程」。
觸發器輸入方程為指定時序電路的邏輯圖提供了一種間接的代數表達方法。這些方程的字母符號隱含了所用的觸發器的類型,同時完全確定了驅動觸發器的組合邏輯電路。時間變數在觸發器輸入方程中沒有指明,但是已經暗含在觸發器C輸入端的時鍾之中。
『拾』 分析時序電路的最大傳輸延遲時間的時候,觸發器的保持時間為什麼不計算在內
結論:最大傳輸延遲/最小傳輸延遲的計算 和 建立/保持時間 半毛錢關系都沒有
建立/保持時間 是 常量,是用來判斷時序電路設計是否達到要求的(結合時鍾周期)
如:時鍾周期-最大傳輸延遲=信號建立最小提前量,如果大於 建立時間,那就說明肯定能達標
分析如下
首先說說建立時間/保持時間是什麼,你肯定知道,但我覺得你沒理解好:
CLK邊沿來之前/之後,信號必須保持不變的時間------這是一個標准,是一個常數,而不是一個變數,太多人混淆這個概念了
我們知道,時序電路中,信號是一級一級的傳輸過去的,一個Clock走一級
假設現在CLK邊沿到來,信號開始往下一級傳遞,那麼如何保證這個信號能按要求正確傳遞呢?
這個時候,我們根據這一級的特性,定義了兩個參數:建立/保持時間
只要信號滿足這個參數,就能確保信號正確傳遞
1.對於這一級以及當前時刻t0而言,首先是要考慮建立時間:這一級的輸入信號,是否已經早早准備好了?就是上一級的上個信號,是否已經傳遞到達上一級的輸出端(當前級的輸入端),並且准備時間已經>=當前級的建立時間。
2.然後,考慮保持時間:信號除了要提前准備好,還必須在t0時刻後保持不變一段時間,才能確保信號能夠正確在當前級的輸入端傳到其輸出端
所以,上一級信號的傳輸延遲如果太大,就可能導致當前級的輸入信號無法提前准備好;如果太小,就會導致信號過早變化,無法滿足當前級對輸入信號的保持時間
綜上,最大傳輸延遲/最小傳輸延遲的計算 和 建立/保持時間 半毛錢關系都沒有