串行信號發(fā)生器設(shè)計 (2)課件_第1頁
串行信號發(fā)生器設(shè)計 (2)課件_第2頁
串行信號發(fā)生器設(shè)計 (2)課件_第3頁
串行信號發(fā)生器設(shè)計 (2)課件_第4頁
串行信號發(fā)生器設(shè)計 (2)課件_第5頁
已閱讀5頁,還剩17頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

有符號數(shù)的+、-運算寄存器堆的設(shè)計自命題(序列檢測器設(shè)計)任務(wù)(二)設(shè)計一個簡單ALU單元。要求:1.輸入按鍵0—9(或用10個開關(guān)代替數(shù)字0—9)。2.用數(shù)碼管(或發(fā)光二極管)顯示結(jié)果數(shù)值。模塊接口信號名信號方向描述A[31:0]輸入ALU第一個數(shù)據(jù)輸入端B[31:0]輸入ALU第二個數(shù)據(jù)輸入端Ctrl[4:0]輸入ALU運算功能編碼C[31:0]輸出ALU運算結(jié)果

Zero輸出運算結(jié)果0標志

Overflow輸出運算結(jié)果溢出標志(只在進行有符號數(shù)運算才有意義)Compare輸出比較運算的結(jié)果

編號

功能名稱Ctrl編碼運算功能1無操作00000C=B2‘無符號加’運算00001C=A+B3‘有符號加’運算00010C=A+B4‘減’運算00011C=A-B5‘有符號減’運算00100C=A-B編號

功能名稱Ctrl編碼運算功能6‘與’運算00101C=A&B7‘或’運算00110C=A|B8‘或非’運算00111C=~(A|B)9‘異或’運算01000C=A^B10‘小于置位’運算01001C=(A<B)?1:011‘有符號小于置位’運算01010C=(A<B)?1:012小于001011Compare=(A<0)?1:013小于等于001100Compare=(A≤0)?1:014大于001101Compare=(A>0)?1:015大于等于001110Compare=(A≥0)?1:016等于01111Compare=(A=B)?1:017不等10000Compare=(A≠B)?1:0功能定義開始C=A+BA、B都是正數(shù)?和的最高位=1?置溢出標志和的最高位清零A、B都是負數(shù)?和的最高位=0?置溢出標志和的最高位置1YYYYNNNN2.流程圖:moduleALU(A,B,C,ctl,zero,over,cmp);input[3:0]A,B;input[4:0]ctl;output[3:0]C;outputzero,over,cmp;reg[3:0]C;regcmp,over;assignzero=(C==4'b0000)?1:0;always@(ctlorAorB)case(ctl)5'd00:C=B;5'd01:C=A+B;5‘d02:C<=A+B;//有符號5'd03:C=A-B;5‘d04:C=A-B;//有符號5'd05:C=A&B;5'd06:C=A|B;5'd07:C=~(A|B);5'd08:C=A^B;5'd09:beginif(A<B)C=1;elseC=0;end5‘d10:beginif(A<B)C=1;elseC=0;end//有符號5'd11:beginif(A<0)cmp=1;elsecmp=0;end5'd12:beginif(A<=0)cmp=1;elsecmp=0;end5'd13:beginif(A>0)cmp=1;elsecmp=0;end5'd14:beginif(A>=0)cmp=1;elsecmp=0;end5'd15:beginif(A==B)cmp=1;elsecmp=0;end5'd16:beginif(A!=B)cmp=1;elsecmp=0;endendcaseendmodule5'd02:beginC<=A+B;if(!(A[3]^B[3])&&!A[3]) if(C[3])beginover<=1;C[3]<=0;end

elseover<=0;else

if(!(A[3]^B[3])&&A[3]) if(!C[3])beginover<=1;C[3]<=1;end

elseover<=0;

end//3.原程序:任務(wù)(二)設(shè)計寄存器堆。要求:完成對4個不同數(shù)據(jù)、不同地址的讀寫操作。模塊接口信號定義信號名信號方向描述Clk輸入MIPS-C處理器時鐘Reset輸入復(fù)位信號RS1[4:0]輸入讀寄存器文件時的第1個寄存器下標RS2[4:0]輸入讀寄存器文件時的第2個寄存器下標RD[4:0]輸入寫寄存器文件時的寄存器下標RegWrite輸入寄存器文件寫使能RData1[31:0]輸出

讀寄存器文件時的第1個寄存器的輸出RData2[31:0]輸出讀寄存器文件時的第2個寄存器的輸出WData[31:0]輸出?寄存器文件寫入數(shù)據(jù)功能定義編號功能名稱功能描述1讀寄存器RData1輸出RS1[4:0]所尋址的寄存器;RData2輸出RS2[4:0]所尋址的寄存器。2寫寄存器當時鐘上升沿到來時,并且RegWrite有效時,WData被寫入RD[4:0]所尋址的寄存器自命題(序列檢測器設(shè)計)clkxy序列檢測器設(shè)計一個學(xué)號序列檢測器,檢測學(xué)號的低6位構(gòu)成的8421碼序列。檢測器模塊模型:信號發(fā)生器說明:clk同步時鐘;x串行信號輸入;y序列檢測成功指示信號。串行信號發(fā)生器設(shè)計能接收掃描鍵盤的數(shù)字信息鍵盤信息可顯示在掃描顯示器上按輸入信息的最后四位BCD碼作為串行信號發(fā)生器的輸入數(shù)據(jù),并作串行輸出設(shè)計過程鍵值輸入(JZin

):八位鍵掃描信號(Jscan

):一位,輸出顯示輸出(XSout

):八位顯示掃描信號(XSscan

):三位,輸出串行信號輸出(CXXH

):一位工作時鐘(CLK):一位,輸入串行同步時鐘(synCLK

):一位,輸出第一步:確定引腳的位寬、名稱和輸入輸出極性。(依據(jù):功能要求)8JZinJscan8XSout3XSscanCXXHCLKsynCLKCXXHFSQ設(shè)計過程第三步:模塊設(shè)計:時鐘模塊CLKsynCLKnJZCLKXSCLKCLKFPQ問題:各時鐘的頻率(速度)不知道?設(shè)計過程第三步:模塊設(shè)計:串行信號發(fā)生器模塊CXXHsynCLK43BCDinXCDZsynCLKnCXFSQ鍵盤硬件電路CBAY0Y7KB0KB1KB2RL0RL1RL2RL3RL4RL5RL6RL7實驗箱上提供的接口鍵值識別模塊流程開始Y置第一次標志存鍵值和掃描狀態(tài)N鍵值≠hff?Y清第一次標志轉(zhuǎn)換鍵值為BCD碼置鍵值有效標志第一次標志有效且掃描狀態(tài)相等?N清鍵值有效標志設(shè)計過程第三步:模塊設(shè)計:掃描顯示模塊XSoutXSscan83XSCLK4BCDinSMXSyxj引腳說明:CXXHsynCLK設(shè)計過程第三步(1):掃描顯示模塊的再設(shè)計XSoutXSscan83XSCLK4BCDin4BCDoutXCDZ3SMXSXSmem顯存7段譯碼器XSout8多路選擇器43地址發(fā)生器XSCLKXSscanXCDZBCDoutBCDin?問題:多個地址訪問,存儲器的內(nèi)容會變嗎?顯示應(yīng)至少兩種模式

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論