您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 交通运输 > 《数字系统设计》实验报告
数字系统设计指导老师:孙统风2011年10月实验一组合电路设计一、实验目的熟悉QuartusII的VHDL文本设计流程全过程,学习简单的组合电路的设计、多层次电路设计、仿真和硬件测试。二、实验内容1.首先利用QuartusII完成2选1多路选择器的文本编辑输入和仿真测试等步骤,给出图3-3所示的仿真波形。最后在实验系统上进行硬件测试,验证本项设计的功能。2.将此多路选择器看成是一个元件mux21a,利用元件例化描述图3-31,并将此文件放在同一目录中。三、实验程序及仿真结果1.2选1多路选择器源程序LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYmux21aISPORT(a,b,s:INBIT;y:OUTBIT);ENDENTITYmux21a;ARCHITECTUREoneOFmux21aISBEGINPROCESS(a,b,s)BEGINIFs='0'THENy=a;ELSEy=b;ENDIF;ENDPROCESS;ENDARCHITECTUREone;RTL图如下:2.元件mux21a源程序LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYMUXKISPORT(a1,a2,a3,s0,s1:INSTD_LOGIC;y:OUTSTD_LOGIC);ENDENTITYMUXK;ARCHITECTUREoneOFMUXKISCOMPONENTmux21aPORT(a,b,s:INSTD_LOGIC;y:OUTSTD_LOGIC);ENDCOMPONENT;SIGNALtmp:STD_LOGIC;BEGINU1:mux21aPORTMAP(a=a2,b=a3,s=s0,y=tmp);U2:mux21aPORTMAP(a=a1,b=tmp,s=s1,y=y);ENDARCHITECTUREone;仿真波形如下:器件RTL电路实验二时序电路的设计1、实验目的熟悉QuartusII的VHDL文本设计过程,学习简单的时序电路的设计、仿真和测试。二、实验内容1.设计触发器(使用例3-6),给出程序设计、软件编译、仿真分析、硬件测试及详细实验过程。2.设计锁存器(使用例3-14),同样给出程序设计、软件编译、仿真分析、硬件测试及详细实验过程。3.只用一个1位二进制全加器为基本元件和一些辅助的时序电路,设计一个8位串行二进制全加器。提示:此加法器有并/串和串/并移位寄存器各一。三、实验程序及仿真结果1.触发器设计源程序LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYDFF1ISPORT(CLK,D:INSTD_LOGIC;Q:OUTSTD_LOGIC);END;ARCHITECTUREbhvOFDFF1ISSIGNALQ1:STD_LOGIC;BEGINPROCESS(CLK)BEGINIFCLK'EVENTANDCLK='1'THENQ1=D;ENDIF;ENDPROCESS;Q=Q1;ENDbhv;仿真波形如下:仿真分析:从仿真的波形可以看出,当clk为上升沿时,输出随着输入的变化而变化,即实现了一个D触发器的功能。2.锁存器设计源程序LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYSUOISPORT(CLK,D:INSTD_LOGIC;Q:OUTSTD_LOGIC);END;ARCHITECTUREbhvOFSUOISSIGNALQ1:STD_LOGIC;BEGINPROCESS(CLK,D)BEGINIFCLK='1'THENQ=D;ENDIF;ENDPROCESS;ENDbhv;仿真波形如下:3.八位二进制全加器的设计实验原理:一个8位全加器可以由8个1位全加器构成,加法器间的进位可以串行方式实现,即将地位加法器的进位输出cout与相邻的高位加法器的最低进位输入信号cin想接。(1)1位二进制全加器实验原理图1位二进制全加器实验仿真图(2)八位全加器实验原理图八位全加器实验仿真图(3)一位二进制全加器实验源程序LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYF_ADDERISPORT(AIN,BIN,CIN:INSTD_LOGIC;COUT,SUM:OUTSTD_LOGIC);ENDENTITYF_ADDER;ARCHITECTUREFD1OFF_ADDERISCOMPONENTH_ADDERISPORT(A,B:INSTD_LOGIC;CO,SO:OUTSTD_LOGIC);ENDCOMPONENT;SIGNALD,E,F:STD_LOGIC;BEGINU1:H_ADDERPORTMAP(A=AIN,B=BIN,CO=D,SO=E);U2:H_ADDERPORTMAP(A=E,B=CIN,CO=F,SO=SUM);COUT=DORF;ENDARCHITECTUREFD1;(4)八位二进制全加器源程序LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYPRODUCT_ADDER_SUBTRACTERISPORT(A,B:INSTD_LOGIC_VECTOR(7DOWNTO0);S:OUTSTD_LOGIC_VECTOR(8DOWNTO0));END;ARCHITECTUREBEHAVIORALOFPRODUCT_ADDER_SUBTRACTERISBEGINBEHAVIOR:PROCESS(A,B)ISVARIABLECARRY_IN:STD_LOGIC;VARIABLECARRY_OUT:STD_LOGIC;VARIABLEOP2:STD_LOGIC_VECTOR(B'RANGE);BEGINOP2:=B;ENDIF;FORINDEXIN0TO7LOOPCARRY_IN:=CARRY_OUT;S(INDEX)=A(INDEX)XOROP2(INDEX)XORCARRY_IN;CARRY_OUT:=(A(INDEX)ANDOP2(INDEX))OR(CARRY_INAND(A(INDEX)XOROP2(INDEX)));ENDLOOP;S(8)=A(7)XOROP2(7)XORCARRY_OUT;ENDPROCESS;END;D触发器RTL图锁存器RTL图实验三七段数码显示译码器设计一、实验目的学习七段数码显示译码器设计;学习VHDL的CASE语句应用及多层次设计方法。二、实验内容说明程序4-6中各语句的含义,以及该例的整体功能。在QuartusII上对该示例进行编辑、编译、综合、适配、仿真,给出其所有信号的时序仿真波形。提示:用输入总线的方式给出输入数据的信号仿真数据。三、实验源程序程序4-6LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYDECL7SISPORT(A:INSTD_LOGIC_VECTOR(3DOWNTO0);--输入信号LED7S:OUTSTD_LOGIC_VECTOR(6DOWNTO0));--显示数码END;ARCHITECTUREoneOFDECL7SISBEGINPROCESS(A)BEGINCASEAISWHEN0000=LED7S=0111111;--显示0WHEN0001=LED7S=0000110;--显示1WHEN0010=LED7S=1011011;--显示2WHEN0011=LED7S=1001111;--显示3WHEN0100=LED7S=1100110;--显示4WHEN0101=LED7S=1101101;--显示5WHEN0110=LED7S=1111101;--显示6WHEN0111=LED7S=0000111;--显示7WHEN1000=LED7S=1111111;--显示8WHEN1001=LED7S=1101111;--显示9WHEN1010=LED7S=1110111;--显示AWHEN1011=LED7S=1111100;--显示BWHEN1100=LED7S=0111001;--显示CWHEN1101=LED7S=1011110;--显示DWHEN1110=LED7S=1111001;--显示EWHEN1111=LED7S=1110001;--显示FWHENOTHERS=NULL;ENDCASE;ENDPROCESS;END;四、仿真波形图及RTL图
本文标题:《数字系统设计》实验报告
链接地址:https://www.777doc.com/doc-4548394 .html