北邮数字电路与逻辑设计实验报告_第1页
北邮数字电路与逻辑设计实验报告_第2页
北邮数字电路与逻辑设计实验报告_第3页
北邮数字电路与逻辑设计实验报告_第4页
北邮数字电路与逻辑设计实验报告_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、北京邮电大学数字电路与逻辑设计实验报告学院:班级:姓名:学号:实验一QuartusII原理图输入法设计与实现一、实验目的:熟习QuartusII原理图输入法进行电路设计和仿真;掌握QuartusII图形模块单元的生成与调用;熟习实验板的使用;二、实验所用器械:计算机;直流稳压电源;数字系统与逻辑设计实验开发板。三、实验任务要求用逻辑门设计实现一个半加器,仿真考证其功能,并生成新的半加器图形模块单元。用(1)中生成的半加器模块和逻辑门设计实现一个全加器,仿真考证其功能,并下载到实验板测试,要求用拨码开关设定输入信号,发光二极管显示输出信号。(3)用3线-8线译码器(74LS138)和逻辑门设计实

2、现函数,仿真考证其功能,并下载到实验板测试。要求用拨码开关设定输入信号,发光二极管显示输出信号。四、实验原理图及仿真波形图半加器半加器原理图仿真波形仿真波形图剖析:依据仿真波形对照半加器真值表,能够确立电路实现了半加器的功能。但我们也能够发现输出SO出现了静态功能冒险,要除去该冒险能够加入相应的选通脉冲。2)全加器全加器原理图仿真波形仿真波形图剖析:依据仿真波形对照半加器真值表,能够确立电路实现了全加器的功能(2)741383线-8线译码器原理图仿真波形图仿真波形图剖析;当且仅当ABC输入为000、010、100、111时,F=1,可知电路实现了函数。实验二用VHDL设计与实现组合逻辑电路一、

3、实验目的:1)熟习用VHDL语言设计时序逻辑电路的方法;2)熟习用QuartusII文本输入法进行电路设计;3)熟习不一样的编码及其之间的变换。二、实验所用器械:1)计算机;2)直流稳压电源;3)数字系统与逻辑设计实验开发板。三、实验任务要求1)用VHDL语言设计实现一个共阴极7段数码管译码器;2)用VHDL语言设计一个8421码转余三码的代码变换器;3)用VHDL语言设计设计一个四位2进制奇校验器。四、实验代码及仿真波形图数码管译码器LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYshum

4、aguanyimaqiISPORT(A:INSTD_LOGIC_VECTOR(3DOWNTO0);B:OUTSTD_LOGIC_VECTOR(6DOWNTO0);C:OUTSTD_LOGIC_VECTOR(5DOWNTO0);ENDshumaguanyimaqi;ARCHITECTUREencoder_archOFshumaguanyimaqiISBEGINPROCESS(A)BEGINCBBBBBBBBBBBBBBBBBBBBBB=ZZZZ;ENDCASE;ENDPROCESS;ENDtrans_ex3;仿真波形图仿真波形剖析:8421码变换余三码,由0111变换成为了1010能够看出功能已

5、经实现,仿真考证了代码功能正确。奇校验LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYjxhjijiaoyanISPORT(A:STD_LOGIC;B:STD_LOGIC;C:STD_LOGIC;D:STD_LOGIC;F:OUTSTD_LOGIC);ENDjxhjijiaoyan;ARCHITECTUREoneOFjxhjijiaoyanISSIGNALn1,n2:STD_LOGIC;BEGINn1=AXORB;n2=n1XORC;F=n2XORD;ENDone;仿真波形图仿真波形剖析:当ABCD为1111时,输出F为0,ABCD为1110时,输出F

6、为1,可见奇校验功能得以实现。实验三用VHDL设计与实现时序逻辑电路一、实验目的:1)熟习用VHDL语言设计时序逻辑电路的方法;2)熟习用QuartusII文本输入法进行电路设计;3)熟习不一样的编码及其之间的变换。二、实验所用器械:1)计算机;2)直流稳压电源;3)数字系统与逻辑设计实验开发板。三、实验任务要求1)用VHDL语言设计实现一个8421十进制计数器;2)用VHDL语言设计一个分频器;3)将(1)、(2)和数码管译码器3个电路进行连结,并下载到实验板显示计数结果。四、实验代码及仿真波形图8421十进制计数器LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL

