时钟、正弦波和方波实验报告——07电子 马路 0736065

更新时间:2023-06-08 17:16:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

FPGA时钟、正弦波和方波实验报告

时钟实验

——07电子 马路 0736065

一:实验要求。

设计一个时钟,能设置两个时间,到这两个时间能够控制自动响铃30秒。 时间调整和定时的设置使用两个按钮实现。

二:试验程序及说明。

说明:clk:时钟基准信号,做正常走时的秒时钟信号。 clk2:用于在调整(校准)时间和设置闹铃时间时,相应的时钟位能闪烁。 clk5:用于使蜂鸣器响所需的1KHz的时钟。

pb1:用于调整时间的按钮。每按一下,相应的时钟位时钟加一。

pb2:用于调整时钟的状态。正常走时状态0,设置时钟小时1,设置时钟分钟2,设置定时a小时时3,设置定时a分钟4,设置定时b小时5,设置定时b小时6,然后回到0。状态的变化根据pb1的信号变化。pb2用来改变设置值。 pt1:输出的秒时钟信号。 pt2:输出的10秒位信号。 ptml:输出的分钟信号的低位。

FPGA时钟、正弦波和方波实验报告

ptmh:输出的分钟信号的高位。 pthl:输出的小时信号的低位。 pthh:输出的小时信号的高位。

ring:输出的打铃信号,它和时钟信号clk5相与的结果作为蜂鸣器的输入信号。 k:打铃开关信号,当为高电平时,打铃时间设置有效,到打铃时间,蜂鸣器会响;当为低电平时,到打铃时间,蜂鸣器不响。

下面的signal信号均为中间量,并不作为最终的输出信号。 q1,q2,q3,q4,q5,q6:秒的高低位输出信号,分钟的高低位输出信号,小时的高低位输出信号。

dq1,dq2,dq3,dq4,dq5,dq6:正常走时的时钟信号输出,相应的译码输出,分别对应:秒的高低位,分钟的高低位,小时的高低位。 dpa1,dpa2,dpa3,dpa4,dpb1,dpb2,dpb3,dpb4:设置的打铃时间的小时和分钟的译码输出信号,分为a和b。dpa1,dpa2:a打铃时间的分钟的低高位,dpa3,dpa4:小时的低高位;dpb1,dpb2:b打铃时间的低高位,dpb3,dpb4:小时的低高位。 c1,c2,c3,c4:c1:秒低位的进位信号,c2:秒高位的进位信号,c3:分钟的低位进位信号,c4:分钟的高位进位信号。 clk1s,clk1m,clk1h:秒、分、时的时钟信号。 hour:正常走时的小时输出信号。 rhoura,rhourb:设置的打铃时间的输出小时信号。 rminha,rminhb,rminla,rminlb:设置的打铃时间a和b的分钟输出信号。 rhourha,rhourhb,rhourla,rhourl:设置的打铃时间a和b的小时输出信号。

rhac,rhbc,rmac,rmbc:设置打铃信号的时钟基准信号。 sta:状态标志位。

ringa,ringb:a和b的打铃标志位。 fig:数码管闪烁标志位。

秒的低位进行计数。 秒的高位进行计数

FPGA时钟、正弦波和方波实验报告

分钟的低位计数

小时的低位计数

分钟的高位计数

小时的高位计数

FPGA时钟、正弦波和方波实验报告

显示秒的低位

显示秒的高位

FPGA时钟、正弦波和方波实验报告

显示分钟的低位

显示小时的低位 显示分钟的高位

显示小时的高位

说明:a的定时,小时的高位存在rhourh 中,低位存在rhourla中;分钟的高

FPGA时钟、正弦波和方波实验报告

位存在rminha中,低位存在rminla

中。

说明:b的定时,小时的高位存在rhourh 中,低位存在rhourlb中;分钟的高

位存在rminhb中,低位存在rminlb

中。

FPGA时钟、正弦波和方波实验报告

process(rminha) -----显示设置的 a 时间:分钟高位 begin case rminha is when 0=> dpa3<="0000"; when 1=> dpa3<="0001"; when 2=> dpa3<="0010"; when 3=> dpa3<="0011

"; when 4=> dpa3<="0100"; when 5=> dpa3<="0101"; when 6=> dpa3<="0110"; when 7=> dpa3<="0111"; when 8=> dpa3<="1000"; when 9=> dpa3<="1001"; WHEN OTHERS => NULL; end case; end process;

