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