




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第八講同步數(shù)字系統(tǒng)設(shè)計基礎(chǔ)數(shù)字系統(tǒng)的分層和分域描述
現(xiàn)代數(shù)字系統(tǒng)設(shè)計方法數(shù)字系統(tǒng)RTL級設(shè)計方法
本講要點和實驗要求第八講同步數(shù)字系統(tǒng)設(shè)計基礎(chǔ)數(shù)字系統(tǒng)的分層和分域描述數(shù)字系統(tǒng)的描述
數(shù)字系統(tǒng)常采用分層描述的方法,實踐證明這是行之有效的,因為:分層次反映了事物的內(nèi)在聯(lián)系,可使大化小,復(fù)雜變簡單。分層次可將一些細(xì)節(jié)隱藏起來,減少每次處理事物的數(shù)量,便于控制事物復(fù)雜度。分層次可以實現(xiàn)模塊化的設(shè)計。數(shù)字系統(tǒng)的描述數(shù)字系統(tǒng)常采用分層描述的方法,實踐證明這是數(shù)字系統(tǒng)描述可按抽象層次不同劃分為行為域、結(jié)構(gòu)域和物理域描述:結(jié)構(gòu)域行為域物理域體系結(jié)構(gòu)框圖模塊框圖網(wǎng)表邏輯門系統(tǒng)規(guī)格算法行為RTL布爾方程傳遞函數(shù)晶體管版圖單元宏單元模塊系統(tǒng)實現(xiàn)數(shù)字系統(tǒng)描述可按抽象層次不同劃分為行為域、結(jié)構(gòu)域和物理域描述現(xiàn)代數(shù)字系統(tǒng)設(shè)計方法結(jié)構(gòu)域行為域物理域體系結(jié)構(gòu)框圖模塊框圖網(wǎng)表邏輯門系統(tǒng)規(guī)格算法行為RTL布爾方程傳遞函數(shù)晶體管系統(tǒng)級人工設(shè)計RTL綜合行為綜合模塊級人工設(shè)計單元(LE)單元映射、布局、布線現(xiàn)代數(shù)字系統(tǒng)設(shè)計方法結(jié)構(gòu)域行為域物理域體系結(jié)模塊網(wǎng)表邏輯門系系統(tǒng)規(guī)格(specification)系統(tǒng)規(guī)格是數(shù)字系統(tǒng)設(shè)計的目標(biāo)。包括:
數(shù)字系統(tǒng)功能的描述。常用功能框圖、功能說明、時序圖、C語言及systemC等描述。I/O引腳的描述,如功能、排列、驅(qū)動能力、電平等。定時的描述,如引腳建立保持時間、時序要求、時鐘頻率等。其它物理參數(shù),如功耗、極限參數(shù)、封裝等。系統(tǒng)規(guī)格(specification)系統(tǒng)規(guī)格是數(shù)字系統(tǒng)設(shè)系統(tǒng)體系結(jié)構(gòu)設(shè)計(系統(tǒng)設(shè)計)按系統(tǒng)規(guī)格的要求,人工設(shè)計系統(tǒng)的體系結(jié)構(gòu),劃分系統(tǒng)功能塊,并給出系統(tǒng)的設(shè)計規(guī)范:
功能塊、輸入輸出接口定義及時序要求。時鐘域劃分,跨時鐘域異步電路劃分。系統(tǒng)和功能塊的復(fù)位處理方法。系統(tǒng)和功能塊的測試方法。對復(fù)雜設(shè)計需建立系統(tǒng)的行為模型。系統(tǒng)體系結(jié)構(gòu)設(shè)計(系統(tǒng)設(shè)計)按系統(tǒng)規(guī)格的要求,人工設(shè)計系統(tǒng)的功能塊的算法模型一般功能塊總是完成一個確定的任務(wù),可以采用算法模型描述。算法模型描述了模塊硬件的行為,但不關(guān)心硬件具體實現(xiàn)的方法。算法模型是事件驅(qū)動的,不含嚴(yán)格的時鐘信息,類似于軟件的程序,可用C、HDL語言描述?,F(xiàn)在也較多采用MATLAB,systemC等語言描述。功能塊的算法模型一般功能塊總是完成一個確定的任務(wù),可以采用模塊體系結(jié)構(gòu)設(shè)計由算法模型設(shè)計出模塊及模塊的體系結(jié)構(gòu),一般是將模塊劃分出兩個獨立的部分,一是完成數(shù)據(jù)處理操作的數(shù)字電路部分,稱數(shù)據(jù)路徑;其二是決定不同操作執(zhí)行順序的控制電路部分,稱控制邏輯??刂七壿嫈?shù)據(jù)路徑狀態(tài)反饋控制信號輸出數(shù)據(jù)輸入數(shù)據(jù)控制輸入模塊體系結(jié)構(gòu)設(shè)計由算法模型設(shè)計出模塊及模塊的體系結(jié)RTL級設(shè)計RTL(RegisterTransferLevel)級設(shè)計是模塊設(shè)計的主要工作。模塊的功能可定義為一組寄存器及對寄存器的操作,對寄存器的信號進(jìn)行傳輸和處理稱為寄存器傳輸操作。數(shù)字系統(tǒng)設(shè)計是RTL級設(shè)計需滿足三個條件:1)
系統(tǒng)中有定義的一組寄存器。如R1、R2。2)
能對寄存器的數(shù)據(jù)進(jìn)行操作。如R1<-R1+R2。3)
系統(tǒng)中有信號控制操作的時序。如if(T1==1)R1<-R2;RTL級設(shè)計RTL(RegisterTransferRTL級設(shè)計一般常用的寄存器操作有:
將數(shù)據(jù)由一個寄存器傳輸?shù)搅硪粋€寄存器的傳輸操作。對寄存器中的數(shù)據(jù)進(jìn)行算數(shù)、邏輯操作。對寄存器中數(shù)據(jù)進(jìn)行移位操作。對寄存器進(jìn)行復(fù)位、置位操作。R1R3R2+D3D2D1D00D3D2D1右移RTL級設(shè)計一般常用的寄存器操作有:
R1R3R2+D3D門級網(wǎng)表與物理實現(xiàn)由RTL級設(shè)計,通過綜合工具,可綜合出門級網(wǎng)表。后續(xù)的布局布線設(shè)計工作一般可在設(shè)計人員指導(dǎo)下由EDA工具完成。門級網(wǎng)表與物理實現(xiàn)由RTL級設(shè)計,通過綜合工具,可綜合出門級
數(shù)字系統(tǒng)RTL級設(shè)計方法
數(shù)字系統(tǒng)設(shè)計模型:
一般數(shù)字系統(tǒng)的邏輯設(shè)計分為兩個獨立的部分,數(shù)據(jù)路徑和控制邏輯。
控制邏輯數(shù)據(jù)路徑狀態(tài)反饋控制信號輸出數(shù)據(jù)輸入數(shù)據(jù)控制輸入數(shù)字系統(tǒng)RTL級設(shè)計方法數(shù)字系統(tǒng)設(shè)計模型:一般數(shù)據(jù)路徑
數(shù)據(jù)路徑是輸入數(shù)據(jù)的處理單元,一般完成數(shù)據(jù)的算數(shù)運算、邏輯運算和移位等操作,主要由加法器、邏輯運算單元、譯碼器、多路選擇器、計數(shù)器、移位寄存器和數(shù)據(jù)寄存器等器件構(gòu)成。數(shù)據(jù)路徑數(shù)據(jù)路徑是輸入數(shù)據(jù)的處理單元,一般完成數(shù)控制邏輯
控制邏輯:給數(shù)據(jù)路徑提供一系列控制信號,并由控制輸入和數(shù)據(jù)路徑的狀態(tài)反饋決定控制信號的產(chǎn)生??刂七壿嬛饕捎|發(fā)器和邏輯門組成。數(shù)字系統(tǒng)的控制邏輯和數(shù)據(jù)路徑目前一般使用RTL級的硬件算法確定。數(shù)字系統(tǒng)設(shè)計中最有挑戰(zhàn)性和最富有創(chuàng)造性的工作是提出硬件算法。
控制邏輯控制邏輯:給數(shù)據(jù)路徑提供一系列控制信號,并由算法流程圖算法流程圖是從程序流程圖發(fā)展出來的一種數(shù)字系統(tǒng)的功能描述方法。它由啟動框、結(jié)束框、工作框、判決框、條件框和有向線組成,且各框由事件驅(qū)動并發(fā)工作,與程序流程圖不同。左圖所示算法流程圖描述了一個計數(shù)器R,啟動一次就從0計數(shù)到10后結(jié)束,并同步顯示。工作框??騼?nèi)說明對應(yīng)電路的功能判決框??騼?nèi)說明判決條件,并有2個以上輸出。條件框??騼?nèi)說明對應(yīng)電路功能,并一定與判決框一個分支相連。R<=0R=10?R顯示啟動結(jié)束10R<=R+1算法流程圖算法流程圖是從程序流程圖發(fā)展出來的一種數(shù)字算法狀態(tài)機(jī)(ASM)算法流程圖可以方便地描述數(shù)字系統(tǒng)的主要功能,但不能描述同步時鐘控制下,信號間的嚴(yán)格時序關(guān)系。進(jìn)一步發(fā)展的可用于定義數(shù)字系統(tǒng)硬件電路的方法,稱為算法狀態(tài)機(jī)圖(algorithmicstatemachine),簡稱ASM圖。ASM圖:與算法流程圖形式上相似,但有本質(zhì)區(qū)別。它主要由三部分組成:狀態(tài)框,判決框和條件框。算法流程圖與ASM圖主要區(qū)別在操作驅(qū)動不同,算法流程圖是由事件驅(qū)動的操作,而ASM圖的所有操作是由時鐘驅(qū)動的操作。算法狀態(tài)機(jī)(ASM)算法流程圖可以方便地描述數(shù)字系統(tǒng)的主要狀態(tài)框
狀態(tài)框描述了在某一個狀態(tài)下狀態(tài)機(jī)的操作和輸出。
寄存器操作或輸出
R<=0;START名稱編碼S1001例=>名稱編碼本狀態(tài)操作DDD狀態(tài)轉(zhuǎn)移和次態(tài)輸出組合電路CLK輸入輸出100當(dāng)前狀態(tài)輸出組合電路輸出輸入狀態(tài)框定義的電路狀態(tài)框
狀態(tài)框描述了在某一個狀態(tài)下狀態(tài)機(jī)的操作和輸出。
寄判決框判決框又稱為條件分支框,用單入口雙出口的菱形框或單入口多出口的多邊形表示,如圖所示??蛑袃?nèi)容是被檢驗的判別變量和判別條件,其中的判別變量可以是狀態(tài)變量,也可以是外輸入變量;變量的個數(shù)可以是一個,也可以是多個;變量的作用可以同等重要,可以有優(yōu)先級順序。判決框描述了當(dāng)前輸入和狀態(tài)變量對狀態(tài)轉(zhuǎn)移或輸出的影響,不同的條件給出相應(yīng)的轉(zhuǎn)移路徑。判決條件10判決條件判決框判決框又稱為條件分支框,用單入口雙出口的菱形框或條件框
條件框描述了在某一個狀態(tài)下狀態(tài)機(jī)的有條件操作和輸出。條件框的輸入一定是來自判決框的轉(zhuǎn)移路徑,條件框的操作是在給定狀態(tài)下,滿足一定條件后執(zhí)行的操作。寄存器操作或輸出
來自判決框的轉(zhuǎn)移路徑
E
R<=001條件框條件框描述了在某一個狀態(tài)下狀態(tài)機(jī)的有條件操作和ASM塊
ASM塊包括一個狀態(tài)框和連接到它輸出的所有判決框和條件框。每一個ASM塊描述了一個時鐘周期的系統(tǒng)狀態(tài)和操作。如圖,當(dāng)系統(tǒng)處于S1狀態(tài)時,在ASM塊內(nèi)的所有操作會在同一個時鐘周期內(nèi)同時執(zhí)行,同時系統(tǒng)從S1狀態(tài)將轉(zhuǎn)移到另一個狀態(tài)(S2、S3或S4),具體轉(zhuǎn)移路徑由E、F值決定。
A<=A+1
E
R<=001F01S2S3S4S1001ASM塊ASM塊ASM塊包括一個狀態(tài)框和連接到它輸出的所ASM塊與狀態(tài)機(jī)關(guān)系DDD狀態(tài)轉(zhuǎn)移和次態(tài)輸出組合電路CLK輸入輸出100當(dāng)前狀態(tài)輸出組合電路輸出輸入狀態(tài)框定義的電路判決框和條件框定義的電路A<=A+1
E
R<=001F01S2S3S4S1001ASM塊次態(tài)輸出組合電路ASM塊與狀態(tài)機(jī)關(guān)系DDD狀態(tài)轉(zhuǎn)移和次態(tài)輸出組合電路CLK輸ASM的時序同步數(shù)字系統(tǒng)中所有寄存器的時序是由一個時鐘控制的。時鐘不僅加在數(shù)據(jù)路徑上,也加在控制邏輯(控制狀態(tài)機(jī))上。當(dāng)CLK上升沿到來時,系統(tǒng)轉(zhuǎn)向狀態(tài)S1,下列操作在同一個時鐘期間并行進(jìn)行:a)
A<=A+1b)
如果E=1,則R<=0c)
當(dāng)下一個CLK上升沿到來時,當(dāng)前狀態(tài)S1轉(zhuǎn)向次態(tài)。現(xiàn)態(tài)S1操作:A<=A+1;If(E=1)thenR<=0;CLK次態(tài)S2、S3或S4ASM的時序同步數(shù)字系統(tǒng)中所有寄存器的時序是由一個時鐘控制ASM例等效的ASM塊
表示組合邏輯。在同一個時鐘周期內(nèi)完成。與執(zhí)行順序無關(guān)。x1x2Z2Sn001S2011S3100S2110S3S狀態(tài)Z1=1Z2=1ASM例等效的ASM塊表示組合邏輯。在同一個時鐘周期內(nèi)完成ASM例等效的判決框
ASM例等效的判決框ASM例錯誤反饋信號的ASM塊
反饋路徑未通過狀態(tài)框。產(chǎn)生組合邏輯環(huán)。ASM例錯誤反饋信號的ASM塊反饋路徑未通過狀態(tài)框。產(chǎn)生組ASM例功能等效的并行判決框和串行判決框。ASM例功能等效的并行判決框和串行判決框。ASM圖與狀態(tài)圖轉(zhuǎn)換ASM圖與狀態(tài)圖是等效的,可以互相轉(zhuǎn)換。狀態(tài)框判決框條件框ASM圖與狀態(tài)圖轉(zhuǎn)換ASM圖與狀態(tài)圖是等效的,可以互相轉(zhuǎn)換ASM流程圖與狀態(tài)圖的時序圖ASM流程圖與狀態(tài)圖的時序圖設(shè)計例模塊功能:設(shè)計一個實現(xiàn)兩個4bit無符號二進(jìn)制數(shù)相乘的硬件乘法器。設(shè)計要求:要求用一個4bit加法器串行相加實現(xiàn),如圖模塊。
輸入輸出說明:Reset:復(fù)位Clk:時鐘St:啟動信號Done:運算結(jié)束信號Mul:乘數(shù)Muld:被乘數(shù)Product:運算結(jié)果設(shè)計例模塊功能:設(shè)計一個實現(xiàn)兩個4bit無符號二進(jìn)制數(shù)相二進(jìn)制乘法原理(算法模型)二進(jìn)制乘法原理(算法模型)模塊算法流程圖
說明:St:操作啟動信號。ACC[8:0]:累加器cnt:移位計數(shù)器SUM[4:0]:加法器和MULD:4bit被乘數(shù)MUL:4bit乘數(shù)結(jié)果放在ACC[7:0]中重點:算法流程圖要描述清楚數(shù)據(jù)路徑、操作數(shù)據(jù)和控制信號間的邏輯關(guān)系。開始St=1?ACC<=0,cnt<=0,ACC[3:0]<=MULSUM<=ACC[8:4]+{0,MULD}ACC[0]=1?ACC[8:4]<=SUMACC右移1位cnt=3?YYNNNYcnt=cnt+1模塊算法流程圖說明:開始St=1?ACC<=0,c模塊體系結(jié)構(gòu)框圖數(shù)據(jù)路徑控制邏輯4bit加法器9bit移位寄存器CLK:同步時鐘Load:數(shù)據(jù)加載信號Sh:ACC右移信號Ad:ACC[8:4]更新信號Done:結(jié)束信號St:開始信號M:乘數(shù)值信號模塊體系結(jié)構(gòu)框圖數(shù)據(jù)路徑控制邏輯4bit加法器9bit移位數(shù)據(jù)路徑設(shè)計-加法器部分modulemy_mult_data(reset,clk,mul,muld,load,sh,ad,m,product);inputreset;inputclk;//時鐘inputload;//數(shù)據(jù)加載信號inputsh;//ACC寄存器值右移信號inputad;//ACC[8:4]值更新信號input[3:0]mul;//4bit乘數(shù)input[3:0]muld;//4bit被乘數(shù)outputm;//是否加被乘數(shù)信號output[7:0]product;//乘法運算結(jié)果
//模塊內(nèi)局部信號reg[8:0]acc;//ACC寄存器wire[4:0]sum;//加法器輸出部分和
assignsum={1‘b0,muld}+acc[7:4];//描述加法器數(shù)據(jù)路徑設(shè)計-加法器部分modulemy_mult_dat數(shù)據(jù)路徑設(shè)計-移位寄存器部分assignm=acc[0];
//將ACC最低位送m//用always塊描述累加器操作always@(posedgeresetorposedgeclk)if(reset==1)acc<=9‘d0;//復(fù)位信號reset為1時ACC置0elseif(load==1)acc<={5‘b00000,mul};//加載0和乘數(shù)到ACCelseif(ad==1)acc[8:4]<=sum;//加載求和值到ACCelseif(sh==1)acc<={1‘b0,acc[8:1]};//ACC右移
一位assignproduct=acc[7:0];
//乘法運算結(jié)果endmodule數(shù)據(jù)路徑設(shè)計-移位寄存器部分assignm=acc[0模塊時序圖設(shè)計對較復(fù)雜的關(guān)鍵電路,結(jié)合算法流程圖和初步的體系結(jié)構(gòu)圖,設(shè)計者應(yīng)畫出模塊的時序圖,必要時交互修改體系結(jié)構(gòu)圖。這是一個反復(fù)修改、細(xì)化設(shè)計的過程,需要設(shè)計者靈和應(yīng)用相關(guān)知識和發(fā)揮創(chuàng)意,將事件驅(qū)動的算法轉(zhuǎn)換為時鐘驅(qū)動的控制信號和數(shù)據(jù)操作。計算結(jié)果模塊時序圖設(shè)計對較復(fù)雜的關(guān)鍵電路,結(jié)合算法流程控制邏輯ASM圖說明:根據(jù)算法流程圖、體系結(jié)構(gòu)圖或時序圖,分配狀態(tài),并畫出ASM圖。信號說明:Load:數(shù)據(jù)加載信號Sh:ACC右移信號Ad:ACC[8:4]更新信號Done:結(jié)束信號St:開始信號M:乘數(shù)值信號K:ACC右移次數(shù)為3時,k<=1控制邏輯ASM圖控制邏輯的verilog設(shè)計modulemy_mult_ctl(reset,clk,start,m,load,sh,ad,done);inputclk;//時鐘inputst;//開始信號inputm;//是否加被乘數(shù)信號outputload;regload;//數(shù)據(jù)加載信號outputsh;regsh;//ACC寄存器值右移信號outputad;regad;//ACC[8:4]值更新信號outputdone;regdone;//結(jié)束信號
wirek;//累加結(jié)束信號reg[1:0]cnt;//累加計數(shù)器reg[1:0]state,next_state;parameter[1:0]S0=2’b00,S1=2’b01,S2=2’b10,S3=2’b11;控制邏輯的verilog設(shè)計modulemy_mult_c控制邏輯的verilog設(shè)計always@(storkormorstate)//狀態(tài)轉(zhuǎn)移和輸出,狀態(tài)機(jī)組合邏輯電路beginload<=0;//非阻塞賦值,在本次always操作完成時才賦值,sh<=0;//在本次always中其它地方可以改變該值,實際ad<=0;//賦值是最后一次改變的值。done<=0;case(state)S0:if(st==1’b1)//開始beginload<=1’b1;next_state<=S1;//進(jìn)入S1endelsenext_state<=S0;S1:if(m==1’b1)//乘數(shù)為1beginad<=1’b1;//加被乘數(shù),修改Ad賦值next_state<=S2;//進(jìn)入S2endelsebeginsh<=1’b1;//乘數(shù)為0,直接右移,修改Sh賦值
if(cnt==2’b11)//乘數(shù)完進(jìn)入S3next_state<=S3;elsenext_state<=S1//乘數(shù)未完,返回S1end控制邏輯的verilog設(shè)計always@(stork控制邏輯的verilog設(shè)計S2:beginsh<=1’b1;//右移
if(cnt==2’b11)//乘數(shù)完進(jìn)入S3next_state<=S3;elsenext_state<=S1//乘數(shù)未完,返回S1endS3:beginnext_state<=S0;//返回S0done<=1’b1;//一次操作完成,結(jié)束指示置1endendcaseend控制邏輯的verilog設(shè)計S2:beginsh<=1控制邏輯的verilog設(shè)計always@(posedgeresetorposedgeclk)//狀態(tài)轉(zhuǎn)移,狀態(tài)機(jī)時序邏輯電路if(reset==1)state<=0;elsestate<=next_state;//D觸發(fā)器
always@(posedgeclkorposedgeload)//右移計數(shù)器,狀態(tài)機(jī)輔助電路if(load==1'b1)//加載數(shù)據(jù)時,清右移計數(shù)器cntcnt<=2'b00;elseif(sh==1'b1)//右移1位,右移計數(shù)器cnt加1cnt<=cnt+1'b1;endmodule控制邏輯的verilog設(shè)計always@(posedge綜合出my_mult.v的RTL級原理電路
綜合出my_mult.v的RTL級原理電路綜合出my_mult.v的門級電路
綜合出my_mult.v的門級電路模塊頂層設(shè)計模塊頂層設(shè)計模塊仿真測試-啟動仿真工具模塊仿真測試-啟動仿真工具模塊仿真測試-仿真激勵文件模塊仿真測試-仿真激勵文件模塊仿真測試-功能仿真結(jié)果波形模塊仿真測試-功能仿真結(jié)果波形本講要點數(shù)字系統(tǒng)的分層和分域描述概念系統(tǒng)規(guī)格、體系結(jié)構(gòu)、算法模型、RTL級設(shè)計、行為綜合和RTL級綜合概念。數(shù)字系統(tǒng)設(shè)計模型,控制邏輯和數(shù)據(jù)路徑的概念。算法流程圖定義與應(yīng)用。時序圖設(shè)計算法狀態(tài)機(jī)圖定義和設(shè)計,與狀態(tài)圖的轉(zhuǎn)換。掌握基于算法狀態(tài)機(jī)的設(shè)計方法。本講要點數(shù)字系統(tǒng)的分層和分域描述概念實驗要求實驗三:8bit無符號數(shù)串行硬件乘法器模塊設(shè)計和功能仿真(2學(xué)時)設(shè)計要求:要求用一個8bit加法器串行相加實現(xiàn),模塊如下圖。完成模塊設(shè)計和功能仿真。輸入輸出說明:Reset:復(fù)位Clk:時鐘St:啟動信號Done:運算結(jié)束信號Mul:乘數(shù)Muld:被乘數(shù)Product:運算結(jié)果實驗要求實驗三:8bit無符號數(shù)串行硬件乘法器模塊設(shè)計和功能第八講同步數(shù)字系統(tǒng)設(shè)計基礎(chǔ)數(shù)字系統(tǒng)的分層和分域描述
現(xiàn)代數(shù)字系統(tǒng)設(shè)計方法數(shù)字系統(tǒng)RTL級設(shè)計方法
本講要點和實驗要求第八講同步數(shù)字系統(tǒng)設(shè)計基礎(chǔ)數(shù)字系統(tǒng)的分層和分域描述數(shù)字系統(tǒng)的描述
數(shù)字系統(tǒng)常采用分層描述的方法,實踐證明這是行之有效的,因為:分層次反映了事物的內(nèi)在聯(lián)系,可使大化小,復(fù)雜變簡單。分層次可將一些細(xì)節(jié)隱藏起來,減少每次處理事物的數(shù)量,便于控制事物復(fù)雜度。分層次可以實現(xiàn)模塊化的設(shè)計。數(shù)字系統(tǒng)的描述數(shù)字系統(tǒng)常采用分層描述的方法,實踐證明這是數(shù)字系統(tǒng)描述可按抽象層次不同劃分為行為域、結(jié)構(gòu)域和物理域描述:結(jié)構(gòu)域行為域物理域體系結(jié)構(gòu)框圖模塊框圖網(wǎng)表邏輯門系統(tǒng)規(guī)格算法行為RTL布爾方程傳遞函數(shù)晶體管版圖單元宏單元模塊系統(tǒng)實現(xiàn)數(shù)字系統(tǒng)描述可按抽象層次不同劃分為行為域、結(jié)構(gòu)域和物理域描述現(xiàn)代數(shù)字系統(tǒng)設(shè)計方法結(jié)構(gòu)域行為域物理域體系結(jié)構(gòu)框圖模塊框圖網(wǎng)表邏輯門系統(tǒng)規(guī)格算法行為RTL布爾方程傳遞函數(shù)晶體管系統(tǒng)級人工設(shè)計RTL綜合行為綜合模塊級人工設(shè)計單元(LE)單元映射、布局、布線現(xiàn)代數(shù)字系統(tǒng)設(shè)計方法結(jié)構(gòu)域行為域物理域體系結(jié)模塊網(wǎng)表邏輯門系系統(tǒng)規(guī)格(specification)系統(tǒng)規(guī)格是數(shù)字系統(tǒng)設(shè)計的目標(biāo)。包括:
數(shù)字系統(tǒng)功能的描述。常用功能框圖、功能說明、時序圖、C語言及systemC等描述。I/O引腳的描述,如功能、排列、驅(qū)動能力、電平等。定時的描述,如引腳建立保持時間、時序要求、時鐘頻率等。其它物理參數(shù),如功耗、極限參數(shù)、封裝等。系統(tǒng)規(guī)格(specification)系統(tǒng)規(guī)格是數(shù)字系統(tǒng)設(shè)系統(tǒng)體系結(jié)構(gòu)設(shè)計(系統(tǒng)設(shè)計)按系統(tǒng)規(guī)格的要求,人工設(shè)計系統(tǒng)的體系結(jié)構(gòu),劃分系統(tǒng)功能塊,并給出系統(tǒng)的設(shè)計規(guī)范:
功能塊、輸入輸出接口定義及時序要求。時鐘域劃分,跨時鐘域異步電路劃分。系統(tǒng)和功能塊的復(fù)位處理方法。系統(tǒng)和功能塊的測試方法。對復(fù)雜設(shè)計需建立系統(tǒng)的行為模型。系統(tǒng)體系結(jié)構(gòu)設(shè)計(系統(tǒng)設(shè)計)按系統(tǒng)規(guī)格的要求,人工設(shè)計系統(tǒng)的功能塊的算法模型一般功能塊總是完成一個確定的任務(wù),可以采用算法模型描述。算法模型描述了模塊硬件的行為,但不關(guān)心硬件具體實現(xiàn)的方法。算法模型是事件驅(qū)動的,不含嚴(yán)格的時鐘信息,類似于軟件的程序,可用C、HDL語言描述?,F(xiàn)在也較多采用MATLAB,systemC等語言描述。功能塊的算法模型一般功能塊總是完成一個確定的任務(wù),可以采用模塊體系結(jié)構(gòu)設(shè)計由算法模型設(shè)計出模塊及模塊的體系結(jié)構(gòu),一般是將模塊劃分出兩個獨立的部分,一是完成數(shù)據(jù)處理操作的數(shù)字電路部分,稱數(shù)據(jù)路徑;其二是決定不同操作執(zhí)行順序的控制電路部分,稱控制邏輯??刂七壿嫈?shù)據(jù)路徑狀態(tài)反饋控制信號輸出數(shù)據(jù)輸入數(shù)據(jù)控制輸入模塊體系結(jié)構(gòu)設(shè)計由算法模型設(shè)計出模塊及模塊的體系結(jié)RTL級設(shè)計RTL(RegisterTransferLevel)級設(shè)計是模塊設(shè)計的主要工作。模塊的功能可定義為一組寄存器及對寄存器的操作,對寄存器的信號進(jìn)行傳輸和處理稱為寄存器傳輸操作。數(shù)字系統(tǒng)設(shè)計是RTL級設(shè)計需滿足三個條件:1)
系統(tǒng)中有定義的一組寄存器。如R1、R2。2)
能對寄存器的數(shù)據(jù)進(jìn)行操作。如R1<-R1+R2。3)
系統(tǒng)中有信號控制操作的時序。如if(T1==1)R1<-R2;RTL級設(shè)計RTL(RegisterTransferRTL級設(shè)計一般常用的寄存器操作有:
將數(shù)據(jù)由一個寄存器傳輸?shù)搅硪粋€寄存器的傳輸操作。對寄存器中的數(shù)據(jù)進(jìn)行算數(shù)、邏輯操作。對寄存器中數(shù)據(jù)進(jìn)行移位操作。對寄存器進(jìn)行復(fù)位、置位操作。R1R3R2+D3D2D1D00D3D2D1右移RTL級設(shè)計一般常用的寄存器操作有:
R1R3R2+D3D門級網(wǎng)表與物理實現(xiàn)由RTL級設(shè)計,通過綜合工具,可綜合出門級網(wǎng)表。后續(xù)的布局布線設(shè)計工作一般可在設(shè)計人員指導(dǎo)下由EDA工具完成。門級網(wǎng)表與物理實現(xiàn)由RTL級設(shè)計,通過綜合工具,可綜合出門級
數(shù)字系統(tǒng)RTL級設(shè)計方法
數(shù)字系統(tǒng)設(shè)計模型:
一般數(shù)字系統(tǒng)的邏輯設(shè)計分為兩個獨立的部分,數(shù)據(jù)路徑和控制邏輯。
控制邏輯數(shù)據(jù)路徑狀態(tài)反饋控制信號輸出數(shù)據(jù)輸入數(shù)據(jù)控制輸入數(shù)字系統(tǒng)RTL級設(shè)計方法數(shù)字系統(tǒng)設(shè)計模型:一般數(shù)據(jù)路徑
數(shù)據(jù)路徑是輸入數(shù)據(jù)的處理單元,一般完成數(shù)據(jù)的算數(shù)運算、邏輯運算和移位等操作,主要由加法器、邏輯運算單元、譯碼器、多路選擇器、計數(shù)器、移位寄存器和數(shù)據(jù)寄存器等器件構(gòu)成。數(shù)據(jù)路徑數(shù)據(jù)路徑是輸入數(shù)據(jù)的處理單元,一般完成數(shù)控制邏輯
控制邏輯:給數(shù)據(jù)路徑提供一系列控制信號,并由控制輸入和數(shù)據(jù)路徑的狀態(tài)反饋決定控制信號的產(chǎn)生??刂七壿嬛饕捎|發(fā)器和邏輯門組成。數(shù)字系統(tǒng)的控制邏輯和數(shù)據(jù)路徑目前一般使用RTL級的硬件算法確定。數(shù)字系統(tǒng)設(shè)計中最有挑戰(zhàn)性和最富有創(chuàng)造性的工作是提出硬件算法。
控制邏輯控制邏輯:給數(shù)據(jù)路徑提供一系列控制信號,并由算法流程圖算法流程圖是從程序流程圖發(fā)展出來的一種數(shù)字系統(tǒng)的功能描述方法。它由啟動框、結(jié)束框、工作框、判決框、條件框和有向線組成,且各框由事件驅(qū)動并發(fā)工作,與程序流程圖不同。左圖所示算法流程圖描述了一個計數(shù)器R,啟動一次就從0計數(shù)到10后結(jié)束,并同步顯示。工作框。框內(nèi)說明對應(yīng)電路的功能判決框??騼?nèi)說明判決條件,并有2個以上輸出。條件框??騼?nèi)說明對應(yīng)電路功能,并一定與判決框一個分支相連。R<=0R=10?R顯示啟動結(jié)束10R<=R+1算法流程圖算法流程圖是從程序流程圖發(fā)展出來的一種數(shù)字算法狀態(tài)機(jī)(ASM)算法流程圖可以方便地描述數(shù)字系統(tǒng)的主要功能,但不能描述同步時鐘控制下,信號間的嚴(yán)格時序關(guān)系。進(jìn)一步發(fā)展的可用于定義數(shù)字系統(tǒng)硬件電路的方法,稱為算法狀態(tài)機(jī)圖(algorithmicstatemachine),簡稱ASM圖。ASM圖:與算法流程圖形式上相似,但有本質(zhì)區(qū)別。它主要由三部分組成:狀態(tài)框,判決框和條件框。算法流程圖與ASM圖主要區(qū)別在操作驅(qū)動不同,算法流程圖是由事件驅(qū)動的操作,而ASM圖的所有操作是由時鐘驅(qū)動的操作。算法狀態(tài)機(jī)(ASM)算法流程圖可以方便地描述數(shù)字系統(tǒng)的主要狀態(tài)框
狀態(tài)框描述了在某一個狀態(tài)下狀態(tài)機(jī)的操作和輸出。
寄存器操作或輸出
R<=0;START名稱編碼S1001例=>名稱編碼本狀態(tài)操作DDD狀態(tài)轉(zhuǎn)移和次態(tài)輸出組合電路CLK輸入輸出100當(dāng)前狀態(tài)輸出組合電路輸出輸入狀態(tài)框定義的電路狀態(tài)框
狀態(tài)框描述了在某一個狀態(tài)下狀態(tài)機(jī)的操作和輸出。
寄判決框判決框又稱為條件分支框,用單入口雙出口的菱形框或單入口多出口的多邊形表示,如圖所示??蛑袃?nèi)容是被檢驗的判別變量和判別條件,其中的判別變量可以是狀態(tài)變量,也可以是外輸入變量;變量的個數(shù)可以是一個,也可以是多個;變量的作用可以同等重要,可以有優(yōu)先級順序。判決框描述了當(dāng)前輸入和狀態(tài)變量對狀態(tài)轉(zhuǎn)移或輸出的影響,不同的條件給出相應(yīng)的轉(zhuǎn)移路徑。判決條件10判決條件判決框判決框又稱為條件分支框,用單入口雙出口的菱形框或條件框
條件框描述了在某一個狀態(tài)下狀態(tài)機(jī)的有條件操作和輸出。條件框的輸入一定是來自判決框的轉(zhuǎn)移路徑,條件框的操作是在給定狀態(tài)下,滿足一定條件后執(zhí)行的操作。寄存器操作或輸出
來自判決框的轉(zhuǎn)移路徑
E
R<=001條件框條件框描述了在某一個狀態(tài)下狀態(tài)機(jī)的有條件操作和ASM塊
ASM塊包括一個狀態(tài)框和連接到它輸出的所有判決框和條件框。每一個ASM塊描述了一個時鐘周期的系統(tǒng)狀態(tài)和操作。如圖,當(dāng)系統(tǒng)處于S1狀態(tài)時,在ASM塊內(nèi)的所有操作會在同一個時鐘周期內(nèi)同時執(zhí)行,同時系統(tǒng)從S1狀態(tài)將轉(zhuǎn)移到另一個狀態(tài)(S2、S3或S4),具體轉(zhuǎn)移路徑由E、F值決定。
A<=A+1
E
R<=001F01S2S3S4S1001ASM塊ASM塊ASM塊包括一個狀態(tài)框和連接到它輸出的所ASM塊與狀態(tài)機(jī)關(guān)系DDD狀態(tài)轉(zhuǎn)移和次態(tài)輸出組合電路CLK輸入輸出100當(dāng)前狀態(tài)輸出組合電路輸出輸入狀態(tài)框定義的電路判決框和條件框定義的電路A<=A+1
E
R<=001F01S2S3S4S1001ASM塊次態(tài)輸出組合電路ASM塊與狀態(tài)機(jī)關(guān)系DDD狀態(tài)轉(zhuǎn)移和次態(tài)輸出組合電路CLK輸ASM的時序同步數(shù)字系統(tǒng)中所有寄存器的時序是由一個時鐘控制的。時鐘不僅加在數(shù)據(jù)路徑上,也加在控制邏輯(控制狀態(tài)機(jī))上。當(dāng)CLK上升沿到來時,系統(tǒng)轉(zhuǎn)向狀態(tài)S1,下列操作在同一個時鐘期間并行進(jìn)行:a)
A<=A+1b)
如果E=1,則R<=0c)
當(dāng)下一個CLK上升沿到來時,當(dāng)前狀態(tài)S1轉(zhuǎn)向次態(tài)?,F(xiàn)態(tài)S1操作:A<=A+1;If(E=1)thenR<=0;CLK次態(tài)S2、S3或S4ASM的時序同步數(shù)字系統(tǒng)中所有寄存器的時序是由一個時鐘控制ASM例等效的ASM塊
表示組合邏輯。在同一個時鐘周期內(nèi)完成。與執(zhí)行順序無關(guān)。x1x2Z2Sn001S2011S3100S2110S3S狀態(tài)Z1=1Z2=1ASM例等效的ASM塊表示組合邏輯。在同一個時鐘周期內(nèi)完成ASM例等效的判決框
ASM例等效的判決框ASM例錯誤反饋信號的ASM塊
反饋路徑未通過狀態(tài)框。產(chǎn)生組合邏輯環(huán)。ASM例錯誤反饋信號的ASM塊反饋路徑未通過狀態(tài)框。產(chǎn)生組ASM例功能等效的并行判決框和串行判決框。ASM例功能等效的并行判決框和串行判決框。ASM圖與狀態(tài)圖轉(zhuǎn)換ASM圖與狀態(tài)圖是等效的,可以互相轉(zhuǎn)換。狀態(tài)框判決框條件框ASM圖與狀態(tài)圖轉(zhuǎn)換ASM圖與狀態(tài)圖是等效的,可以互相轉(zhuǎn)換ASM流程圖與狀態(tài)圖的時序圖ASM流程圖與狀態(tài)圖的時序圖設(shè)計例模塊功能:設(shè)計一個實現(xiàn)兩個4bit無符號二進(jìn)制數(shù)相乘的硬件乘法器。設(shè)計要求:要求用一個4bit加法器串行相加實現(xiàn),如圖模塊。
輸入輸出說明:Reset:復(fù)位Clk:時鐘St:啟動信號Done:運算結(jié)束信號Mul:乘數(shù)Muld:被乘數(shù)Product:運算結(jié)果設(shè)計例模塊功能:設(shè)計一個實現(xiàn)兩個4bit無符號二進(jìn)制數(shù)相二進(jìn)制乘法原理(算法模型)二進(jìn)制乘法原理(算法模型)模塊算法流程圖
說明:St:操作啟動信號。ACC[8:0]:累加器cnt:移位計數(shù)器SUM[4:0]:加法器和MULD:4bit被乘數(shù)MUL:4bit乘數(shù)結(jié)果放在ACC[7:0]中重點:算法流程圖要描述清楚數(shù)據(jù)路徑、操作數(shù)據(jù)和控制信號間的邏輯關(guān)系。開始St=1?ACC<=0,cnt<=0,ACC[3:0]<=MULSUM<=ACC[8:4]+{0,MULD}ACC[0]=1?ACC[8:4]<=SUMACC右移1位cnt=3?YYNNNYcnt=cnt+1模塊算法流程圖說明:開始St=1?ACC<=0,c模塊體系結(jié)構(gòu)框圖數(shù)據(jù)路徑控制邏輯4bit加法器9bit移位寄存器CLK:同步時鐘Load:數(shù)據(jù)加載信號Sh:ACC右移信號Ad:ACC[8:4]更新信號Done:結(jié)束信號St:開始信號M:乘數(shù)值信號模塊體系結(jié)構(gòu)框圖數(shù)據(jù)路徑控制邏輯4bit加法器9bit移位數(shù)據(jù)路徑設(shè)計-加法器部分modulemy_mult_data(reset,clk,mul,muld,load,sh,ad,m,product);inputreset;inputclk;//時鐘inputload;//數(shù)據(jù)加載信號inputsh;//ACC寄存器值右移信號inputad;//ACC[8:4]值更新信號input[3:0]mul;//4bit乘數(shù)input[3:0]muld;//4bit被乘數(shù)outputm;//是否加被乘數(shù)信號output[7:0]product;//乘法運算結(jié)果
//模塊內(nèi)局部信號reg[8:0]acc;//ACC寄存器wire[4:0]sum;//加法器輸出部分和
assignsum={1‘b0,muld}+acc[7:4];//描述加法器數(shù)據(jù)路徑設(shè)計-加法器部分modulemy_mult_dat數(shù)據(jù)路徑設(shè)計-移位寄存器部分assignm=acc[0];
//將ACC最低位送m//用always塊描述累加器操作always@(posedgeresetorposedgeclk)if(reset==1)acc<=9‘d0;//復(fù)位信號reset為1時ACC置0elseif(load==1)acc<={5‘b00000,mul};//加載0和乘數(shù)到ACCelseif(ad==1)acc[8:4]<=sum;//加載求和值到ACCelseif(sh==1)acc<={1‘b0,acc[8:1]};//ACC右移
一位assignproduct=acc[7:0];
//乘法運算結(jié)果endmodule數(shù)據(jù)路徑設(shè)計-移位寄存器部分assignm=acc[0模塊時序圖設(shè)計對較復(fù)雜的關(guān)鍵電路,結(jié)合算法流程圖和初步的體系結(jié)構(gòu)圖,設(shè)計者應(yīng)畫出模塊的時序圖,必要時交互修改體系結(jié)構(gòu)圖。這是一個反復(fù)修改、細(xì)化設(shè)計的過程,需要設(shè)計者靈和應(yīng)用相關(guān)知識和發(fā)揮創(chuàng)意,將事件驅(qū)動的算法轉(zhuǎn)換為時鐘驅(qū)動的控制信號和數(shù)據(jù)操作。計算結(jié)果模塊時序圖設(shè)計對較復(fù)雜的關(guān)鍵電路,結(jié)合算法流程控制邏輯ASM圖說明:根據(jù)算法流程圖、體系結(jié)構(gòu)圖或時序圖,分配狀態(tài),并畫出ASM圖。信號說明:Load:數(shù)據(jù)加載信號Sh:ACC右移信號Ad:ACC[8:4]更新信號Done:結(jié)束信號St:開始信號M:乘數(shù)值信號K:ACC右移次數(shù)為3時,k<=1控制邏輯ASM圖控制邏輯的verilog設(shè)計modulemy_mult_ctl(reset,clk,start,m,load,sh,ad,done);inputclk;//時鐘inputst;//開始信號inputm;//是否加被乘數(shù)信號outputload;regload;//數(shù)據(jù)加載信號outputsh;regsh;//ACC寄存器值右移信號outputad;regad;//ACC[8:4]值更新信號outputdone;regdone;//結(jié)束信號
wirek;//累加結(jié)束信號reg[1:0]cnt;//累加計數(shù)器reg[1:0]state,next_state;parameter[1:0]S0=2’b00,S1=2’b01,S2=2’b10,S3=2’b11;控制邏輯的verilog設(shè)計modulemy_mult_c控制邏輯的verilog設(shè)計always@(storkormorstate)//狀態(tài)轉(zhuǎn)移和輸出,狀態(tài)機(jī)組合邏輯電路beginload<=0;//非阻塞賦值,在本次always操作完成時才賦值,sh<=0;//在本次always中其它地方可以改變該值,實際ad<=0;//賦值是最后一次改變的值。done<=0;case(state)S0:if(st==1’b1)//開始beginload<=1’
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 理財市場中的倫理問題研究試題及答案
- 小語種練習(xí)方法總結(jié)試題及答案
- 畜牧師職稱考試全方位備考指南及試題及答案
- 2025年特許金融分析師考試測評工具探究試題及答案
- 國際金融理財師的培訓(xùn)課程試題及答案
- 小語種考試趣味學(xué)習(xí)方式試題及答案分享
- 網(wǎng)絡(luò)編輯師證書試題與答案的深入探討
- 2025年國際金融理財師考試投資分析方法試題及答案
- 2025年特許金融分析師考試的信號分析試題及答案
- 2025年特許金融分析師考試分析技巧試題及答案
- 中國反恐形勢的現(xiàn)狀和對策分析研究
- 籃球協(xié)會章程和規(guī)章制度
- 技師學(xué)院高層次人才引進(jìn)和管理辦法
- 水輪機(jī)選型畢業(yè)設(shè)計及solidworks建立轉(zhuǎn)輪模型
- 無創(chuàng)正壓通氣急診臨床實踐專家共識
- 【精選】人教版四年級下冊數(shù)學(xué)《脫式計算》(含簡便運算)專項練習(xí)題
- 常用檢驗項目的醫(yī)學(xué)決定水平
- 急診及重癥醫(yī)學(xué)-機(jī)械通氣
- YY/T 1248-2014乙型肝炎病毒表面抗體測定試劑(盒)(化學(xué)發(fā)光免疫分析法)
- 重癥醫(yī)學(xué)科各項規(guī)章制度匯編
- 平面位置(軸線)測量記錄表
評論
0/150
提交評論