process(rminla) ------ 显 示 设 置 的 a 时间:分钟低位 begin case rminla is when 0=> dpa4<="0000"; when 1=> dpa4<="0001"; when 2=> dpa4<="0010"; when 3=> dpa4<="0011"; when 4=> dpa4<="0100"; when 5=> dpa4<="0101"; when 6=> dpa4<="0110"; when 7=> dpa4<="0111"; when 8=> dpa4<="1000"; when 9=> dpa4<="1001"; WHEN OTHERS => NULL; end case; end process;

process(rhourhb) -----显示设置的 b 时 间:小时高位 begin case rhourhb is when 0=> dpb1<="0000"; when 1=> dpb1<="0001"; when 2=> dpb1<="0010"; when 3=> dpb1<="0011"; when 4=> dpb1<="0100"; when 5=> dpb1<="0101"; when 6=> dpb1<="0110"; when 7=> dpb1<="0111"; when 8=> dpb1<="1000"; when 9=> dpb1<="1001"; WHEN OTHERS => NULL; end case; end process;

process(rhourlb) -----显示设置的 b 时间:小时低位 begin case rhourlb is when 0=> dpb2<="0000"; when 1=> dpb2<="0001"; when 2=> dpb2<="0010"; when 3=> dpb2<="0011"; when 4=> dpb2<="0100"; when 5=> dpb2<="0101"; when 6=> dpb2<="0110"; when 7=> dpb2<="0111"; when 8=> dpb2<="1000"; when 9=> dpb2<="1001"; WHEN OTHERS => NULL; end case; end process;

FPGA时钟、正弦波和方波实验报告

说明:当状态不同时,相应显示出 来的小时和分钟所代表的

义不同。分别为正常走时(0)

FPGA时钟、正弦波和方波实验报告

说明:当fig为1时,数码管显示相应的数, 当fig为0时,数码管显示0(由于硬件

电路中,数码管无法消隐,所以无法让 它变暗)。如此,fig的值通过时钟信号 clk2来控制是0还是1,从而实现了 数码管的闪烁显示。

说明:由于打铃时间有两个(a和b),所以 不管哪个打铃时间到了都要打铃。而蜂鸣器

校准时间(1、2)、打铃时间a(3、4)和打铃时间b(5、

说明:上面的程序,根据状态的不同,让显示模块显示的含义不同。在校准时钟或者在设置打铃时间时,当调整相应的位能闪烁的同时,其他的位照常显示。

FPGA时钟、正弦波和方波实验报告

是交流的,所以要与上一个时钟信号clk5(1024Hz)。 如此,到了打铃时间才会打铃30秒。

三:时序仿真。

新建一个波形文件。

设置仿真截止时间为1毫秒。

FPGA时钟、正弦波和方波实验报告

列出各个管脚。

FPGA时钟、正弦波和方波实验报告

FPGA时钟、正弦波和方波实验报告

将这些管脚拖到波形文件中,并设置相应的输入信号: 以下是设置一个打铃信号a为00:04:00。

FPGA时钟、正弦波和方波实验报告

clk的时间设置如下:

FPGA时钟、正弦波和方波实验报告

输出管脚pt1、pt2、ptml、ptmh、pthl、pthh的输出波形的形式设置为1~9的整数形式如下:

设置完相应的输入输出信号后,点击运行,结果如下:

FPGA时钟、正弦波和方波实验报告

由上面的仿真结果可知,当时钟到达00:04:00时间时,打铃信号产生,并维持了30秒。

下面进行两种打铃信号的时序仿真:

此时,设置了a打铃时间为:00:05:

00.

此时设置了b打铃时间为:00:07:00.。

运行时序仿真结果如下:

此时序图说明:当时钟走到00:05:00时,产生了打铃信号a,并维持了30秒。

FPGA时钟、正弦波和方波实验报告

此时序图说明:当时钟走到了:00:07:00时,产生了打铃信号b,并维持了30秒。

四:下载。

管脚配置。

说明:硬件电路用的是模式7。相应的管脚配置如下:

FPGA时钟、正弦波和方波实验报告

下载: 硬件装载:

FPGA时钟、正弦波和方波实验报告

点击“Start”,将程序下载到硬件中。

FPGA时钟、正弦波和方波实验报告

正弦波发生器实验

——07电子 马路 0736065

一:实验要求。

应用的DDS原理,设计一个正弦波的信号发生器,频率可调。

二:实验电路及程序代码说明。

顶层文件为下图。

在Quartus中新建一个项目,命名为dds。在该工程中新建一个block文件,用于设计顶层文件。

右击界面,进入“symbol”文件中:

FPGA时钟、正弦波和方波实验报告

在“symbol”中找到“LPM_ROM”元件符号,点击OK。

保存ROM数据的文件到工程中,命名为:data_rom。

本文来源:https://www.bwwdw.com/article/ndf1.html

Top