1、北邮数电实验报告北京邮电大学数字电路与逻辑设计实验学院: 信息与通信工程学院 班级: 姓名: 学号: 实验一 Quartus II原理图输入法设计一、 实验目的(1) 熟悉Quartus II原理图输入法进行电路设计和仿真;(2) 掌握Quartus II 图形模块单元的生成与调用;(3) 熟悉实验板的使用。二、 实验所用器材:(1) 计算机(2) 直流稳压电源(3) 数字系统与逻辑设计实验开发板三、 实验任务要求 (1) 用逻辑门设计实现一个半加器,仿真验证其功能,并生成新的半加器图形模块单元。(2) 用(1)中生成的半加器模块和逻辑门设计实现一个全加器,仿真验证其功能,并下载到实验板测试,
2、要求用拨码开关设定输入信号,发光二极管显示输出信号。(3) 用3线-8线译码器(74LS138)和逻辑门设计实现函数 ,仿真验证其功能,并下载到实验板测试。要求用拨码开关设定输入信号,发光二极管显示输出信号。 四、 原理图及仿真波形图 全加器 仿真波形图分析 :根据仿真波形对比半加器真值表,可以确定电路实现了半加器的功能。 五、 故障及问题分析 在本次实验较为简单,因为是第一次使用Quartus软件,所以会犯一些很基础的错误,比如修改了之后忘记第二次编译,波形仿真前周期设置错误。 实验二 用VHDL设计与实现组合逻辑电路一、 实验目的:(1) 熟悉用VHDL语言设计组合逻辑电路的设计;(2)
3、熟悉用Quartus文本输入法进行电路设计;(3) 熟悉不同的编码及其之间的转换。二、 实验所用器材:(1) 计算机(2) 直流稳压电源(3) 数字系统与逻辑设计实验开发板三、 实验任务要求 (1) 用VHDL语言设计实现一个共阴级7段数码管译码器,仿真验证其功能,并下载到实验板测试。要求用拨开关设定输入信号,7段数码管显示输出信号;(2) 用VHDL语言设计实现一个8421码转余3码的代码转换器,仿真验证其功能,并下载到实验板测试。要求用拨码开关设定输入信号,发光二极管显示输出信号;(3) 用VHDL语言设计实现一个4位二进制奇校验器,输入奇数个1时,输出为1,否则输出0,仿真验证其功能,并
4、下载到实验板测试。要求用拨码开关设定输入信号,发光二极管显示输出信号。 四、 故障及问题分析 这个实验主要是输出端口与实验板上的端口对应问题,设置输出信号cat,令cat为011111,“0”对应的数码管就会正常显示。 实验三 用VHDL设计与实现时序逻辑电路一、 实验目的:(1) 熟悉用VHDL语言设计时序逻辑电路的设计;(2) 熟悉计数器、分频器和移位寄存器的设计与应用;(3) 熟悉用Quartus文本输入法进行电路设计。二、 实验所用器材:(1) 计算机(2) 直流稳压电源(3) 数字系统与逻辑设计实验开发板三、 实验任务要求 (1) 用VHDL语言设计实现一个带异步复位的8421码十进
5、制计数器,仿真验证其功能,并下载到实验板测试。要求用按键设定输入信号,发光二极管显示输出信号;(2) 用VHDL语言设计实现一个分频系数为12,分频输出信号占空比为50%的分频器。要求在Quartus平台上设计程序并仿真验证设计。(3) 将(1)、(2)和数码管译码器3个电路进行链接,并下载到实验板显示计数结果。 四、 实验原理图及仿真波形图 仿真波形图分析:CLKin通过分频器后,频率降低为原来的1/12,因为当CLKin经过12个周期后,计数器的时钟信号经过一个周期,计数器的计数值加一。通过总输出bout可以看出,数码管每经过CLKin的十二个周期后,显示的数字就会加一。可见波形图是正确的
6、.附:3-(3)代码:LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY lianjie IS PORT( Rin: IN STD_LOGIC; CLKin: IN STD_LOGIC; bout: OUT STD_LOGIC_VECTOR(6 DOWNTO 0); CATout: OUT STD_LOGIC_VECTOR(5 DOWNTO 0) ); END lianjie; ARCHITECTURE a OF lianjie IS COMPONENT shumaguan PORT( a: IN STD_LOGIC_VECTOR(3 DOWNT
7、O 0); b: OUT STD_LOGIC_VECTOR(6 DOWNTO 0); CAT: OUT STD_LOGIC_VECTOR(5 DOWNTO 0) ); END COMPONENT; COMPONENT jishuqi PORT( R: IN STD_LOGIC; CLK: IN STD_LOGIC; F: BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0) ); END COMPONENT; COMPONENT fenpinqi PORT( R: IN STD_LOGIC; CLK: IN STD_LOGIC; F: BUFFER STD_LOGIC );
8、END COMPONENT; SIGNAL d : STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL e : STD_LOGIC; BEGIN u1 : fenpinqi PORT MAP(R=Rin,CLK=CLKin,F=e); u2 : jishuqi PORT MAP(R=Rin,CLK=e,F=d); u3 : shumaguan PORT MAP(a=d,b=bout,CAT=CATout); END;模块端口连接图: 五、 故障及问题分析 实验板上提供的时钟信号频率是50MHz的,而代码用的用的频率由于仿真波形的原因设置的较低,因此12分频的分频器是完全行
9、不通的。为了数码管能够一秒更新一次数字,因此需要将分频器的分频系数修改为50MHz才能够正常运行。 实验四 用VHDL设计与实现相关电路一、 实验目的:(1) 掌握VHDL语言的语法规范,掌握时序电路描述方法;(2) 掌握多个数码管动态扫描显示的原理及设计方法。二、 实验所用器材:(1) 计算机(2) 直流稳压电源(3) 数字系统与逻辑设计实验开发板三、 实验任务要求 (1) 用VHDL语言语言设计并实现六个数码管串行扫描电路,要求同时显示0、1、2、3、4、5这六个不同的数字图形到6个数码管上,仿真验证其功能,并下载到实验板上测试;(2) 用VHDL语言设计并实现六个数码管滚动显示电路。四、
10、 实验原理图及仿真波形图 仿真波形图分析:每当一个时钟上升沿到来,CAT就有进入下一个状态,即由“011111”进入“101111”,再进入“110111”,以此类推。当时钟信号的频率足够高时,通过人眼看见的六个数码管就是同时显示的了。当数码管显示为0时,只有CAT5对应的数值为0,其他为1;当数码管显示为1时,只有CAT4对应的数值为0,其他为1。当数码管显示为2、3、4、5时,同样只有CAT3、CAT2、CAT1、CAT0数值为0,其他为1。由波形图可知,实验的代码是正确的。附:代码LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.ST
11、D_LOGIC_UNSIGNED.ALL; ENTITY move IS PORT( R: IN STD_LOGIC; CLK1,CLK2: IN STD_LOGIC; CAT: OUT STD_LOGIC_VECTOR(5 DOWNTO 0); F: OUT STD_LOGIC_VECTOR(6 DOWNTO 0) ); END move; ARCHITECTURE V1 OF move IS SIGNAL TMP : INTEGER RANGE 0 TO 6; BEGIN PROCESS(CLK1,R) BEGIN IF(R = 1) THEN TMP = 0; ELSIF(CLK1EVE
12、NT AND CLK1 = 1 ) THEN IF(TMP = 6) THEN TMP = 1; ELSE TMP F =1111110;CAT F =0110000;CAT F =1101101;CAT F =1111001;CAT F =0110011;CAT F =1011011;CAT F = 0000000;CAT = 000000; END CASE; END PROCESS; END;模块端口连接图: 五、 故障及问题分析 在写入实验板之后,发现实验板提供的频率不能够很好的同时显示出05这六个数字,不是颜色太淡,就是逐个显示。经过询问,了解了实验板可以通过开关直接修改频率,并且可以在修改范围内找到一个合适的频率,数码管便可以正常显示。课程总结与结论数电是一门实践性很强的课程,数电实验在我们学习数电知识和掌握相关技术的过程中是不可或缺的一个过程。不同于理论课上的文字图表,数电实验课有着EDA软件及可编程器件作为实现课程学习探索的良好条件。作为学习实验课程的必需,我们对VHDL语言进行了初步的系统的学习,在严格按照规范的使用下慢慢理解和掌握这门语言。可以说,数电实验能够在有限的课时内,让我们对数电产生一定的兴趣,从而为今后的进一步学习打好基础。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1