ImageVerifierCode 换一换
格式:DOCX , 页数:24 ,大小:292.76KB ,
资源ID:12518628      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/12518628.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(北京邮电大学数字电路与逻辑设计实验报告.docx)为本站会员(b****1)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

北京邮电大学数字电路与逻辑设计实验报告.docx

1、北京邮电大学数字电路与逻辑设计实验报告北京邮电大学数字电路与逻辑设计实验报告学院:xxxx学院姓名:xxx班级:xxxxxxxxxx学号:xxxxxxxxxx实验一 Quartus II 原理图输入法设计与实现一、实验目的(1)熟悉用Quartus II原理图输入法进行电路设计和仿真;(2)掌握Quartus II图形模块单元的生成与调用;(3)熟悉实验板的使用。二、实验所用仪器及元器件(1)计算机;(2)直流稳压电源;(3)数字系统与逻辑设计实验开发板。三、实验任务要求(1)用逻辑门设计实现一个半加器,仿真验证其功能,并生成新的半加器图形模块单元。(2)用实验(1)中生成的半加器模块和逻辑门

2、设计实现一个全加器,仿真验证其功能,并下载到实验板测试,要求用拨码开关设定输入信号,发光二极管显示输出信号。(3)用3线-8线译码器(74LS138)和逻辑门设计实现函数,仿真验证其功能,并下载到实验板测试。要求用拨码开关设定输入信号,发光二极管显示输出信号。四、实验原理图及仿真波形图(1)半加器【实验原理图】【仿真波形图】【仿真波形图分析】由波形图可以看出,真值表如下:absoco0000011010101101由此可得,满足半加器的设计要求。(2)全加器【实验原理图】【仿真波形图】【仿真波形图分析】由波形图可以看出真值表如下:ainbincinsumcout0000000110010100

3、110110010101011100111111用分别表示信号ain、bin、cin、sum和cout,则可得逻辑表达式为满足全加器的设计要求。(3)3线-8线译码器实现函数【实验原理图】【仿真波形图】【仿真波形图分析】由波形图可得真值表如下:ABCF00010011010101101000101011001111则逻辑表达式为。实验二 用VHDL 设计与实现组合逻辑电路一、实验目的(1)熟悉用VHDL语言设计组合逻辑电路的方法;(2)熟悉用Quartus II文本输入法进行电路设计;(3)熟悉不同的编码及其之间的转换。二、实验所用仪器及元器件(1)计算机;(2)直流稳压电源;(3)数字系统与

4、逻辑设计实验开发板。三、实验任务要求(1)用VHDL语言设计实现一个共阴极7段数码管译码器,仿真验证其功能,并下载到实验板测试。要求用拨码开关设定输入信号,7段数码管显示输出信号。(2)用VHDL语言设计实现一个8421码转换为格雷码的代码转换器,仿真验证其功能,并下载到实验板测试。要求用拨码开关设定输入信号,发光二极管显示输出信号。(3)用VHDL语言设计实现一个4人表决器,多数人赞成决议则通过,否则决议不通过,仿真验证其功能,并下载到实验板测试。要求用拨码开关设定输入信号,发光二极管显示输出信号。四、实验VHDL代码及仿真波形图(1)数码管译码器【VHDL代码】library ieee;u

