數(shù)字邏輯實驗報告-Verilog時序邏輯設計.doc
《數(shù)字邏輯實驗報告-Verilog時序邏輯設計.doc》由會員分享,可在線閱讀,更多相關《數(shù)字邏輯實驗報告-Verilog時序邏輯設計.doc(12頁珍藏版)》請在裝配圖網(wǎng)上搜索。
電 子 科 技 大 學 實 驗 報 告 學生姓名:任彥璟 學 號:2015040101018 指導教師:吉家成 米源 王華 一、實驗項目名稱:Verilog時序邏輯設計 二、實驗目的: 掌握邊沿D觸發(fā)器74x74、同步計數(shù)器74x163、4位通用移位寄存器74x194,的工作原理。 設計移位寄存器74x194設計3位最大序列長度線性反饋移位寄存器(LFSR:Linear Feedback Shift Register)計數(shù)器。 設計同步計數(shù)器74x163 。 三、實驗內(nèi)容: 1.設計邊沿D觸發(fā)器74x74。 2.設計通用移位寄存器74x194。 3.采用1片74x194和其它小規(guī)模邏輯門設計3位LFSR計數(shù)器。 4.設計4位同步計數(shù)器74x163。 四、實驗原理: 74x74邏輯電路圖 74x194邏輯電路圖 3位LFSR邏輯電路圖 74x163邏輯電路圖 上圖的設計可以采用門級描述,也可以采用教材《數(shù)字設計—原理與實踐》(第4版)第525頁的表8-20中的行為描述 五、實驗器材(設備、元器件): PC機、Windows XP、Anvyl或Nexys3開發(fā)板、Xilinx ISE 14.7開發(fā)工具、Digilent Adept下載工具。 六、實驗步驟: 實驗步驟包括:建立新工程,設計代碼與輸入,設計測試文件,設置仿真,查看波形,約束與實現(xiàn)、生成流代碼與下載調(diào)試。 七、關鍵源代碼及波形圖: 1.D觸發(fā)器的Verilog代碼 源碼如下 module vr74x74(CLK, D, PR_L, CLR_L, Q, QN); input CLK, D, PR_L, CLR_L ; output Q, QN ; wire w1, w2, w3, w4 ; nand (w1, PR_L, w2, w4); nand (w2, CLR_L, w1, CLK) ; nand (w3, w2, CLK, w4) ; nand (w4, CLR_L, w3, D) ; nand (Q, PR_L, w2, QN); nand (QN, Q, w3, CLR_L); endmodule initial begin CLK = 0 ; PR_L = 1 ; CLR_L = 1 ; D = 0 ; #4 D = 1 ; #2 D = 0 ; #8 D = 0 ; #2 D = 1 ; #13 CLR_L = 0 ; #10 CLR_L = 1 ; #10 PR_L = 0 ; #5 D = 0 ; #10 PR_L = 1 ; end always begin #5 CLK = ~CLK ; end endmodule module vr74x74_tb; // Inputs reg CLK; reg D; reg PR_L; reg CLR_L; // Outputs wire Q; wire QN; // Instantiate the Unit Under Test (UUT) vr74x74 uut ( .CLK(CLK), .D(D), .PR_L(PR_L), .CLR_L(CLR_L), .Q(Q), .QN(QN) ); 仿真結(jié)果如下圖所示 檢查輸入輸出關系,設計無誤。 2.4位通用移位寄存器74x194 module Vr74x194(CLK,CLR_L,LIN,RIN,S1,S0,A,B,C,D,QA,QB,QC,QD); input CLK,CLR_L,LIN,RIN,S1,S0,A,B,C,D ; output QA,QB,QC,QD ; wire CLK_D ; wire CLR_L_D ; wire S1_L,S1_H; wire S0_L,S0_H; wire QAN,QBN,QCN,QDN ; wire w1,w2,w3,w4,w5,w6,w7,w8,w9,w10; wire w11,w12,w13,w14,w15,w16,w17,w18,w19,w20; buf(CLK_D,CLK); buf(CLR_L_D,CLR_L); not(m1,S1); not(m0,S0); and(n1,S0,m1,RIN); and(n2,S0,S1,A); and(n3,m0,m1,QA); and(n4,m0,S1,QB); and(n5,S0,m1,QA); and(n6,S0,S1,B); and(n7,m0,m1,QB); and(n8,m0,S1,QC); and(n9,S0,m1,QB); and(n10,S0,S1,C); and(n11,m0,m1,QC); and(n12,m0,S1,QD); and(n13,S0,m1,QC); and(n14,S0,S1,D); and(n15,m0,m1,QD); and(n16,m0,S1,LIN); or(p1,n1,n2,n3,n4); or(p2,n5,n6,n7,n8); or(p3,n9,n10,n11,n12); or(p4,n13,n14,n15,n16); vr74x74 q1(CLK_D,p1,1b1,CLR_L_D,QA,QAN); vr74x74 q2(CLK_D,p2,1b1,CLR_L_D,QB,QBN); vr74x74 q3(CLK_D,p3,1b1,CLR_L_D,QC,QCN); vr74x74 q4(CLK_D,p4,1b1,CLR_L_D,QD,QDN); endmodule 源碼如下: S1 = 0; S0 = 0; A = 0; B = 0; C = 0; D = 0; // Wait 100 ns for global reset to finish #100; // Add stimulus here CLR_L = 1 ; S1 = 0 ; S0 = 0 ; #100 ; S1 = 0 ; S0 = 1 ; RIN = 1 ; #100 ; S1 = 1 ; S0 = 1 ; A = 0 ; B = 0 ; C = 0 ; D = 0 ; #100 ; S1 = 1 ; S0 = 0 ; LIN = 1 ; #100 ; S1 = 1 ; S0 = 1 ; A = 1 ; B = 1 ; C = 1 ; D = 1 ; End always begin #5 CLK = ~CLK ; end endmodule 測試文件: module vr74x194_tb; // Inputs reg CLK; reg CLR_L; reg LIN; reg RIN; reg S1; reg S0; reg A; reg B; reg C; reg D; // Outputs wire QA; wire QB; wire QC; wire QD; // Instantiate the Unit Under Test (UUT) Vr74x194 uut ( .CLK(CLK), .CLR_L(CLR_L), .LIN(LIN), .RIN(RIN), .S1(S1), .S0(S0), .A(A), .B(B), .C(C), .D(D), .QA(QA), .QB(QB), .QC(QC), .QD(QD) ); initial begin // Initialize Inputs CLK = 0; CLR_L = 0; LIN = 0; RIN = 0; 仿真結(jié)果如下圖所示 檢驗輸入輸出結(jié)果正常,設計無誤。 3.3位LFSR計數(shù)器 源碼如下:module LFSR( CLK,RESET,X2,X1,X0); input CLK,RESET; output X2,X1,X0; wire w1,w3,w6 ; Vr74x194 U1(.CLK(CLK), .CLR_L(1b1), .RIN(w6), .S1(RESET), .S0(1b1), .A(1b1), .B(1b0), .C(1b0), .D(1b0), .QA(X2), .QB(X1) , .QC(X0) ); xor (w3,X1,X0) ; nor (w1,X2,X1) ; xor (w6,w1,w3) ; endmodule module LFSR_tb; // Inputs reg CLK; reg RESET; // Outputs wire X2; wire X1; wire X0; // Instantiate the Unit Under Test (UUT) LFSR uut ( .CLK(CLK), .RESET(RESET), .X2(X2), .X1(X1), .X0(X0) ); initial begin // Initialize Inputs CLK = 0; RESET = 1; // Wait 100 ns for global reset to finish #100; // Add stimulus here RESET = 0 ; end always begin #5 CLK = ~CLK ; end endmodule 仿真結(jié)果如下圖所示 檢驗輸入輸出結(jié)果正常,設計無誤。 4. 74x163計數(shù)器 and(w21,w20,w25); not(w26,ENT); nor(w1,LD_L,CLR); nor(w2,w1,CLR); xor(w4,w25,~QN[0]); xor(w10,w9,~QN[1]); xor(w16,w15,~QN[2]); xor(w22,w21,~QN[3]); and(w3,w1,A); and(w5,w2,w4); and(w7,w1,B); and(w11,w2,w10); and(w13,w1,C); and(w17,w2,w16); and(w19,w1,D); and(w23,w2,w22); or(w6,w3,w5); or(w12,w7,w11); or(w18,w13,w17); or(w24,w19,w23); vr74x74 U1 (D[0], CLK, 1, CLR_L, Q[0], QN[0]); vr74x74 U2 (D[1], CLK, 1, CLR_L, Q[1], QN[1]); vr74x74 U3 (D[2], CLK, 1, CLR_L, Q[2], QN[2]); vr74x74 U4 (D[3], CLK, 1, CLR_L, Q[3], QN[3]); endmodule module Vr74x163(CLK,CLR_L,LD_L,ENP,ENT,D,Q,RCO ); input CLK,CLR_L,LD_L,ENP,ENT; input [3:0]D; output [3:0]Q; output RCO; wire w1,w2,w3,w4,w5,w6,w7,w8,w9,w10; wire w11,w12,w13,w14,w15,w16,w17,w18,w19,w20; wire w21,w22,w23,w24,w25,w26; wire CK; wire CLR; wire [3:0]QN; wire CLK1; buf(CLK1,CLK); not(CLR,CLR_L); not(w8,QN[0]); nor(w14,QN[1],QN[0]); nor(w20,QN[2],QN[1],QN[0]); and(w25,ENP,ENT); and(w9,w8,w25); and(w15,w14,w25); 源碼如下 // Add stimulus here CLR_L = 0 ; LD_L = 1bx ; ENT = 1bx ; ENP = 1bx ; #20 ; CLR_L = 1 ; LD_L = 0; ENT = 1bx ; ENP = 1bx ; D = 4b1111 ; #20 ; CLR_L = 1 ; LD_L = 1; ENT = 0 ; ENP = 1bx ; #20 ; CLR_L = 1 ; LD_L = 1; ENT = 1bx ; ENP = 0 ; #20 ; CLR_L = 1 ; LD_L = 1; ENT = 1 ; ENP = 1 ; end always begin #5 CLK = ~CLK ; end 3位LFSR計數(shù)器頂層設計模塊 module lfsr_8_main( input CLK , input RESET , output LED2 , LED1 , LED0 ); wire CLK_1Hz ; counter_100M u1( CLK , CLK_1Hz ) ; LFSR_8 u2(CLK_1Hz , RESET , LED2 , LED1 , LED0 ); endmodule 仿真結(jié)果如下圖所示 八、實驗結(jié)論: 邊沿D觸發(fā)器負跳沿觸發(fā)的主從觸發(fā)器工作時,必須在正跳沿前加入輸入信號。如果在CP 高電平期間輸入端出現(xiàn)干擾信號,那么就有可能使觸發(fā)器的狀態(tài)出錯。而邊沿觸發(fā)器允許在CP觸發(fā)沿來到前一瞬間加入輸入信號。移位寄存器D、2D、1D、0D為并行輸入端;3Q、2Q、1Q、0Q為并行輸出端;RS為右移串行輸入端;LS為左移串行輸入端1S、0S為操作模式控制端;RC為直接無條件清零端;CP為時鐘脈沖輸入端。74LS194有5種不同操作模式:并行送數(shù)寄存;右移(方向由3Q→0Q);左移(方向由0Q→3Q);保持及清零。對于同步計數(shù)器,由于時鐘脈沖同時作用于各個觸發(fā)器,克服了異步觸發(fā)器所遇到的觸發(fā)器逐級延遲問題,于是大大提高了計數(shù)器工作頻率,各級觸發(fā)器輸出相差小,譯碼時能避免出現(xiàn)尖峰;但是如果同步計數(shù)器級數(shù)增加,就會使得計數(shù)脈沖的負載加重。 九、總結(jié)及心得體會: 在這此次試驗中,根據(jù)邊沿D觸發(fā)器74x74的原理圖編寫設計和仿真模塊;根據(jù)通用移位寄存器74x194的原理圖編寫設計和仿真模塊;采用1片74x194和其它小規(guī)模邏輯門設計3位LFSR計數(shù)器,編寫設計和仿真了模塊;根據(jù)4位同步計數(shù)器74x163的原理圖編寫設計和仿真了模塊;將輸入為100MHz的系統(tǒng)時鐘采用7片74x163和其它小規(guī)模邏輯門設計了1Hz的數(shù)字信號;在FPGA開發(fā)板上調(diào)試了3位LFSR計數(shù)器。 十、對本實驗過程及方法、手段的改進建議: 無 報告評分: 指導教師簽字:- 配套講稿:
如PPT文件的首頁顯示word圖標,表示該PPT已包含配套word講稿。雙擊word圖標可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設計者僅對作品中獨創(chuàng)性部分享有著作權(quán)。
- 關 鍵 詞:
- 數(shù)字 邏輯 實驗 報告 Verilog 時序 邏輯設計
裝配圖網(wǎng)所有資源均是用戶自行上傳分享,僅供網(wǎng)友學習交流,未經(jīng)上傳用戶書面授權(quán),請勿作他用。
鏈接地址:http://www.3dchina-expo.com/p-6543267.html