首页 参考资料--北邮数电实验报告

参考资料--北邮数电实验报告

举报
开通vip

参考资料--北邮数电实验报告参考资料--北邮数电实验报告 学院:信息与通信工程 专业:信息工程 班级:2013211125 学号:2013210681 姓名:袁普 实验一:Quartus?原理图输入法设计与实现 一:实验要求 ?:用逻辑门设计实现一个半加器,仿真验证其功能,并生成新 的半加器图形模块单元。 ?:用实验一生成的半加器模块和逻辑门设计实现一个全加器,仿真验证其功能,并下载到实验板测试,要求用拨码开关设定输入信号,发光二极管显示输出信号。 ?:用3线—8线译码器和逻辑门设计实现函数F,仿真验证其功能,下载到实验...

参考资料--北邮数电实验报告
参考资料--北邮数电实验 报告 软件系统测试报告下载sgs报告如何下载关于路面塌陷情况报告535n,sgs报告怎么下载竣工报告下载 学院:信息与通信 工程 路基工程安全技术交底工程项目施工成本控制工程量增项单年度零星工程技术标正投影法基本原理 专业:信息工程 班级:2013211125 学号:2013210681 姓名:袁普 实验一:Quartus?原理图输入法设计与实现 一:实验要求 ?:用逻辑门设计实现一个半加器,仿真验证其功能,并生成新 的半加器图形模块单元。 ?:用实验一生成的半加器模块和逻辑门设计实现一个全加器,仿真验证其功能,并下载到实验板测试,要求用拨码开关设定输入信号,发光二极管显示输出信号。 ?:用3线—8线译码器和逻辑门设计实现函数F,仿真验证其功能,下载到实验板测试。要求用拨码开关 设定输入信号,发光二极管显示输出信号。 二:报告内容 ?:实验一(2)的原理图 用两个已经生成的半加器图形模块单元和一个双输入或门即可实现全加器 ?:仿真波形图以及 分析 定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析 波形图: 波形分析:通过分析ab ci三个输入在8中不同组合下的输出,发现与全加器的真值表吻合,说明实现了全加器的逻辑功能。同时看见波形中出现了毛刺(冒险),这也与事实一致。 ?:故障及问 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 分析 第一次在做全加器的时候发现找不到已经生成的半加器模块,后来发现是因为在建立工程时这两个项目没有建在同一个文件夹里,在调用的时候就找不到。后来我将全加器工程建在同一个文件夹里解决了此问题。 实验二:用VHDL设计和实现组合逻辑 电路 模拟电路李宁答案12数字电路仿真实验电路与电子学第1章单片机复位电路图组合逻辑电路课后答案 一:实验要求 ?:用VHDL设计一个8421码转换为格雷码的代码转换器,仿真验证其功能。 ?:用VHDL设计一个4位二进制奇校验器,要求在为奇数个1时输出为1,偶数个1时输出为0,仿真验证其功能。 ?:用VHDL设计一个数码管译码器,仿真验证其功能,下载到实验板测试,要求用拨码开关设定输入信号,数码管显示输出信号, 并且只使一个数码管有显示,其余为熄灭状态。 二:故障及问题分析 在刚开始实现让一个数码管显示的时候,我本来准备再设置6个输入和输出,通过实验板上的拨码来输入信息分别控制不同的数码管的的开闭状态,但是后来发现这样效率很低而且实验板上的拨码开关数量根本不够。在老师的提醒下,我最终在VHDL里直接增加了一个向量输出”011111”来直接控制cat0~5六个管脚,从而达到了实验的要求。 实验三:用VHDL设计和实现时序逻辑电路 一:实验要求 ?:用VHDL语言设计实现一个8421十进制计数器,要求有高电平复位功能,仿真验证其功能。 ?:用VHDL语言设计实现一个分频系数为12,输出为占空比50%方波的分频器,有高电平复位功能,仿真验证其功能。 ?:将(1),(2)和数码管译码器三个电路进行连接,仿真验证其功能,并下载到实验板进行测试,要求第三个数码管显示数字。 二:报告内容 ?实验三(3)模块端口说明及模块代码 模块一:div12为一个有高电平复位功能的分频系数为12的分屏器,其输出是一个占空比50%的方波。此模块输入连接一个时钟输入,即可在输出端得到一个周期更大的方波输出。 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity div12 is port( clear,clk:in std_logic; clk_out:out std_logic ); end div12; architecture struct of div12 is signal temp:integer range 0 to 5; signal clktmp:std_logic; begin process(clk,clear) begin if(clear='1') then temp<=0; elsif clk'event and clk='1' then if(temp=5) then temp<=0; clktmp<=not clktmp; else temp<=temp+1; end if; end if; end process; clk_out<=clktmp; end; 模块二:count10是一个有高电平复位功能的8421十进制计数 器,将分频器的输出作为时钟信号接为计数器的输入,即可在输出端 得到计数的下一状态的输出。 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity count10 is port( clk,clear:in std_logic; q:out std_logic_vector(3 downto 0) ); end count10; architecture struct of count10 is signal q_temp:std_logic_vector(3 downto 0); begin process(clk) begin if (clk'event and clk='1') then if clear='1' then q_temp<="0000"; elsif q_temp="1001" then q_temp<="0000"; else q_temp<=q_temp+1; end if; end if; end process; q<=q_temp; end; 模块三:seg7_1是数码管译码器,将计数器的4位输出接为其 输入信号,即可在输出端得到对应的十进制数的数码管信号。 library ieee; use ieee.std_logic_1164.all; entity seg7_1 is port( a:in std_logic_vector(3 downto 0); b:out std_logic_vector(6 downto 0) ); end seg7_1; architecture arch of seg7_1 is begin process(a) begin case a is when "0000"=>b<="1111110"; when "0001"=>b<="0110000"; when "0010"=>b<="1101101"; when "0011"=>b<="1111001"; when "0100"=>b<="0110011"; when "0101"=>b<="1011011"; when "0110"=>b<="1011111"; when "0111"=>b<="1110000"; when "1000"=>b<="1111111"; when "1001"=>b<="1111011"; when others=>b<="0000000"; end case; end process; end; 连接图如下: ?:仿真波形图 ?:波形图分析 由仿真波形图可以看出,输入的时钟信号经过分频器后产生了周期为输入12倍的时钟信号,然后进行了上升沿有效的从0~9的10进制计数,每个计数数字都对应一个7位输出来控制数码管。同时此电路还具有同步高电平复位的功能。 ?故障及问题分析 一开始发现仿真之后计数器输出和数码管输出都全是0,仔细检测后发现是因为没有使用总线进行连接,使用总线后解决了问题。 实验四:用VHDL设计与实现相关电路 一:实验要求 ?:用VHDL实现6个数码管的串行扫描,让6个数码管显示 不同的数字,仿真并验证功能,并下载到实验板测试。 ?:实现数码管的滚动显示(选做) 二:报告内容 ?:实验四模块端口说明 每个数字对应一每个数码管对应不 0~5计数 个6位输出来控同的数字显示 制不同数码管 ?:VHDL代码 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity shumaguan is port ( clk:in std_logic; control_out:out std_logic_vector(5 downto 0); //管脚控制 seg:out std_logic_vector(6 downto 0) // 数码管显示 ); end shumaguan; architecture a of shumaguan is signal control:std_logic_vector(5 downto 0); signal count:integer range 0 to 5; begin p1:process(clk) //P1实现计数功能 begin if (clk'event and clk='1') then if count=5 then count<=0; else count<=count+1; end if; end if; end process; p2:process(count) //P2实现数码管管脚控制 begin case count is when 0=>control<="011111"; when 1=>control<="101111"; when 2=>control<="110111"; when 3=>control<="111011"; when 4=>control<="111101"; when 5=>control<="111110"; end case; end process; control_out<=control; p3:process(control) //P3实现数码管数字显示 begin case control is when"011111"=>seg<="1111110"; when"101111"=>seg<="0110000"; when"110111"=>seg<="1101101"; when"111011"=>seg<="1111001"; when"111101"=>seg<="0110011"; when"111110"=>seg<="1011011"; when others=>seg<="0000000"; end case; end process; end; ?:仿真波形图 ?:仿真波形分析 通过仿真波形我们可以看出,在输入时钟的每个上升沿,由于内部的计数器功能,使得每一个计数对应着不同的管脚控制输出,而不同的管脚控制信号又对应着不同的数码管显示的信号,从而达到6个数码管显示不同数字的功能,如果输入时钟的频率够大,就能实现6个数字的同时显示。 ?:故障以及问题分析 在进行下实验板测试的时候,我发现我下载完后总是会使得点阵发光,而且频率高的时候小数点会亮,然而其他同学都没有遇到。我在检查完代码与仿真后发现并没有问题,最后只有换了一个实验板,之后结果就对了,我想可能是实验板出了问题。 总结与结论 本学期的数字电路实验课让我受益匪浅。它让我熟悉了quartus这款新的软件,也让我学会了VHDL这门新的语言,同时这门实验课让我在数字电路课程上学习到的理论知识有了实际的作用。实验促进了我对数字电路的理解,在不断的编写和调试代码的过程中,我的逻辑思维也有了极大的提高,这对我以后的学习都会起到巨大的作用。我从实验课过程中还学习到了重要的一点就是代码一定要自己写一遍,就算是书上有的也要自己打一遍来加深理解。学习语言重点就是自己的实际操作,光是看是不行的。这就是我对这学期数字电路实验课的总体感受,希望下学期的实验自己可以做的更好。
本文档为【参考资料--北邮数电实验报告】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_731942
暂无简介~
格式:doc
大小:115KB
软件:Word
页数:0
分类:
上传时间:2017-10-16
浏览量:23