5、se ieee.std_logic_1164.all;entity seg7_1 isport (a:in std_logic_vector(3 downto 0);b:out std_logic_vector(6 downto 0);c:out std_logic_vector(7 downto 0);end seg7_1;architecture seg7_1_arch of seg7_1 isbeginprocess(a)begincbbbbbbbbbbbbbbbbbbbbbb=0000;end case;end process;end;【仿真波形图】【仿真波形图分析】由波形图可以看出具

6、体真值表如下:a(8421码)b(格雷码)00000000000100010010001100110010010001100101011101100101011101001000110010011000对于a的其他无意义的取值b均对应于“0000”。显然该设计符合要求,能使8421码转换为对应格雷码。(3)4人表决器【VHDL代码】library ieee;use ieee.std_logic_1164.all;entity Judge4 isport(a:in std_logic_vector(3 downto 0);b:out std_logic);end Judge4;architect

7、ure Jg_arch of Judge4 isbeginprocess(a)beginif(a=1111or a=1110 or a=1101 or a=1011 or a=0111)thenb=1;elseb=0;end if;end process;end;【仿真波形图】【仿真波形图分析】由波形图可以看出真值表如下:ab00000000100010000110010000101001100011111000010010101001011111000110111110111111即只有当a中的四个元素中有3个或3个以上真值为1时,输出b值才为1,表示多数人赞成时才能通过决议,符合设计要求。

8、实验三 用VHDL设计与实现时序逻辑电路一、实验目的(1)熟悉用VHDL语言设计时序逻辑电路的方法;(2)熟悉用Quartus II文本输入法进行电路设计。二、实验所用仪器及元器件(1)计算机;(2)直流稳压电源;(3)数字系统与逻辑设计实验开发板。三、实验任务要求(1)用VHDL语言设计实现一个分频系数为12,分频输出信号占空比为50%的分频器。要求在Quartus II平台上设计程序并仿真验证设计。(2)用VHDL语言设计实现一个带异步复位的8421码十进制计数器,仿真验证其功能,并下载到实验板测试。要求用按键设定输入信号,发光二极管显示输出信号。(3)将(1)、(2)和数码管译码器3个电

9、路进行连接,并下载到实验板显示计数结果。四、实验VHDL代码及实验要求内容(1)分频器【VHDL代码】library ieee;use ieee.std_logic_1164.all;entity div_12 isport(clk,clear:in std_logic;clk_out:out std_logic);end div_12;architecture arch of div_12 issignal tmp:integer range 0 to 11;beginprocess(clk,clear)beginif clear=1 thentmp=0;elsif clkevent and

10、 clk=1 thenif tmp=11 thentmp=0;else tmp=tmp+1;end if;if tmp6 thenclk_out=1;else clk_out=0;end if;end if;end process;end arch;【仿真波形图】【仿真波形图分析】由仿真波形图可以看出,输出信号clk_out的频率为输入信号clk的1/12,输出信号占空比为50%,符合设计要求。(2)8421十进制计数器【VHDL代码】library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity

11、counter isport(clk,clear:in std_logic;q:out std_logic_vector(3 downto 0);end counter;architecture arch of counter issignal tmp:std_logic_vector(3 downto 0);beginprocess(clk,clear)beginif clear=1 thentmp=0000;elsif clkevent and clk=1 thenif tmp=1001 thentmp=0000;else tmp=tmp+1;end if;end if;end proce

12、ss;qclk,clear=clear,clk_out=s);u2:counter port map(clk=s,clear=clear,q=tmp);u3:seg7_1 port map(a=tmp,b=clk_out,c=cat);end;【实验模块端口说明】分频模块div_12的两个输入端口clk和clear分别接外部输入信号clk和clear,计数模块counter的clear输入端口仍接外部输入信号clear,而输入端口clk与分频模块div_12的输出端口clk_out相连,数码管译码器模块seg7_1的输入端口a与计数模块counter的输出端口q相连,译码器的两个输出端口b、c

13、分别对应外部输出信号clk_out和cat,这样就从整体上完成了电路的连接。【电路连接图】【仿真波形图】(注:为能在整体上观察到数码管输出的循环计数显示功能,在仿真中clk频率选取值较高,波形较密)【仿真波形图分析】由仿真波形图可以看出,随着clk波形的反复变化,控制数码管显示的输出信号clk_out也在循环变化,对应具体显示数字为0-9,符合设计要求。实验四 用VHDL设计与实现相关电路一、实验目的(1)掌握VHDL语言的语法规范,掌握时序电路描述方法;(2)掌握多个数码管动态显示的原理及设计方法。二、实验所用仪器及元器件(1)计算机;(2)直流稳压电源;(3)数字系统与逻辑设计实验开发板。

14、三、实验任务要求用VHDL语言设计并实现六个数码管串行扫描电路,要求同时显示0、1、2、3、4、5这6个不同的数字图形到6个数码管上,仿真验证其功能,并下载到实验板测试。四、实验VHDL代码及实验要求内容【VHDL代码】(1)计数模块counter.vhdlibrary ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity counter isport(clk,clear:in std_logic;count:out std_logic_vector(2 downto 0);end counter;arc

15、hitecture arch of counter issignal tmp:std_logic_vector(2 downto 0);beginprocess(clk,clear)beginif clear=1 thentmp=000;elsif clkevent and clk=1 thenif tmp=110 thentmp=001;else tmp=tmp+1;end if;end if;end process;count num=1111110;cat num=0110000;cat num=1101101;cat num=1111001;cat num=0110011;cat nu

16、m=1011011;catnum=0000000;catclk,clear=clear,count=tmp);u2:display port map(n=tmp,num=clk_out,cat=cat);end;【实验模块端口说明】计数模块counter的两个输入端口clear和clk分别接外部输入信号clear和clk,数码管显示模块display的输入端口n与计数模块的输出端口count相连,显示模块的两个输出端口num和cat分别对应外部输出信号clk_out和cat,由此便完成了整个电路的连接。【电路连接图】【仿真波形图】【仿真波形图分析】由仿真波形图可以看出,每经过6个clk周期,对

17、应数码管显示电路完成一次串行扫描(由6个不同数码管分别显示0-5这6个数),当clk变化频率较高时(50Hz),6个数码管即可在人眼中呈现“静止”图像。该设计符合实验要求。故障及问题分析在本学期的数电实验课程中,实验内容其实较为简单基础,只要课前认真预习,课上认真听老师讲课,实验时细心操作,基本不会有大的故障出现。我在实验的过程中或多或少遇到了一些问题而最终也都顺利解决了。首先是VHDL代码格式、语法问题。在刚开始接触这门语言的时候,由于自己并不是很熟练,有时根据思路在电脑上敲完代码再一编译却显示报错,编译失败。解决方法是查看Quartus II运行界面下方的报错提示,对症下药,而软件也会友好

18、地提示你问题所在的行数,只要找到出错的地方再做修改就可以了。有时多输入一个分号或少打了一个分号都会导致编译失败,这就提醒了我要在输入代码的过程中认真仔细。而随着时间的推移,我对VHDL语言也越来越熟悉,这种语法格式的出错的可能性也就大大降低了。另外一个是模块化设计的连接问题。做实验三时,一开始自己对如何组合三个模块的电路理解得不是很好,误以为在主体模块中定义与独立模块中相同名称的变量就可以直接调用其内部变量,导致连接错误,仿真的波形都不是理想的结果。但经过认真学习书上的有关内容后,理清了思路,认识到了错误所在,修改了代码,最终成功编译运行,并顺利在实验板上下载测试,后面再进行模块化电路设计时就

19、更显得心应手了。总结和结论本学期数字电路与逻辑设计实验内容包括Quartus II的原理图输入法设计电路、VHDL语言设计组合逻辑和时序逻辑电路以及用VHDL语言设计功能相关电路等。通过本学期数电实验的学习,我学会了利用Quartus II软件平台进行逻辑电路设计,包括用基础的原理图法和抽象化的VHDL语言。实验过程中我对VHDL语言的掌握程度在逐步提高,设计电路的能力也有了很大提升。该实验很好地锻炼了我的逻辑思维能力,使我对数字电路的理解进一步加深。可编程数字系统与逻辑设计实验开发板的使用使得自己能够实践检验设计的正确性,也给实验的过程本身带来了趣味性,提高了观察能力和动手能力。经过本学期的实验学习,自己已具备基本的数字逻辑电路设计能力,为后期的进一步发展打下了坚实的基础。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1