7、;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYjxhshijinzhijishuqiISPORT(clk,reset:INSTD_LOGIC;q:OUTSTD_LOGIC_VECTOR(3DOWNTO0);ENDjxhshijinzhijishuqi;ARCHITECTUREaOFjxhshijinzhijishuqiISSIGNALq_temp:STD_LOGIC_VECTOR(3DOWNTO0);BEGINPROCESS(clk,reset)BEGINIFreset=0THENq_temp=0000;ELSIFclkEVENTANDclk=1THENIFq_t

8、emp=1001THENq_temp=0000;ELSEq_temp=q_temp+1;ENDIF;ENDIF;ENDPROCESS;q=q_temp;ENDa;仿真波形图仿真波形图剖析:8421十进制计数器跟着时钟的信号进行计数,restart是复位,当复位为零的时候计数器从头计数。依据仿真结果来看,8421十进制计数器功能得以实现。分频器LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYjxhfenpinqiISPORT(clk:INSTD_LOGIC;clear:INSTD_LOGIC;

9、clk_out:OUTSTD_LOGIC);ENDjxhfenpinqi;ARCHITECTUREaOFjxhfenpinqiISSIGNALtemp:INTEGERRANGE0TO11;BEGINp1:PROCESS(clear,clk)BEGINIFclear=0THENtemp=0;ELSIFclkEVENTANDclk=1THENIFtemp=11THENtemp=0;ELSEtemp=temp+1;ENDIF;ENDIF;ENDPROCESSp1;p2:PROCESS(temp)BEGINIFtemp6THENclk_out=0;ELSEclk_out=1;ENDIF;ENDPROC

10、ESSp2;ENDa;仿真波形仿真波形剖析:分频器将频次分开,置零正直常工作,依据仿真波形能够看出来,分频器的功能得以正常实现。组合电路LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYjxhfenpinqiISPORT(clk:INSTD_LOGIC;clk_out:OUTSTD_LOGIC);ENDjxhfenpinqi;ARCHITECTUREbehaveOFjxhfenpinqiISSIGNALtemp:INTEGERRANGE0TO24999999;SIGNALclktmp:STD_

11、LOGIC;BEGINPROCESS(clk)BEGINIFclkeventANDclk=1THENIFtemp=24999999THENtemp=0;clktmp=NOTclktmp;ELSEtemp=temp+1;ENDIF;ENDIF;ENDPROCESS;clk_out=clktmp;ENDbehave;LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYjxhshijinzhiISPORT(CLK,CLEAR:INSTD_LOGIC;OUTSTD_LOGIC_VECTOR(3DOWNT

12、O0);ENDjxhshijinzhi;ARCHITECTUREAOFjxhshijinzhiISSIGNALQ_TEMP:STD_LOGIC_VECTOR(3DOWNTO0);BEGINPROCESS(CLK,clear)BEGINIFCLEAR=1THENQ_TEMP=0000;elsIF(CLKEVENTANDCLK=1)THENIFQ_TEMP=1001THENQ_TEMP=0000;ELSEQ_TEMP=Q_TEMP+1;ENDIF;ENDIF;ENDPROCESS;Q=Q_TEMP;ENDA;LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEE

13、E.STD_LOGIC_UNSIGNED.ALL;ENTITYjxhshumaguanISPORT(a:INSTD_LOGIC_VECTOR(3DOWNTO0);b:OUTSTD_LOGIC_VECTOR(7DOWNTO0);c:OUTSTD_LOGIC_VECTOR(5DOWNTO0);ENDjxhshumaguan;ARCHITECTUREseg7_archOFjxhshumaguanISBEGINPROCESS(a)BEGINcbbbbbbbbbbbain,clk_out=d);u2:jxhshijinzhiPORTMAP(clk=d,clear=bin,q=f);u3:jxhshuma

14、guanPORTMAP(a=f,b=cout,c=cat);ENDbehave;端口的绑定:端口剖析:Ain是时钟信号的输入绑定了18串口,bin是置零信号绑定了20串口,cat5-0是每个数码管各自的绑定,依据板子上的串口数字绑定,cout7-0是数码管的每一个亮的部分,依据板子上的提示串口进行绑定,依据编程能够实现让数码管显示不一样的数字。电路图:代码中是使用PORTMAP进行连结的u1:jxhfenpinqiPORTMAP(clk=ain,clk_out=d);u2:jxhshijinzhiPORTMAP(clk=d,clear=bin,q=f);u3:jxhshumaguanPORTM

15、AP(a=f,b=cout,c=cat);在此图中能够看出ain接分频器的clk,分频器的clk_out接十进制译码器的CLK,bin接十进制译码器的CLEAR,十进制译码器的Q接数码管的a,数码管的b,c分别接count和cat。实验四数码管扫描显示控制器设计与实现一、实验目的:掌握VHDL语言的语法例范,掌握时序电路描绘方法。掌握多个数码管动向扫描现实的原理及设计方法。二、实验所用器械:1.计算机:装有Quartus软件,为VHDL语言供给操作场所。2.直流稳压电源:经过USB接口实现,为实验开发板供给稳固电源。3.数字系统与逻辑设计实验开发板:使试验结果下载到开发板上,实现整个实验的最后

16、结果。三、实验任务要求1.用VHDL语言设计并实现六个数码管串行扫描电路,要求同时显示0、1、2、3、4、5这6个不一样的数字图形到6个数码管上。用VHDL语言设计并实现六个数码管转动显示电路。(1)循环左转动,一直点亮6个数码管,左出右进。状态为:0123451234502345013450124501235012340123452)向左转动,用全灭的数码管填补右侧,直至所有变灭,而后再一次从右侧一个一个的点亮。状态为01234512345X2345XX345XXX45XXXX5XXXXXXXXXXXXXXXX0XXXX01XXX012XX0123X01234012345,此中“X”表示数码

17、管不显示。四、实验原理多个数码管动向扫描显示,是将所有数码管的同样段并联在一同,经过选通讯号分时控制各个数码管的公共端,循环挨次点亮多个数码管,利用人眼的视觉暂留现象,只需扫描的频次大于50HZ,将看不到闪耀现象。以下列图10-1,是多个数码管动向扫描显示的电路连结图。当闪耀显示的发光二极管闪耀频次较高时我们将察看到连续点亮的现象。同理,当多个数码管挨次显示,当切换速度够快时,我们将察看到所有数码管都是同事在显示。一个数码管要稳固显示要求显示频次50hz,那么6个数码管则需要50*6=300hz以上才能看到连续稳固点亮的现象。cat1cat6是数码管选通控制信号,分别对应于catn=0时,其对

18、应的数码管被点亮。所以,经过控制6个共阴极数码管的公共端,当cat1cat6,就能够控制6个数码管循环挨次点亮。五、代码及仿真波形图1实现六个数码管串行扫描电路的思路及代码:串行数码管libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityjxhchuanxingisport(clear,clk_in:instd_logic;num:outstd_logic_vector(6downto0);cat:outstd_logic_vector(5downto0);endjxhchuanxing;arch

19、itectureoneofjxhchuanxingissignalstatus:integerrange0to6;beginprocess(clk_in)beginifclear=0thenstatus=0;elsif(clk_ineventandclk_in=1)thenifstatus=6thenstatus=1;elsestatusnum=1111110;catnum=0110000;catnum=1101101;catnum=1111001;catnum=0110011;catnum=1011011;catnum=0000000;caten=011111;ben=101111;ben=

20、110111;ben=111011;ben=111101;ben=111110;bnull;endcase;endprocessp1;p2:process(clk)beginifclkeventandclk=1thenifa=5thena=0;d=1+d;elsea=a+1;endif;ifd=2999thend=0;czzzzzzz=0000000;endcase;endprocessp3;end;仿真波形:仿真波形剖析:有图能够看出,数码管转动显示功能得以正常实现。跟着时钟的输入,数码管的输出进行着转动式变化。电路图:端口连结图:Clk接18口,是时钟输入,en5-0是每个数码管各自的绑定

21、,依据板子上的串口数字绑定,z6-0是数码管的每一个亮的部分,依据板子上的提示串口进行绑定,依据编程能够实现让数码管显示不一样的数字。五、故障及问题剖析实验一在本次实验中,因为实验较为简单,只需仔细听老师授课,仔细实验,基本没有大的故障出现。出现的问题主要为当输入频次较高时,输出结果易受器件延缓时间影响。别的,对于多输入的电路,静态功能冒险仍是会存在的,在某些状况下应当加当选通脉冲来除去静态功能冒险。实验二1.注意VHDL文件名与实体名一致,会致使编译的错误。我在实验的过程中发生过这类错误。2.在仿真波形的时候,没有适合的取好输入信号的周期,致使最后的波形超出了一个半有效周期,经老师指出进行了

22、改正。3.下载到板子上程序以前需要绑定串口,绑定完串口以后需要二次编译,不然功能不可以实现。实验三1.每次实验中都应当注意到VHDL的文件名应与实体名一致,假如不一致编译会报错。我在实验过程中固然原理图设计名与工程名同样,但在后来某程序名上犯了错误,致使犯错。在仿真波形的察看中,必定要调理好zoom一选项,缩放出便于察看的波形。在命名过程必定要注意规范,不要出现非法字符。4.在做10进制计数器时,因为板的固有频次为晶振的频次50兆赫兹,所以当以微秒级的时钟去自动跳变太快根本没法看清,应当加一段程序令时钟在微秒级跳变25兆次时外面时钟输出,进而令外面时钟变成秒级的,才能看见自动跳变现象。实验四注

23、意VHDL文件名和各个名字一致不然会出现编译错误。板子的固有频次是50m,所以需要进行分频,数码管的实验的时候频次的高低会致使数码管显示结果的不一样,要依据实质状况适合的调高调低。我在做实验的时候频次选择不适合,数码管显示不好。时钟信号是高频有效仍是低频有效,需要注意,我实验的时候没有太搞清楚。4.数码管的转动显示的时候老是犯错,经过检查,是下载以前绑定串口有误,还有分频其实不适合。最后实验时候时间有限,查收的是数码管的串行。六、总结和结论总结:实验一:实验一是进行了简单的图形连结来进行电路的实现,整体来说较为简单,可是要注意元器件的调用,还有连结的规范,使得连结出来的电路清楚了然,简单雅观。仿真的时候注意总时间的选用和输入变量的周期。实验二:实验二是第一次进行VHDL编程,需要注意的是文件名和各个实体名一致不然会致使编译的错误。而后在仿真的时候注意总时间的选用和输入变量的周期,还有就是要会看出来自己的仿真

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论