数字电路与逻辑设计实验

上传人:壹****1 文档编号:509173891 上传时间:2023-06-21 格式:DOC 页数:23 大小:286KB
返回 下载 相关 举报
数字电路与逻辑设计实验_第1页
第1页 / 共23页
数字电路与逻辑设计实验_第2页
第2页 / 共23页
数字电路与逻辑设计实验_第3页
第3页 / 共23页
数字电路与逻辑设计实验_第4页
第4页 / 共23页
数字电路与逻辑设计实验_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《数字电路与逻辑设计实验》由会员分享,可在线阅读,更多相关《数字电路与逻辑设计实验(23页珍藏版)》请在金锄头文库上搜索。

1、-数字电路与逻辑设计实验报告学院:班级:姓名:*:日期:一 实验名称:实验一:QuartusII 原理图输入法设计与实现实验二:用VHDL 设计与实现组合逻辑电路实验三:用VHDL 设计与实现时序逻辑电路实验四:用VHDL 设计与实现数码管动态扫描控制器二 实验所用器件及仪器:1.计算机2.直流稳压电源3.数字系统与逻辑设计实验开发板三 实验要求:实验一:(1) 用逻辑门设计实现一个半加器,仿真验证其功能,并生成新的半加器图形模块单元。(2) 用(1)实现的半加器和逻辑门设计实现一个全加器,仿真并验证其功能,并下载到实验板上测试。要求用拨码开关设定输入信号,发光二极管显示输出信号。(3) 用3

2、8线译码器和逻辑门设计实现函数F=/C/B/A+/CB/A+C/B/A+CBA,仿真验证其功能并下载到实验板测试。要求用拨码开关设定输入信号,发光二极管显示输出信号。注:实验时将三个元器件放在一个new block diagram中实现。实验二:(1) 用VHDL语言设计实现一个共阴极7段数码译码器,仿真验证其功能,并下载到实验板测试。要求用拨码开关设定输入信号,7段数码管显示输出信号。(2) 用VHDL语言设计实现一个8421码转余三码的代码器,仿真验证其功能,并下载到实验板测试。要求用拨码开关设定输入信号,发光二极管显示输出信号。(3) 用VHDL语言设计实现一个4位二进制奇校验器,输入奇

3、数个1时,输出1,否则出0;仿真验证其功能,并下载到实验板测试。要求用拨码开关设定输入信号,发光二极管显示输出信号。实验三:(1) 用VHDL语言设计实现一个带异步复位的8421 十进制计数器,仿真验证其功能,并下载到实验板测试。要求用按键设定输入信号,发光二极管显示输出信号。(2) 用VHDL语言设计实现一个分频系数为12,输出信号占空比为50%的分频器,仿真验证其功能。注:实验时将(1)、(2)和数码管译码器3 个电路进行,并下载到实验板显示计数结果。实验四:(1) 用VHDL语言设计实现六个数码管串行扫描电路,要求同时显示0,1,2,3,4,5这几个不同的数字图形到数码管上,仿真验证其功

4、能,并下载到实验板测试。(2) 用VHDL语言设计实现六个数码管滚动显示电路:A 循环左循环,左进右出。状态为:012345-123450-234501-345012-450123-501234-012345B 向左滚动,状态为(*表示数码管不显示):012345-12345*-2345*-345*-45*-5*-*-*0-*01-*012-*0123-*01234-012345四 实验原理及设计思路:实验一:(1) 半加器是考虑两位二进制数相加,出来的结果有二者加后的一个低位数,和一个这两位数相加所得的进位数。所以用异或门和与门即可实现双输入双输出的半加器。(2) 全加器可以以半加器为基础,

5、在考虑两位二进制数相加时也考虑上地位的进位信号,输出与半加器类似。(3) 译码器加逻辑门可以实现相应的逻辑函数,将有相应最小项的输出项或即可。实验二:(1) 共阴极7段数码译码器:拨码开关的不同状态对应输入信号的0和1,通过改变拨码开关的状态改变输入值,此时用VHDL语言描述每个输入值下对应的数在数码管中的显示。(2) 8421码转余三码的代码器:将8421BCD码加上0011即为对应的余三码,通过通过改变拨码开关的状态改变输入的84212BCD码,由四个LED灯的亮与灭(亮表示该值为1,灭表示0),来表示余三码的码值。(3) 奇偶校验电路:同理用拨码开关设定输入信号,发光二极管显示输出信号,

6、输入奇数个1时,对应的发光二极管亮,反之则为熄灭状态。实验三:(1) 异步计数器:由于是异步复位,且yibuclear(清零信号)优先级最高,当它有效时使状态清零。或者当到达第11个状态(1010)时复位,使状态回归到初始状态(0000)。其余时刻,用cp来计数,每按一次键cp=1,状态加1。因此设计2个输入端,一个输出端数组即可。(2) 分频器:是使cp经过12个周期,输出的信号正好完成一次完整的翻转,因此需要计数,该计数器模值为12,每六个状态时翻转一次。(3) 可以使用分频器为异步计数器提供脉冲信号,异步计数器的输出作为数码管译码管的输入,由数码管译码管显示当前数据。实验四:(1) 六个

