北邮数字电路与逻辑设计实验报告

上传人:痛*** 文档编号:90722400 上传时间:2022-05-15 格式:DOC 页数:14 大小:138.50KB
收藏 版权申诉 举报 下载
北邮数字电路与逻辑设计实验报告_第1页
第1页 / 共14页
北邮数字电路与逻辑设计实验报告_第2页
第2页 / 共14页
北邮数字电路与逻辑设计实验报告_第3页
第3页 / 共14页
资源描述:

《北邮数字电路与逻辑设计实验报告》由会员分享,可在线阅读,更多相关《北邮数字电路与逻辑设计实验报告(14页珍藏版)》请在装配图网上搜索。

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

2、管显示输出信号。(3) 用3线-8线译码器(74LS138)和逻辑门设计实现函数 ,仿真验证其功能,并下载到实验板测试。要求用拨码开关设定输入信号,发光二极管显示输出信号。 四、 实验原理图及仿真波形图(1) 半加器 半加器原理图仿真波形仿真波形图分析:根据仿真波形对比半加器真值表,可以确定电路实现了半加器的功能。但我们也可以发现输出SO出现了静态功能冒险,要消除该冒险可以加入相应的选通脉冲。 (2)全加器全加器原理图 仿真波形仿真波形图分析 :根据仿真波形对比半加器真值表,可以确定电路实现了全加器的功能(2) 74138 3线-8线译码器 原理图 仿真波形图 仿真波形图分析 ;当且仅当ABC

3、输入为000、010、100、111时,F=1,可知电路实现了函数。 实验二 用VHDL设计与实现组合逻辑电路一、 实验目的:(1)熟悉用VHDL语言设计时序逻辑电路的方法;(2)熟悉用Quartus II文本输入法进行电路设计;(3)熟悉不同的编码及其之间的转换。二、实验所用器材:(1)计算机;(2)直流稳压电源;(3)数字系统与逻辑设计实验开发板。三、实验任务要求 (1)用 VHDL语言设计实现一个共阴极7段数码管译码器;(2)用VHDL语言设计一个8421码转余三码的代码转换器;(3)用VHDL语言设计设计一个四位2进制奇校验器。四、 实验代码及仿真波形图数码管译码器LIBRARY IE

