版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第頁移位寄存器實驗報告姓名:陳素學(xué)號:3120100621專業(yè):軟件工程課程名稱:邏輯與計算機設(shè)計基礎(chǔ)實驗同組學(xué)生姓名:張聞實驗時間:yyyy-mm-dd實驗地點:紫金港東4-509指導(dǎo)老師:一、實驗?zāi)康暮鸵笳莆找莆患拇嫫鞯墓ぷ髟砑霸O(shè)計方法掌握串、并數(shù)據(jù)轉(zhuǎn)換的概念與方法了解序列信號在CPU控制器設(shè)計中的應(yīng)用二、實驗內(nèi)容和原理2.1實驗原理帶并行置入的移位寄存器移位寄存器:每來一個時鐘脈沖,寄存器中的數(shù)據(jù)按順序向左或向右移動一位必須采用主從觸發(fā)器或邊沿觸發(fā)器不能采用電平觸發(fā)器數(shù)據(jù)移動方式:左移、右移數(shù)據(jù)輸入輸出方式串行輸入,串行輸出串行輸入,并行輸出并行輸入,串行輸出串行輸入的移位寄存器使用D觸發(fā)器,可構(gòu)成串行輸入的移位寄存器2.2標題<正文>帶并行輸入的右移移位寄存器數(shù)據(jù)輸入移位寄存器的方式:串行輸入、并行輸入帶并行輸入的8位右移移位寄存器moduleshift_reg(clk,S,s_in,p_in,Q);inputwireclk,S,s_in;inputwire[7:0]p_in;outputwire[7:0]Q;wire[7:0]D;wirenS;FDFDQ0(.C(clk),.D(D[0]),.Q(Q[0])),FDQ1(.C(clk),.D(D[1]),.Q(Q[1])),FDQ2(.C(clk),.D(D[2]),.Q(Q[2])),FDQ3(.C(clk),.D(D[3]),.Q(Q[3])),FDQ4(.C(clk),.D(D[4]),.Q(Q[4])),FDQ5(.C(clk),.D(D[5]),.Q(Q[5])),FDQ6(.C(clk),.D(D[6]),.Q(Q[6])),FDQ7(.C(clk),.D(D[7]),.Q(Q[7]));OR2D0_L(.I0(L_0),.I1(R_0),.O(D[0])),D1_L(.I0(L_1),.I1(R_1),.O(D[1])),D2_L(.I0(L_2),.I1(R_2),.O(D[2])),D3_L(.I0(L_3),.I1(R_3),.O(D[3])),D4_L(.I0(L_4),.I1(R_4),.O(D[4])),D5_L(.I0(L_5),.I1(R_5),.O(D[5])),D6_L(.I0(L_6),.I1(R_6),.O(D[6])),D7_L(.I0(L_7),.I1(R_7),.O(D[7]));并行-串行轉(zhuǎn)換器沒有啟動命令時并行-串行轉(zhuǎn)換器2.1實驗內(nèi)容用VerilogHDL語言,采用結(jié)構(gòu)化描述方法設(shè)計一個8位帶并行輸入的右移移位寄存器。編寫該移位寄存器的代碼模塊shift_reg針對該模塊,編寫波形仿真輸入代碼進行波形仿真,并分析仿真結(jié)果是否正確設(shè)計16位帶并行輸入的右移移位寄存器。2、增加到計算器模塊中。3、修改相關(guān)代碼。4、修改ucf文件。5、下載并驗證。三、主要儀器設(shè)備必須采用編號樣式,設(shè)備的數(shù)量和單位應(yīng)對齊。示范如下:xx開發(fā)板 1套裝有ISE的PC機 1臺四、操作方法與實驗步驟修改TOP程序,添加移位寄存器Moduletop(inputwireclk,inputwire[7:0]btn_in,inputwire[3:0]switch,outputwire[11:0]anode,outputwire[15:0]segment)reg[15:0]op1,op2;reg[15:0]display_num;wire[11:0]btn_out;wire[15:0]result,cnt;wire[31:0]display_num32b;wireclk_1s;wire[15:0]Q1,data_out;initialbegin op1=16'b0011_0011_0011_0011;//3333 op2=16'b0010_0010_0010_0010;//2222endpbdebouncep0(clk,btn_in[0],btn_out[0]);displaym0(clk,display_num,anode[3:0],segment[7:0]);//displaymoduledisplay32bitsm1(clk,display_num32b,anode[11:4],segment[15:8]);calculate_resultm2(switch,op1,op2,result);//calculateresultcounter_1sm3(clk,clk_1s);couter_16reversiblem4(clk_1s&btn_out[8],switch[4],cnt,Rc);shift_regm6(btn_out[9],switch[8],switch[9],op1,Q1);regfilem7(btn_out[10],btn_out[11],switch[13:10],op2,data_out);always@(posedgebtn_out[7])op2[15:12]<=op2[15:12]+4'd1;assigndisplay_num32b={op2,op1};//assigndisplay_num=result;always@*begincase(switch[7:6])2'b00:display_num=result;//result2'b01:display_num=cnt;2'b10:display_num=Q1;2'b11:beginif(btn_out[10]==1)display_num=op2;elsedisplay_num=data_out;endendcaseendendmoduleRegfile--16程序模塊1moduleregfile(wclk,rclk,address,data_in,data_out);inputwirewclk,rclk;inputwire[3:0]address;inputwire[15:0]data_in;outputwire[15:0]data_out;wire[15:0]Yi;wire[15:0]clk;assignclk[15:0]={16{wclk}}&Yi;wire[15:0]regQ0,regQ1,regQ2,regQ3,regQ4,regQ5,regQ6,regQ7,regQ8,regQ9,regQ10,regQ11,regQ12,regQ13,regQ14,regQ15;decode_4_16M0(address[3:0],wclk,Yi);//4-16譯碼器mux_16_1M1(rclk,address[3:0],regQ0,regQ1,regQ2,regQ3,regQ4,regQ5,regQ6,regQ7,regQ8,regQ9,regQ10,regQ11,regQ12,regQ13,regQ14,regQ15,data_out);//16-1:多選一register16R0(clk[0],data_in,regQ0),//clk=wclk&YiR1(clk[1],data_in,regQ1),R2(clk[2],data_in,regQ2),R3(clk[3],data_in,regQ3),R4(clk[4],data_in,regQ4),R5(clk[5],data_in,regQ5),R6(clk[6],data_in,regQ6),R7(clk[7],data_in,regQ7),R8(clk[8],data_in,regQ8),R9(clk[9],data_in,regQ9),R10(clk[10],data_in,regQ10),R11(clk[11],data_in,regQ11),R12(clk[12],data_in,regQ12),R13(clk[13],data_in,regQ13),R14(clk[14],data_in,regQ14),R15(clk[15],data_in,regQ15);endmodule4位4—16變量譯碼器程序模塊moduledecode_4_16(address,wclk,Yi);inputwire[3:0]address;inputwirewclk;outputreg[15:0]Yi;always@*beginif(wclk==1'b1)case(address[3:0])4'b0000:Yi=16'h0001;4'b0001:Yi=16'h0002;4'b0010:Yi=16'h0004;4'b0011:Yi=16'h0008;4'b0100:Yi=16'h0010;4'b0101:Yi=16'h0020;4'b0110:Yi=16'h0040;4'b0111:Yi=16'h0080;4'b1000:Yi=16'h0100;4'b1001:Yi=16'h0200;4'b1010:Yi=16'h0400;4'b1011:Yi=16'h0800;4'b1100:Yi=16'h1000;4'b1101:Yi=16'h2000;4'b1110:Yi=16'h4000;4'b1111:Yi=16'h8000;endcaseelseYi=16'h0000;endendmodule十六選一的數(shù)據(jù)選擇器程序模塊modulemux_16_1(rclk,address,regQ0,regQ1,regQ2,regQ3,regQ4,regQ5,regQ6,regQ7,regQ8,regQ9,regQ10,regQ11,regQ12,regQ13,regQ14,regQ15,data_out);inputwirerclk;inputwire[3:0]address;inputwire[15:0]regQ0,regQ1,regQ2,regQ3,regQ4,regQ5,regQ6,regQ7,regQ8,regQ9,regQ10,regQ11,regQ12,regQ13,regQ14,regQ15;outputreg[15:0]data_out;always@(posedgerclk)begin//if(rclk==1'b1)case(address[3:0])4'b0000:data_out=regQ0;4'b0001:data_out=regQ1;4'b0010:data_out=regQ2;4'b0011:data_out=regQ3;4'b0100:data_out=regQ4;4'b0101:data_out=regQ5;4'b0110:data_out=regQ6;4'b0111:data_out=regQ7;4'b1000:data_out=regQ8;4'b1001:data_out=regQ9;4'b1010:data_out=regQ10;4'b1011:data_out=regQ11;4'b1100:data_out=regQ12;4'b1101:data_out=regQ13;4'b1110:data_out=regQ14;4'b1111:data_out=regQ15;endcaseendendmodule16位D觸發(fā)器程序模塊moduleregister16(cl,Di,Dot);//無R,D觸發(fā)器inputwirecl;inputwire[15:0]Di;outputreg[15:0]Dot;always@(posedgecl)Dot<=Di;endmodule16位全加器moduleadder_16bits(A,B,Ctr,S,Co); parametersize=16;input[15:1]A;input[15:1]B;inputCtr;output[11:1]S;outputCo; wire[size-1:1]Ctemp; wire[size:1]Bo; assignBo={16{Ctr}}^B;adder_1bit A1(.a(A[1]),.b(Bo[1]),.ci(Ctr),.s(S[1]),.co(Ctemp[1])), A2(A[2],Bo[2],Ctemp[1],S[2],Ctemp[2]), A3(A[3],Bo[3],Ctemp[2],S[3],Ctemp[3]), A4(A[4],Bo[4],Ctemp[3],S[4],Ctemp[4]), A5(A[5],Bo[5],Ctemp[4],S[5],Ctemp[5]), A6(A[6],Bo[6],Ctemp[5],S[6],Ctemp[6]), A7(A[7],Bo[7],Ctemp[6],S[7],Ctemp[7]), A8(A[8],Bo[8],Ctemp[7],S[8],Ctemp[8]), A9(A[9],Bo[9],Ctemp[8],S[9],Ctemp[9]), A10(A[10],Bo[10],Ctemp[9],S[10],Ctemp[10]), A11(A[11],Bo[11],Ctemp[10],S[11],Ctemp[11]), A12(A[12],Bo[12],Ctemp[11],S[12],Ctemp[12]), A13(A[13],Bo[13],Ctemp[12],S[13],Ctemp[13]), A14(A[14],Bo[14],Ctemp[13],S[14],Ctemp[14]), A15(A[15],Bo[15],Ctemp[14],S[15],Ctemp[15]), A16(A[16],Bo[16],Ctemp[15],S[16],Co);Endmodule一位全加器moduleadder_1bit(a,b,ci,s,co); //portdeclaration inputwirea,b,ci; outputwires,co; and(c1,a,b),(c2,b,ci),(c3,a,ci); xor(s1,a,b),(s,s1,ci); or(co,c1,c2,c3);endmodule拓展32位顯示的程序moduledisplay32bits(clk,disp_num,digit_anode,segment); inputclk; input[31:0]disp_num; output[7:0]digit_anode; output[7:0]segment; reg[7:0]digit_anode; reg[7:0]segment; reg[12:0]cnt=0; wire[31:0]disp_num; reg[3:0]num;always@(posedgeclk)begin case(cnt[12:10]) 3'b000:begin digit_anode<=8'b11111110; num<=disp_num[3:0]; end 3'b001:begin digit_anode<=8'b11111101; num<=disp_num[7:4]; end 3'b010:begin digit_anode<=8'b11111011; num<=disp_num[11:8]; end 3'b011:begin digit_anode<=8'b11110111; num<=disp_num[15:12]; end 3'b100:begin digit_anode<=8'b11101111; num<=disp_num[19:16]; end 3'b101:begin digit_anode<=8'b11011111; num<=disp_num[23:20]; end 3'b110:begin digit_anode<=8'b10111111; num<=disp_num[27:24]; end 3'b111:begin digit_anode<=8'b01111111; num<=disp_num[31:28]; end endcase case(num) 4'b0000:segment<=8'b11000000; 4'b0001:segment<=8'b11111001; 4'b0010:segment<=8'b10100100; 4'b0011:segment<=8'b10110000; 4'b0100:segment<=8'b10011001; 4'b0101:segment<=8'b10010010; 4'b0110:segment<=8'b10000010; 4'b0111:segment<=8'b11111000; 4'b1000:segment<=8'b10000000; 4'b1001:segment<=8'b10010000; 4'b1010:segment<=8'b10001000; 4'b1011:segment<=8'b10000011; 4'b1100:segment<=8'b11000110; 4'b1101:segment<=8'b10100001; 4'b1110:segment<=8'b10000110; 4'b1111:segment<=8'b10001110; endcase end always@(posedgeclk)begin cnt<=cnt+1; endendmodule引腳代碼NET"clk"LOC="T9";NET"btn_in[0]"loc="E6";NET"btn_in[1]"loc="D5";NET"btn_in[2]"loc="C5";NET"btn_in[3]"loc="D6";NET"btn_in[4]"loc="C6";NET"btn_in[5]"loc="E7";NET"btn_in[6]"loc="C7";NET"btn_in[7]"loc="D7";NET"btn_in[8]"loc="M13";NET"btn_in[9]"loc="M14";NET"btn_in[10]"loc="L13";NET"btn_in[11]"loc="L14";NET"switch[0]"LOC="F12";NET"switch[1]"LOC="G12";NET"switch[2]"LOC="H14";NET"switch[3]"LOC="H13";NET"switch[4]"LOC="J14";NET"switch[5]"LOC="J13";NET"switch[6]"LOC="K14";NET"switch[7]"LOC="K13";NET"switch[8]"LOC="M10";NET"switch[9]"LOC="F3";NET"switch[10]"LOC="H4";NET"switch[11]"LOC="E4";NET"switch[12]"LOC="G5";NET"switch[13]"LOC="F4";NET"anode[0]"LOC="D14";NET"anode[1]"LOC="G14";NET"anode[2]"LOC="F14";NET"anode[3]"LOC="E13";NET"segment[0]"LOC="E14";NET"segment[1]"LOC="G13";NET"segment[2]"LOC="N15";NET"segment[3]"LOC="P15";NET"segment[4]"LOC="R16";NET"segment[5]"LOC="F13";NET"segment[6]"LOC="N16";NET"segment[7]"LOC="P16";NET"anode[4]"LOC="B11";NET"anode[5]"LOC="A10";NET"anode[6]"LOC="B10";NET"anode[7]"LOC="A9";NET"anode[8]"LOC="A8";NET"anode[9]"LOC="B8";NET"anode[10]"LOC="A7";NET"anode[11]"LOC="B7";NET"segment[8]"LOC="C8";NET"segment[9]"LOC="D8";NET"segment[10]"LOC="C9";NET"segment[11]"LOC="D10";NET"segment[12]"LOC="A3";NET"segment[13]"LOC="B4";NET"segment[14]"LOC="A4";NET"segment[15]"LOC="B5";moduleshift_reg(clk,S,s_in,p_in,Q);inputwireclk,S,s_in;inputwire[15:0]p_in;outputwire[15:0]Q;wireD[15:0];wirenS;FDFDQ0(.C(clk),.D(D[0]),.Q(Q[0])),FDQ1(.C(clk),.D(D[1]),.Q(Q[1])),FDQ2(.C(clk),.D(D[2]),.Q(Q[2])),FDQ3(.C(clk),.D(D[3]),.Q(Q[3])),FDQ4(.C(clk),.D(D[4]),.Q(Q[4])),FDQ5(.C(clk),.D(D[5]),.Q(Q[5])),FDQ6(.C(clk),.D(D[6]),.Q(Q[6])),FDQ7(.C(clk),.D(D[7]),.Q(Q[7])),FDQ8(.C(clk),.D(D[8]),.Q(Q[8])),FDQ9(.C(clk),.D(D[9]),.Q(Q[9])),FDQ10(.C(clk),.D(D[10]),.Q(Q[10])),FDQ11(.C(clk),.D(D[11]),.Q(Q[11])),FDQ12(.C(clk),.D(D[12]),.Q(Q[12])),FDQ13(.C(clk),.D(D[13]),.Q(Q[13])),FDQ14(.C(clk),.D(D[14]),.Q(Q[14])),FDQ15(.C(clk),.D(D[15]),.Q(Q[15]));OR2D0_L(.I0(L_0),.I1(R_0),.O(D[0])),D1_L(.I0(L_1),.I1(R_1),.O(D[1])),D2_L(.I0(L_2),.I1(R_2),.O(D[2])),D3_L(.I0(L_3),.I1(R_3),.O(D[3])),D4_L(.I0(L_4),.I1(R_4),.O(D[4])),D5_L(.I0(L_5),.I1(R_5),.O(D[5])),D6_L(.I0(L_6),.I1(R_6),.O(D[6])),D7_L(.I0(L_7),.I1(R_7),.O(D[7])),D8_L(.I0(L_8),.I1(R_8),.O(D[8])),D9_L(.I0(L_9),.I1(R_9),.O(D[9])),D10_L(.I0(L_10),.I1(R_10),.O(D[10])),D11_L(.I0(L_11),.I1(R_11),.O(D[11])),D12_L(.I0(L_12),.I1(R_12),.O(D[12])),D13_L(.I0(L_13),.I1(R_13),.O(D[13])),D14_L(.I0(L_14),.I1(R_14),.O(D[14])),D15_L(.I0(L_15),.I1(R_15),.O(D[15]));AND2L0_L(.I0(Q[1]),.I1(nS),.O(L_0)),L1_L(.I0(Q[2]),.I1(
溫馨提示
- 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)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024新房產(chǎn)銷售協(xié)議電子
- 2024年門面租賃協(xié)議全面修訂細則
- 手機買房合同范本
- 2024年郊區(qū)臨時空地租賃協(xié)議范本
- 2024年商業(yè)地產(chǎn)租賃協(xié)議精簡
- 關(guān)于誠信的演講主題
- 關(guān)于廉潔紀律的認識體會
- 流行病學(xué)預(yù)防方案
- 齊魯工業(yè)大學(xué)《材料力學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 南京信息工程大學(xué)《油畫人物全身像寫生》2023-2024學(xué)年第一學(xué)期期末試卷
- 八上語文古詩詞理解性默寫
- 湖南省長沙市雅禮集團2024-2025學(xué)年九年級上學(xué)期11月期中英語試題
- 2023年 評審準則質(zhì)量記錄手冊表格匯編(101個)
- 2024年度采購合同管理程序指南
- GB/T 44693.1-2024危險化學(xué)品企業(yè)工藝平穩(wěn)性第1部分:管理導(dǎo)則
- 湖南省三湘名校教育聯(lián)盟2023-2024學(xué)年高二下學(xué)期4月期中聯(lián)考地理試題
- 2024秋期國家開放大學(xué)??啤冬F(xiàn)代教師學(xué)導(dǎo)論》一平臺在線形考(形成性考核任務(wù)一至四)+終結(jié)性考核(大作業(yè))試題及答案
- 2024年銀行考試-征信人員考試近5年真題附答案
- 世界一流港口綜合評價報告
- 第四單元 比(單元測試)-2024-2025學(xué)年六年級上冊數(shù)學(xué)人教版
- 遼寧省盤錦市第一完全中學(xué)2023-2024學(xué)年八年級上學(xué)期期中數(shù)學(xué)試卷
評論
0/150
提交評論