7、数码管串行扫描电路:由实验板上18号元件提供时钟,每过一个周期,亮一个数码管,且该数码管序号也会改变,因此需要两个数组来体现这种改变。设选择一个管亮的数组为*uan(5 downto 0),数码管上控制输出数字形状的数组为guan(6 downto 0),通过输入的时钟改变状态(signal status),由状态定*uan,guan。由于要求“同时显示”,我们知道闪烁发光的二极管闪烁频率较高时,我们将观察到持续点亮的现象,一个数码管要稳定,需要显示频率大于50HZ,现在需要6个数码管同时显示,因而时钟的频率应该大于300HZ。(2) 六个数码管滚动扫描电路:大致原理同(1),但是需要注意gu

8、an不再只有6个状态,需要用12个状态来配合周期循环使用。需要每轮的管子状态改变一个位移。此时可以把*uan由循环来赋值,实现控制不同时刻数码管的亮与灭。五 实验模块端口及连接图:实验三(3):分频器的时钟信号接外部时钟,异步清零端接外部信号,异步清零信号有效时可以实现分频器部计数清零。当外部时钟clk=1时,分频器部计数器的状态加1,每六个状态clk_out实现一次翻转。分频器的输出作为异步计数器的时钟,异步计数器的异步复位端接外部输入,可由实验板上拨码开关实现。这样就将外部时钟12分频后输入给异步计数器,异步计数器将计数输入数码译码器,实现控制数码管的状态,使之显示异步8421十进制计数器

9、的此刻的数。实验四:(1) clk是输入信号,接外部时钟信号(location对应实验板18),要求频率大于300HZ,clear是异步复位信号。guan为输出信号,连接到数码管上对应的7条线,控制这个数码管中每一段线的亮与灭,实现显示数字。*uan是控制6个数码管此时应该亮哪一个。由signal status根据输入信号确定此时对应的状态下的*uan和guan。(2) 循环左滚动:输入信号为clk,clear。Clear为异步复位信号,Clk接外部时钟,该时钟共有4种频率(可以通过改变粉红色按钮上的小拨码开关调整),为了使实验现象符合要求,我们可以选择最高频率并对它进行分频,分出我们所需要的

10、合适的频率,再由分频器输出的信号控制状态变化,每来一个时钟改变一次状态,*uan和guan为输出信号,分别控制该时刻应该亮哪个数码管和这个数码管上每条线的亮与灭状态。故clk接实验板上18,clear可由按键实现,*uan接实验板上cat(05)guan接数码管上每条线所对应的数字。小周期计数器控制每位数码的显示,大周期计数器控制数码的移位。(3) clk为输入信号,接外部时钟实验板上18,通过循环移位及每来一个cp对*uan进行一次赋值,选择此时该亮的灯。通过改变输出guan和*uan,从而得出能熄灭能亮的现象。guan接数码管上的每条线所对应位置,*uan接六个数码管的cat端六 实验原理

11、图或者VHDL代码:(1) 实验一(2):其中半加器ba的原理图如下所示:(2) 实验三(3)VHDL代码如下:LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY sange IS PORT( clk:IN STD_LOGIC; clear,clearyibu:IN STD_LOGIC; b:OUT STD_LOGIC_VECTOR(6 downto 0); y2,y3,y4,y5,y6,y7:OUT STD_LOGIC);end sange;ARCHITECTURE a OF s

12、ange IS component fenpin PORT( clk:IN STD_LOGIC; clear:IN STD_LOGIC; clk_out:OUT STD_LOGIC ); END component; component yibu PORT( cp,clear:IN STD_LOGIC; q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0) ); END component; component seg7_1 PORT(a:IN STD_LOGIC_VECTOR (3 downto 0);b:OUT STD_LOGIC_VECTOR(6 downto 0);c,

13、d,e,f,g,h:OUT STD_LOGIC); END component;SIGNAL na:STD_LOGIC; SIGNAL nb:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGIN u1:fenpin PORT MAP(clk=clk,clear=clear,clk_out=na); u2:yibu PORT MAP(cp=na,clear=clearyibu,q=nb); u3:seg7_1 PORT MAP(a=nb,b=b,c=y2,d=y3,e=y4,f=y5,g=y6,h=y7); END a;其中fenpin,yibu,seg7_1的VHDL代码如下:

14、LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY fenpin IS PORT( clk:IN STD_LOGIC; clear:IN STD_LOGIC; clk_out:OUT STD_LOGIC ); END fenpin; ARCHITECTURE a OF fenpin IS SIGNAL tmp:INTEGER RANGE 0 TO 5; SIGNAL clktmp: STD_LOGIC; BEGIN PROCESS(clear,clk) BEGIN IF clear=0 THEN tmp=0; ELSIF (clkevent and clk=1) THEN IF tmp=5 THEN tmp=0; clktmp=NOT clktmp; ELSE tmp=tmp+1; END IF; END IF; END PROCESS; clk_out=clktmp; END a;yibu:LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY yibu

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号