4、EE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY shumaguanyimaqi IS PORT(A:IN STD_LOGIC_VECTOR(3 DOWNTO 0); B:OUT STD_LOGIC_VECTOR(6 DOWNTO 0); C:OUT STD_LOGIC_VECTOR(5 DOWNTO 0); END shumaguanyimaqi; ARCHITECTURE encoder_arch OF shumaguanyimaqi IS BEGIN PROCESS(A) BEGIN C B

5、B B B B B B B B B B B B B B B B B B B B B=ZZZZ; END CASE; END PROCESS; END trans_e*3; 仿真波形图仿真波形分析:8421码转换余三码,由0111转换成为了1010可以看出功能已经实现,仿真验证了代码功能正确。奇校验LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY j*hjijiaoyan IS PORT( A:STD_LOGIC; B:STD_LOGIC; C:STD_LOGIC; D:STD_LOGIC; F:OUT STD_LOGIC); END j*hji

6、jiaoyan; ARCHITECTURE one OF j*hjijiaoyan IS SIGNAL n1,n2 : STD_LOGIC; BEGIN n1=A *OR B; n2=n1 *OR C; F=n2 *OR D; END one; 仿真波形图仿真波形分析:当ABCD为1111时,输出F为0,ABCD为1110时,输出F为1,可见奇校验功能得以实现。实验三 用VHDL设计与实现时序逻辑电路一、实验目的:(1)熟悉用VHDL语言设计时序逻辑电路的方法;(2)熟悉用Quartus II文本输入法进行电路设计;(3)熟悉不同的编码及其之间的转换。二、实验所用器材:(1)计算机;(2)直流

7、稳压电源;(3)数字系统与逻辑设计实验开发板。三、实验任务要求 (1)用 VHDL语言设计实现一个8421十进制计数器;(2)用VHDL语言设计一个分频器;(3)将(1)、(2)和数码管译码器3个电路进行连接,并下载到实验板显示计数结果。四、 实验代码及仿真波形图8421十进制计数器LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY j*hshijinzhijishuqi ISPORT(clk,reset:IN STD_LOGIC;q:OUT STD_LOGIC_VECTOR(3 DOW

8、NTO 0);END j*hshijinzhijishuqi;ARCHITECTURE a OF j*hshijinzhijishuqi ISSIGNAL q_temp:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINPROCESS(clk,reset)BEGINIF reset=0 THENq_temp =0000;ELSIF clkEVENT AND clk=1 THENIF q_temp=1001 THENq_temp =0000;ELSE q_temp =q_temp+1;END IF;END IF;END PROCESS;q= q_temp;END a;仿真波形图

9、仿真波形图分析:8421十进制计数器随着时钟的信号进行计数,restart是复位,当复位为零的时候计数器重新计数。根据仿真结果来看,8421十进制计数器功能得以实现。分频器LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY j*hfenpinqi ISPORT(clk:IN STD_LOGIC;clear:IN STD_LOGIC;clk_out:OUT STD_LOGIC);END j*hfenpinqi;ARCHITECTURE a OF j*hfenpinqi ISSIGNAL t

10、emp:INTEGER RANGE 0 TO 11;BEGINp1:PROCESS(clear,clk)BEGINIF clear=0THENtemp=0;ELSIF clkEVENT AND clk=1 THENIF temp=11 THENtemp=0;ELSE temp=temp+1;END IF;END IF;END PROCESS p1;p2:PROCESS(temp)BEGINIF temp6 THENclk_out=0;ELSE clk_out=1;END IF;END PROCESS p2;END a;仿真波形仿真波形分析:分频器将频率分开,置零端正常工作,根据仿真波形可以看出

11、来,分频器的功能得以正常实现。组合电路LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY j*hfenpinqi ISPORT(clk:IN STD_LOGIC;clk_out:OUT STD_LOGIC);END j*hfenpinqi;ARCHITECTURE behave OF j*hfenpinqi ISSIGNAL temp:INTEGER RANGE 0 TO 24999999;SIGNAL clktmp:STD_LOGIC;BEGIN PROCESS(clk) BEGIN

12、IF clkevent AND clk=1 THEN IF temp=24999999 THEN temp=0; clktmp=NOT clktmp; ELSE temp=temp+1; END IF; END IF; END PROCESS; clk_out=clktmp; END behave;LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY j*hshijinzhi IS PORT( CLK,CLEAR:IN STD_LOGIC; Q: OUT STD_LOGIC_VECTOR(

13、3 DOWNTO 0);END j*hshijinzhi;ARCHITECTURE A OF j*hshijinzhi ISSIGNAL Q_TEMP:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINPROCESS(CLK,clear)BEGIN IF CLEAR=1THEN Q_TEMP=0000;elsIF(CLKEVENT AND CLK=1)THEN IF Q_TEMP=1001THEN Q_TEMP=0000; ELSE Q_TEMP=Q_TEMP+1; END IF; END IF;END PROCESS;Q=Q_TEMP;END A; LIBRARY IEEE

14、;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY j*hshumaguan ISPORT(a:IN STD_LOGIC_VECTOR(3 DOWNTO 0); b:OUT STD_LOGIC_VECTOR(7 DOWNTO 0); c:OUT STD_LOGIC_VECTOR(5 DOWNTO 0);END j*hshumaguan;ARCHITECTURE seg7_arch OF j*hshumaguan ISBEGINPROCESS(a)BEGINcbbbbbbbbbbbain,clk_out=d);u

15、2:j*hshijinzhi PORT MAP(clk=d,clear=bin,q=f);u3:j*hshumaguan PORT MAP(a=f,b=cout,c=cat);END behave;端口的绑定:端口分析:Ain是时钟信号的输入绑定了18串口,bin是置零信号绑定了20 串口,cat5-0是每个数码管各自的绑定,根据板子上的串口数字绑定,cout7-0是数码管的每一个亮的部分,根据板子上的提示串口进行绑定,根据编程可以实现让数码管显示不同的数字。电路图:代码中是使用PORT MAP 进行连接的u1:j*hfenpinqi PORT MAP(clk=ain,clk_out=d);u

16、2:j*hshijinzhi PORT MAP(clk=d,clear=bin,q=f);u3:j*hshumaguan PORT MAP(a=f,b=cout,c=cat);在此图中可以看出ain接分频器的clk,分频器的clk_out接十进制译码器的CLK,bin接十进制译码器的CLEAR,十进制译码器的Q接数码管的a,数码管的b,c分别接count和cat。实验四 数码管扫描显示控制器设计与实现一、 实验目的:1. 掌握VHDL语言的语法规,掌握时序电路描述方法。2. 掌握多个数码管动态扫描现实的原理及设计方法。二、 实验所用器材:1.计算机:装有Quartus软件,为VHDL语言提供操

17、作场所。2.直流稳压电源:通过USB接口实现,为实验开发板提供稳定电源。3.数字系统与逻辑设计实验开发板:使试验结果下载到开发板上,实现整个实验的最终结果。三、实验任务要求 1. 用VHDL语言设计并实现六个数码管串行扫描电路,要求同时显示0、1、2、3、4、5这6个不同的数字图形到6个数码管上。2. 用VHDL语言设计并实现六个数码管滚动显示电路。(1) 循环左滚动,始终点亮6个数码管,左出右进。状态为:012345123450234501345012450123501234012345(2)向左滚动,用全灭的数码管填充右边,直至全部变灭,然后再一次从右边一个一个的点亮。状态为0123451

18、2345*2345*345*45*5*0*01*012*0123*01234012345,其中“*”表示数码管不显示。四、 实验原理多个数码管动态扫描显示,是将所有数码管的相同段并联在一起,通过选通信号分时控制各个数码管的公共端,循环依次点亮多个数码管,利用人眼的视觉暂留现象,只要扫描的频率大于50HZ,将看不到闪烁现象。如下图10-1,是多个数码管动态扫描显示的电路连接图。当闪烁显示的发光二极管闪烁频率较高时我们将观察到持续点亮的现象。同理,当多个数码管依次显示,当切换速度够快时,我们将观察到所有数码管都是同事在显示。一个数码管要稳定显示要求显示频率50hz,则6个数码管则需要50*6=30

19、0hz以上才能看到持续稳定点亮的现象。cat1cat6是数码管选通控制信号,分别对应于6个共阴极数码管的公共端,当catn=0时,其对应的数码管被点亮。因此,通过控制cat1cat6,就可以控制6个数码管循环依次点亮。五、 代码及仿真波形图1实现六个数码管串行扫描电路的思路及代码:串行数码管library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity j*hchuan*ing is port( clear,clk_in:in std_logic; num:out std_logic_vect

20、or(6 downto 0); cat:out std_logic_vector(5 downto 0) ); end j*hchuan*ing; architecture one of j*hchuan*ing is signal status:integer range 0 to 6;begin process(clk_in)begin if clear=0 then status=0; elsif (clk_inevent and clk_in=1) then if status=6 then status=1; else status num=1111110;cat num=01100

21、00;cat num=1101101;cat num=1111001;cat num=0110011;cat num=1011011;catnum=0000000;caten=011111;ben=101111;ben=110111;ben=111011;ben=111101;ben=111110;bnull;end case;end process p1; p2:process(clk)beginif clkevent and clk=1thenif a=5 then a=0;d=1+d;else a=a+1;end if ;if d=2999 then d=0;c z z z z z zz

22、=0000000; end case;end process p3; end;仿真波形:仿真波形分析:有图可以看出,数码管滚动显示功能得以正常实现。随着时钟的输入,数码管的输出进行着滚动式变化。电路图:端口连接图:Clk接18口,是时钟输入,en5-0是每个数码管各自的绑定,根据板子上的串口数字绑定,z6-0是数码管的每一个亮的部分,根据板子上的提示串口进行绑定,根据编程可以实现让数码管显示不同的数字。五、故障及问题分析 实验一在本次实验中,由于实验较为简单,只要认真听老师讲课,细心实验,基本没有大的故障出现。出现的问题主要为 当输入频率较高时,输出结果易受器件延迟时间影响。此外,对于多输入的

23、电路,静态功能冒险还是会存在的,在*些情况下应该加入选通脉冲来消除静态功能冒险。实验二1. 注意VHDL文件名与实体名一致,会导致编译的错误。我在实验的过程中发生过这种错误。2. 在仿真波形的时候,没有合适的取好输入信号的周期,导致最终的波形超过了一个半有效周期,经老师指出进行了修改。3. 下载到板子上程序之前需要绑定串口,绑定完串口之后需要二次编译,否则功能不能实现。实验三1.每次实验中都应该注意到VHDL的文件名应与实体名一致,如果不一致编译会报错。我在实验过程中虽然原理图设计名与工程名相同,但在其后*程序名上犯了错误,导致出错。2.在仿真波形的观察中,一定要调节好zoom一选项,缩放出便

24、于观察的波形。3.在命名过程一定要注意规,不要出现非法字符。4.在做10进制计数器时,由于板的固有频率为晶振的频率50兆赫兹,所以当以微秒级的时钟去自动跳变太快根本无法看清,应该加一段程序令时钟在微秒级跳变25兆次时外部时钟输出,从而令外部时钟变为秒级的,才能看见自动跳变现象。实验四1. 注意VHDL文件名和各个名字一致否则会出现编译错误。2. 板子的固有频率是50m,所以需要进行分频,数码管的实验的时候频率的高低会导致数码管显示结果的不同,要根据实际情况适当的调高调低。我在做实验的时候频率选择不合适,数码管显示不好。3. 时钟信号是高频有效还是低频有效,需要注意,我实验的时候没有太搞清楚。4

25、. 数码管的滚动显示的时候总是出错,经过检查,是下载之前绑定串口有误,还有分频并不合适。最终实验时候时间有限,验收的是数码管的串行。六、 总结和结论 总结: 实验一:实验一是进行了简单的图形连接来进行电路的实现,总体来说较为简单,但是要注意元器件的调用,还有连接的规,使得连接出来的电路清晰明了,简单美观。仿真的时候注意总时间的选取和输入变量的周期。实验二:实验二是第一次进行VHDL编程,需要注意的是文件名和各个实体名一致否则会导致编译的错误。然后在仿真的时候注意总时间的选取和输入变量的周期,还有就是要会看出来自己的仿真波形是否是正确的。在下载到板子上程序之前注意串口的绑定和绑定之后逇二次编译,

26、这次实验让我们了解了VHDL语言以及其数字电路的实现。实验三:实验三是十进制计数器和分频器,这两个实验较为简单,由于有之前的基础在,所以比较容易实现,就是注意文件名要一致,仿真的时候注意总时间的选择以及各个变量的周期。而最后的组合电路比较难,注意上层的设置。将三个分别得电路组合在一起注意连接函数PORT MAP,还有各个端口的连接,最后下载到板子上注意串口的绑定,还有绑定之后的二次编译。最后实现功能的时候要知道时钟信号的有效频率还有就是复位。实验四:经过之前的基础,实验四比较难,代码需要更加用心的编写。还有频率的设定需要经过实验时候的情况进行调整。这次实验我做的并不是则的顺利,经过反省,我了解

27、数码管有关的知识,还有串行和滚动的代码,经过努力,可以实现实验的容。在实验的时候注意文件名的一致,仿真时候的总时间和各个变量的周期,最后下载的时候注意串口的绑定还有绑定之后的二次编译。这次最终的实验收获良多,还要虚心进行学习。老师的指责也是正确的,要对实验严谨认真。 结论: 数电实验是有关于模块的,VHDL的编程能力的锻炼,经过这次试验,我了解了Quartus II的使用,图形工具的使用以及VHDL的编程能力得到了很好的历练。在这个实验课程中,经过老师的悉心教导,我们学习到了软件的使用,经过四次的实验,我们可以较为熟练的运用Quartus II的图形和VHDL语言编程来设计电路,并可以通过仿真来验证我们的电路是否正确。我们通过绑定串口之后把程序下载到板子上可以实现我们的电路的功能,在下载之前注意要进行二次编译。而且在实验三里的第三个实验,我们在验收的时候,要熟练地可以拨动开关实现零到九的变换。老师虽然对我们很严厉,但是我们这样才能学习到更多的东西,有了更多的进步空间。. z.

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!