基于FPGA的数字频谱分析仪

基于FPGA的数字频谱分析仪
基于FPGA的数字频谱分析仪

目录

1. 设计概述 (1)

2. 设计目标 (2)

3. 设计思想 (3)

4. 系统结构 (4)

4.1系统硬件结构框图 (4)

4.2系统软件结构框图 (5)

5. 系统单元电路的设计 (5)

5.1ADC采样模块设计 (5)

5.1.1 WM7831芯片简介 (5)

5.1.2 WM8731芯片控制 (6)

5.1.3 ADC单元硬件电路 (7)

5.2FFT模块的设计 (9)

5.2.1 FFT算法 (9)

5.2.2 FFT算法的FPGA实现整体结构 (10)

5.3中断的实现 (11)

5.4液晶显示模块的设计 (11)

5.4.1 方案论证 (12)

5.4.2 方案设计过程 (12)

5.5VGA显示模块的设计 (18)

5.5.1 VGA显示原理及时序 (18)

5.5.2 方案论证 (19)

5.5.3 方案设计过程 (20)

5.6音频前置放大器的设计 (22)

5.7音频输出 (22)

6. 系统实验结果分析 (23)

6.1分辨率实验 (23)

6.2频率的测量范围实验 (24)

6.3M ATLAB对正弦波进行频谱分析的仿真结果 (25)

6.4音频信号的相关实验 (26)

6.5系统运算速度测试 (26)

6.6实验结果分析 (26)

6.7系统资源使用情况 (26)

7. 设计特点与不足 (27)

7.1设计特点 (27)

7.2设计不足 (27)

8. 设计过程中出现的问题及解决 (28)

9.总结 (28)

参考文献 (29)

数字频谱分析仪

Digital Spectrum Analyzer

(陕西科技大学王鹏,李明艳,刘波指导教师:马令坤)

摘要:随着科学技术的发展,频谱分析作为近代的信号分析方法在各个学科研究中已经广泛应用,是从事各种电子产品研发、生产、检验的重要依据。高分辨率、宽频带实时的数字频谱分析的方法和实现一直是该领域的研究热点,我们设计了一种基于NIOS II的嵌入式频谱分析仪。充分利用NIOSII强的运算能力和FPGA易于系统集成的特点,实现了硬件开销小、实时性较强和分辨率高的语音频谱分析仪。系统采用硬件控制数据采样,软件进行数据处理,软硬件结合控制双路显示。系统的输入信号频率范围为18Hz~24kHz,在48kHz采样频率下,实现了信号1024点FFT计算,频谱分辨率达到46.875Hz,采用LCD和VGA双路显示。

关键词:频谱分析,NIOS II,FFT,SOPC,FPGA

Abstract:With the development of science and technology, spectrum analysis as a modern method of analyzing signal has been widely applied, and it is an important basis for testing , electronic product development and production. The algorithm and the realization of high-resolution, real-time broadband digital spectrum analysis have been a focus in research, so a NIOS II-based embedded spectrum analyzer is designed. Taking full advantage of the strong computing power of NIOS II and easy system integration features in FPGA, the small hardware spending, real-time strong and high-resolution spectrum analyzer is realized. In the system, hardware controller is used to acquire data sampling, software to process data, and combine hardware and software to control dual-channel display. The range of input signal frequency is 18 Hz ~ 24 kHz. With the 48 kHz sampling frequency, the 1024-point FFT is realized with the spectrum resolution of 46.875 Hz, using LCD and dual VGA display.

Keywords: Spectral analysis,NIOS II,FFT,SOPC,FPGA

1. 设计概述

频谱分析仪是从事电子产品研发、生产、检验的常用工具,它在生产实践与科学研究中获得了日益广泛的应用,被称为工程师的射频万用表。例如,在声纳系统中,为了寻找海洋水面舰艇或潜艇,需要对噪声信号进行频谱分析,以提取有用信息,判断舰艇运动速度、方向、位置、大小等:又如,对飞机、轮船、汽车、汽轮机、电机、机床等主体或部件进行实际运行的频谱分析,可以提供设计数据和检验设计效果,或者寻找振源和诊断故障,以便及时排除潜在故障因素,保证安全运行等。

频谱分析仪主要有两大类,一类是传统的模拟频谱分析仪,其次是现在的数字频谱分析仪。

传统的模拟频谱分析仪的前端电路是一定带宽内可调谐的接收机,输入信号经变频器变频后,通过检波、低通滤波器输出,滤波输出作为垂直分量,频率作为水平分量,在示波器屏幕上绘出坐标图,就是输入信号的频谱图。这类频谱分析仪主要是以硬件电路来实现的传统意义上的频谱分析仪,在实时性上它们有着绝对的优势,但是他们有着自身无法克服的缺点:复杂性、封闭性和昂贵性等。复杂性,硬件化的频谱分析仪都是通过电子电路来实现,信号的运算,尤其是信号的微积分运算,需要大量的烦琐的电路来实现。而且,精度越高,性能越好的仪器对硬件的要求也越苛刻,使得系统的复杂性越来越大,所以这类分析仪的精度差、分辨率低。封闭性,这是硬件化频谱分析仪最致命的缺点。仪器一经制造完成,对用户就是一个封闭的系统,用户只能使用仪器提供的既有的功能,从外观到功能等所有方面,用户只能消极被动地接受。昂贵性,由于仪器的复杂性,硬件化频谱分析仪的价格非常的昂贵。而且,频谱分析仪对制造技术水平的要求很高,现在使用的频谱分析仪很多都依赖进口。一台普通的频谱分析仪,价格都在10 多万美金以上,使得国内科研单位负担不起昂贵的费用。[2~5]

现代的数字频谱分析仪,在实现方式上主要有基于计算机处理准实时频谱分析(或称为软件频谱分

析)、基于通用DSP 处理器(比如TI 或AD 公司器件)的实时频谱分析和基于专用FFT 处理芯片(ASIC )的频谱分析系统。前者由于采用软件处理,故实时性很差(数据先采样、存储后处理),且系统成本很高,不适合于工程实际。对于通用处理器实现的分析系统,虽然在实时性上远远高于前者,尽管乘加运算采用硬件实现(乘加器数量有限),系统采用流水线方式,但数据本身的组织及处理过程(顺序工作方式)使其在高速场合,往往需多片并行应用,同时系统的编程难度较大。对于后者,通过选用不同的器件,可满足高速实时的要求,但成本很高。所以设计一种既能够满足实时性要求又能够降低成本的频谱分析仪刻不容缓。事实上,要得到高的处理速度,FFT 的实现和系统的结构是关键。

随着微电子技术和信号处理技术的发展,电子系统的设计已不再是利用各种通用IC 进行PCB 板级的设计而是转向以大规模FPGA 或ASIC 为物理载体的系统芯片设计(SOPC 或SOC ),同时EDA 工具的迅速发展,使得整个系统从行为算法级(系统级)到物理结构级的全部设计易于在FPGA 上实现。特别是Altera 公司推出的Quartus II 和NIOSII 核等软件为实现基于FPGA 嵌入IP 核的SOPC 系统提供了极大的方便。

由FPGA 构成的DSP 电路可以以并行或顺序方式工作。在并行工作方面,FPGA 与ASIC 相当,远优于通用DSP 处理器,由于FPGA 中可以使用各种状态机,或使用嵌入式微处理器来完成,同时系统在每个时钟周期都可同时完成许多操作,使得即使在顺序执行方面也比通用DSP 处理器快。另外编程方便(可结合MATLAB 和DSPBUILDER )亦是其一大优点。

鉴于以上各点,我们实现了基于SOPC 的数字频谱分析仪的设计,算法采用基2-FFT ,实现了采样信号的处理,NiosII 实现系统和显示的控制,另外从理论上讲,这种实现频谱分析的方法,可以得到比模拟实现更高的频率分辨率。这样它便能够很方便的解决了模拟系统分辨率不高和传统DSP 处理器速度慢缺点,方便实现了信号实时高分辨的频谱分析。

2. 设计目标

在本次设计中我们主要以Altera 公司提供的DE1开发板和Quartus II 软件包,采用SOPC Builder 技术,实现对语音信号的频谱分析。

频谱分析的主要指标包括有分辨率、动态范围、实时性等。

1)采样频率的确定:由于语音信号的频率范围是20Hz-20kHz,根据奈奎斯特采样定理, 采样频率选为48kHz 。

2)仪器的动态范围指的是仪器能够测量的信号频率最低到最高频率的范围。根据语音信号的特点,频谱分析仪的处理范围不小20Hz-20kHz.

3)分辨率是指仪器分辨信号频谱的最小信号频率带宽。根据实际需要,分辨率不小于50Hz 。

设采样频率Fs ,采样点数为N ,那么其极限分辨率为N

fs

f =?,这样理论上就可以任意高的频率分辨率。(下表即使常用分辨率计算表格)

表2-1分辨率参数

根据以上参数的选择,为达到该分辨率,采用1024点FFT 是可以满足需要的,此时实际的分辨率为

48kHz /1024=46.875Hz 。

4)实时性就是指系统测量信号到能够显示频谱图像的最少时间。由于DE1系统本身硬件资源的限制,对于运算量较大的FFT 计算仅能采用软件的方式实现。优化系统结构,尽可能缩短总体的单次的运行时间。

另外,采样数据的精度也是频谱分析的重要指标,前端A/D 转换选为16bits ,对于1V 的参考电压,灵敏度为1/65536V 。

3. 设计思想

谱分析是研究信号或系统在频域的特征的方法。对于平稳随机信号,谱分析的方法有很多类型,总的来说可分为以傅立叶分析为理论基础的经典谱分析法和以参数模型为代表的现代频谱分析法。

现代谱分析的主要方法是参数模型法。参数模型可以分为自回归(AR )模型,滑动平均(MA )模型,自回归滑动平均模型,指数模型等。用参数模型法进行谱估计首先要选择一种适合被测信号的参数模型,其次用适当的方法估计出模型的参数,最后利用所得到的模型参数计算出信号的谱。能否正确选择信号的模型,确定模型的阶数,以及估计模型的参数是决定参数模型法谱估计质量的关键。AR 模型能较好的描述信号谱中的谱峰,表现良好的分辨能力,其中近似极大似然估计方法假定信号是一个平稳随机过程,而实际问题往往比较复杂,并不一定满足这个要求。对于那些功率谱随时间变化的信号,需要用自适应的方法进行AR 谱估计。 MA 模型是有理参数模型中的另一种形式。它是全零点模型,因此能较好的描述信号谱中的谱谷,但频率分辨能力很差,只适用于功率谱中谱谷尖锐,而谱峰平坦的信号。ARMA 模型综合了AR 模型和MA 模型的优点,既有极点又有零点,可以描述既有尖锐谱峰又有尖锐谱谷的信号,因此适应能力强。但是由于计算复杂,又限制了它的应用。

参数模型法能充分利用有限数据的最大信息量,分辨率高,特别适合于短序列的谱分析,但在实际应用中易于产生虚假谱峰。对于非参数模型的现代谱分析方法,一般都存在计算量大的问题。

经典谱分析的代表性方法有相关图法和周期图法,及在此基础上的改进方法。相关图法首先计算信号的自相关序列,然后作傅立叶变换而求出信号的功率谱密度。周期图法直接对信号序列做傅立叶变换,然后取其绝对值的平方,再除以信号序列长度,即可得到信号的功率谱。周期图法的功率谱估计计算式:

1

2

220

1|()||[]|N j fn n X f x n e N π--==∑ (3-1)

同时周期图法具有以下优点:

1)这种方法可直接使用FFT 来计算,具有简单快的优点。

2)分辨率为1/N*fs ,对于可得较长数据的系统,分辨率可以作的很高。 3)理论证明周期图法具有比较好的信号的检测能力。

4)该法能精确的确定出周期信号的频率[2]

。 由于周期图法的这些特点,在此设计中选则了周期图分析法。由以上分析可以看出,周期图法实现

谱分析的关键是FFT 的实现。

要实现系统较高实时性,除了提高FFT 运算的速度外,系统的数据流程实现方式也是非常重要的。我们采用硬件采集数据、软件的方式实现FFT 运算、软硬结合实现频谱显示的系统组合方式,首先将采集的数据存放在一个循环链表里,然后经Nios 处理后,存入双口RAM 里,最后送去显示数据。总体数据流程构思图如下:

图3-1.总体数据流程设计图

为保证ADC输入动态范围的要求和对特定干扰的抑制,信号首先进行预处理。根据采样定理,输入ADC的信号必须小于采样频率的1/2。所以输入信号在进入ADC前要经过抗混叠滤波即前端带通滤波,ADC是完成从模拟到数字的关键环节,它的精度和速度直接决定了频谱分析仪的性能,所以ADC 尽量选用精度和速度都比较高的芯片。为了使经过AD转换得到的信号不至于因为系统处理的暂时延迟或中断而失去连续性,需要将AD转换后的数据送入缓冲区,这部分通过软件编程构造循环链表,不断的接收数据,待其满了再送Nios进行FFT处理。

为了控制及协调整个系统的数据传输以及必要的数据处理并且为每个部分电路提供工作时钟,我们通过使用CycloneⅡ中的硬件PLL提供基时钟,其它各个环节的时钟都采用DE1板上提供的时钟分频得到。

4. 系统结构

4.1 系统硬件结构框图

图4-1.系统硬件结构框图

如图所示,我们的系统的大部分在FPGA上实现,其中信号处理调度部分包括:AD控制单元,循

环链表单元, NIOS II调度单元,FFT运算单元和显示控制单元。利用SOPC Builder 可以很方便的将处理器、存储器和其他外设模块连接起来,形成完整的系统。

4.2 系统软件结构框图

图4-2.系统软件结构框图

5. 系统单元电路的设计

5.1 ADC采样模块设计

ADC采集速率直接限制了频谱分析仪的频率范围,综合现有的资源我们的设计定位在音频范围的实时频谱分析。选择ADC的主要考虑因素的是转换速度和精度。常见的ADC器件有8位,10位,12位,14位,16位等。为获得良好的仪器线性度和高分辨率,对信号进行数据采集的ADC需要12位-16位的分辨率,但高的位数意味着大的数据量。高的转换速度可以获得高采样频率,按采样原理可知,ADC的取样率最少等于输入信号最高频率的两倍,亦即频率上限是10kHz的实时频谱分析仪需要ADC 有20kHz的取样频率。在设计中选用DE1板上音频芯片的集成ADC。

5.1.1 WM7831芯片简介

DE1板上的WM8731芯片是低功耗的立体声Codec芯片,它内建了24bit(multi-bit)sigm a delta(∑-△)模数转换和数模转换,ADC和DAC都使用了过采样数字插值技术,它支持的数字音频的位数可以是16位至32位,采样率从8kHz到96kHz。它能将从传感器接收到的很弱的输入信号直接转换成串行数字信号输出,而无需外部仪表放大器。由于采用Σ-Δ的ADC,可以实现16位无误码的良好性能,片内可编程放大器可设置输入信号增益。通过片内控制寄存器调整内部数字滤波器。原理框图如图5-1所示。

图5-1. sigma-delta ADC原理框图

5.1.2 WM8731芯片控制

1. 数字音频接口(DIGITAL AUDIO INTERFACE)模式选择

WM8731的数字音频接口是数据的输入输出接口,串行数据的传输支持I2S模式, Right justified 模式,Left justified 模式,DSP 模式,这些模式通过控制字选择。我们在这里选择Left justified 模式并且让WM8731工作在从模式下,其时序如下图

图5-2.WM8731工作在从模式下的时序

其中:

BCLK: 数字音频接口时钟信号(bit时钟);

ADCLRC: 数字音频接口ADC方向的帧信号;

ADCDATA:数字音频接口ADC方向的数据输出。

2. WM8731的配置

WM8731的配置接口支持I2C模式,也支持SPI模式,通过CSB位控制。这里我们用I2C模式。I2C时序如图5-3所示

图5-3.WM8731_I2C时序图

WM8731可以用NIOS II系统通过I2C接口来控制,也可以由HDL编写逻辑电路通过硬实时电路来直接配置。用NIOS II来控制仍然需要HDL语言描写的接口,利用查询或中断方式读取外部控制信号,然后通过I2C总线向WM8731写入控制字,而用HDL编写逻辑电路来配置简化了控制过程,避免了软件执行过程中的不稳定,而且实时性好。因此我们这里采用后者。

I2C模块的Verilog HDL描述为(部分)如下:

……

always@(posedge iCLK or negedge iRST_N)

begin

if(!iRST_N)

begin

mI2C_CTRL_CLK <= 0;

mI2C_CLK_DIV <= 0;

end

else

begin

if( mI2C_CLK_DIV < (CLK_Freq/I2C_Freq) )

mI2C_CLK_DIV <= mI2C_CLK_DIV+1;

else

begin

mI2C_CLK_DIV <= 0;

mI2C_CTRL_CLK <= ~mI2C_CTRL_CLK;

end

end

end

……

……

……

I2C_Controller u0 ( .CLOCK(mI2C_CTRL_CLK), // Controller Work Clock

.I2C_SCLK(I2C_SCLK), // I2C CLOCK

.I2C_SDAT(I2C_SDAT), // I2C DATA

.I2C_DA TA(mI2C_DATA), //

DA TA:[SLAVE_ADDR,SUB_ADDR,DATA]

.GO(mI2C_GO), // GO transfor

.END(mI2C_END), // END transfor

.ACK(mI2C_ACK), // ACK

.RESET(iRST_N) );

……

……

……

endmodule

3. 采样频率的控制

WM8731提供了两种模式产生所需要的采样频率:Normal模式和USB模式(通过控制字选择)。在Normal模式下,用户用外界时钟控制采样频率,这种模式控制比较简单,所需要的时钟比较特殊(12.288M、11.2896M、18.432M、16.9344M)。在USB模式下所需要的时钟为12M,时钟较容易实现,但基于DE1上的时钟有24M,27M,50M晶振,这样就比较容易实现时钟的控制与选择,且Normal 模式控制比较简单所以我们选择Normal模式。WM8731的系统时钟由27M晶振然后经系统锁相环得到18.4M的时钟。然后加串转并,得到并行输出数据,输入到niosII系统。

WM8731提供了两种模式产生所需要的时钟:Master和Slave模式(通过控制字实现)。Master模式下的WM8731的时钟都是由WM8731芯片本身自己得到输出的,Slave模式下的时钟则是由外部器件送给WM8731芯片,在此模式下我们可以通过控制WM8731芯片的时钟来控制此芯片,所以为了更好的控制好WM8731芯片我们选用了Slave模式。

5.1.3 ADC单元硬件电路

1. ADC 单元的框图如下图所示

控制字

模块

抗混叠滤波器

控制

I2C 模块

WM8731 配置接口

串转并模块

信号输入

ADC

图5-4. ADC 数据流程

2. 硬件电路如下

127

3456891011121314

15

1617181920

2122

232425262728

MCLK XTO DCVDD DGND DBVDD CLKO BCLK

MBIAS VMID AGND HPGND LOUT ROUT AVDD D A C L R C K D A C D A T A D C D A T A D C L R C K H P V D D L H P O U T R H P O U T

M I C I N

R L I N E I N L L I N E I N M O D E C S B S D I N S C L K AGND AGND

A-VCC33AGND

AGND

15243G N D

L N C R R N C L J1 MICIN

15243

G N D

L N C R R N C L J3 LINEOUT

C3C4C5R7R8R9330

68047K

1000P

1U

10U

AGND

WM8731

信号输入

AGND

图5-5. ADC 单元的硬件电路

3. ADC 模块与Nios 的部分接口电路

图5-6.Nios_ADC 接口

其中由R9、C6、R7、C3构成前置滤波器(抗混叠滤波器),保证输入信号范围约为20HZ—20KHZ(其中τ1=47us,τ2=330us)。

ADC单元AD模块输出Signal Tap II实时测试:

图5-7.ADC模块Slave模式输出Signal Tap II实时测试图

其中输入信号为:LINE输入频率为3kHz的正弦波,幅度1V。

5.2 FFT模块的设计

5.2.1 FFT算法

FFT即为快速傅氏变换,是离散傅氏变换的快速算法,它是根据离散傅氏变换的奇、偶、虚、实等特性,对离散傅立叶变换的算法进行改进获得的。它对傅氏变换的理论并没有新的发现,但是对于在计算机系统或者说数字系统中应用离散傅立叶变换,可以说是进了一大步。FFT算法的基本原理是把长序列的DFT逐次分解为较短序列的DFT。按照抽取方式的不同可分为DIT-FFT(按时间抽取)和DIF-FFT (按频率抽取)算法。按照蝶形运算的构成不同可分为基2、基4、基8以及任意因子(2n,n为大于1的整数),基2、基4算法较为常用。

基2 DIT-FFT(按时间抽取):

-1

/21/21

2(21)

/21/21

/2/2

()()

()()

(2)(21)

(2)(21)

N

kn

N

n

kn kn

N N

n n

N N

k r k r

N N

r n

N N

kr k kr

N N N

r n

X k x n W

x n W x n W

x r W x r W

x r W W x r W

=

==

--

+

==

--

==

=

=+

=++

=++

∑∑

∑∑

∑∑

偶数奇数

00

00

(4-1) 令

/21

1

/2

(2)()

N

kr

N

r

x r W X k

-

=

=

/21

2

/2

(21)()

N

kr

N

r

x r W X k

-

=

+=

,则有:

12

12

()()()

(/2)()()

k

N

k

N

X k X k W X k

X k N X k W X k

=+

+=-

(4-2) 蝶形运算单元如下所示:

1

()

X k

2

()

X

()

X k

(/2)

k N

+

k

N

W

DIT-FFT蝶形单元

DIT(按时间抽取)算法与DIF(按频率抽取)算法没有本质上的区别,只是复数加减法与旋转因子乘法的次序有区别,两种方法的运算量是一样的。

在基2算法中,每个蝶形运算单元都包括1次复数乘法、2次复数加法。N (N= 2M )点序列的

运算流图应有M 级蝶形,每一级都由N/2个蝶形运算组成,所以N 点序列的基2FFT 算法,总的运算

量为2/(2log )N N 次复数乘法,2log N N 次复数加法。直接DFT 运算量为2

N 次复数乘法、(1)

N N 次复数加法。可见,FFT 算法大大减少了运算量,当N 越大时,FFT 算法的优越性越明显。

5.2.2 FFT 算法的FPGA 实现整体结构

1. 方案论证

方案一:将FFT 设计为硬件模块,用硬件进行FFT 的加速。在 FFT 算法的研究中,一直以来以减少浮点运算(乘法和加法)次数为核心。在实际应用中,由于算法及其实现之间存在的相互影响,各算法之间计算复杂性的差别并没有大到足以使算法效率和实现质量之间产生很大差异。实际上,存储器存取次数和硬件中的数据开销与乘法运算同样的重要,在实现 FFT 处理器时,不能只考虑乘法次数,也必须同时考虑加法和数据传递次数。因此,FFT 算法的选择必须考虑到结构的复杂性和实现的难易程度,即考虑是否容易求逆 FFT 、同址运算、算法的规则性、量化噪声和并行性等因素。在硬件实现中,不仅仅是算法运算量,更重要的是算法的复杂性、规整性和模块化。控制简单,实现规整的算法,在硬件系统实现中要优于仅仅是运算量上占优的算法。FFT 算法有四种典型的硬件结构:递归结构、级联结构、并行结构和阵列结构。每种结构都各有千秋。用硬件进行FFT ,还要进行相关单元的设计,例如蝶形单元、复乘单元、求模模块等等。硬件FFT 运算,可以使得系统的速度很快,但对系统资源的占用量是相当大的,成本很高,集成度差。比较适合开发大规模的对实时性要求较高的产品。

方案二:用软件编写FFT ,以软件的形式将FFT 算法植入FPGA 中。采用C 语言实现时域抽取基2-FFT 比较简单,并且系统占用资源很少,但是处理速度较慢。为了提高软件处理的速度,可以有以下几种方法:

1.旋转因子是通过sin 和cos 函数计算得到,速度较慢。所以旋转因子必须在主函数调用fft 函数之前产生并存放在一个数组里,通过指针可以取出数组里的数据。这样每次运算时就不必再进行旋转因子的计算而可以直接查询得到数据进行运算,节省了大量时间。

2.软件中的循环也是比较耗费时间的。在软件设计过程中,尽量减少循环次数,把能放在一次循环中处理的步骤放在一起,删减不必要的循环,也能够加快软件处理的速度。

3.数据类型。如果采用精度很高的数据类型,例如double 型,不仅占用的资源多了,而且处理速度也不是很乐观。而采用int 型数据可能造成较大的误差,并且因为C 语言中int 型的运算没有四舍五入,而是直接舍去小数点后的数字,这样会使运算产生错误。综合看来,选择float 型数据是最佳的。

以上比较可知,硬件实现FFT 模块的方法复杂度相当大,资源的占用量是相当惊人且系统的集成度差一旦系统完成可更改的可能性几乎为零。如果使用硬件实现FFT ,那么就严重的限制了采样点数的增加,可提升的空间很小。相反地,使用软件编写FFT 程序则要简单许多,并且软件占用的资源相对于方案一来说相当的少。虽然软件在处理速度上受到限制,但是由于我们是基于Altera 的FPGA ,采用SOPC Builder 技术,nios II 处理器的速度也是很快,对实时性要求不高的低频语音信号来说采用软件方式就是一种比较好的选择。并且软件编写的FFT 程序有很大的提升空间,能够实现512点、1024点运算,想要同时达到最佳的软件处理速度和最大采样点数不是很困难的事情。综合方案一和方案二的优缺点以及实际的应用,我们选择用软件实现FFT 算法。 2. 算法实现

我们设计的C 语言算法部分程序如下: void fft(complex *x) {

int i=0,j=0,k=0,l=0; complex up,down,product;

for (i=0; i

l=1<

for (j=0 ;j

{

for (k=0 ;k

{

mul(x[j+k+l],W[size_x*k/2/l],&product);

add(x[j+k],product,&up);

sub(x[j+k],product,&down);

x[j+k]=up;

x[j+k+l]=down;

}

}

}

}

5.3 中断的实现

NIOSII 的中断处理方式带有典型的RISC处理器的特征,所有的中断处理都从同一入口进入,然后由软件加以分配。负责分配工作的软件叫系统ISR,它是由开发系统提供的,自动的连接到可执行程序上。系统ISR维护着一个中断向量表,表中的每一项代表一个专项处理程序的入口。所有的专项处理程序都是由用户定义然后注册到中断向量表中的,叫做用户ISR。系统ISR的入口地址是在SOPC_Builder中定义的,叫Exception Address。

和中断有关的CPU寄存器有:ctl0、ctl1、ctl3、ctl4。Ctl0 是程序状态字,它的bit0位是全局中断允许位,1代表允许,0代表禁止。Ctl0是程序状字的堆栈,当发生中断时,由它保留一个程序状态字的备份。Ctl3是中断允许寄存器,其中每一位控制着一个中断源,1代表允许,0代表禁止,共计32位。Ctl4是中断申请寄存器,每一位对应着一个中断源的中断请求,1代表有中断,0代表没有…计32位。

一个完整的中断必不可少的有两项:alt_irq_register()注册宏定义和中断服务程序ISR。

alt_irq_register()是向系统ISR注册用户ISR的API函数。其原形为:

int alt_irq_register( alt_u32 id,

void *context,

void (* isr)(void *, alt_u32))

id 代表被服务的中断向量号;context 是运行参数指针,将来作为第一个参数传给用户ISR;Isr 是一个函数指针,指向用户ISR入口;如果注册成功,函数返回0,并允许全局中断及被服务中断;不成功返回非0值。

定义的用户ISR程序要符合统一的原形定义,即:

void isr(void * context, alt_u32 id)

函数名没有特别的要求,与一般函数一样。入口参数与返回值要严格按标准形式定义,否则系统ISR 将不能正确的对其调用。

在软件设计中,我们利用中断产生一个信号,通知CPU接收采集信号到循环链表中。每当循环链表采集满后,CPU送enable信号到AD控制模块使其停止采样,期间CPU将采集的信号由循环链表复制到数组x1中,再对数组x1进行FFT运算。完毕后送LCD或VGA显示,同时打开enable信号,开始采样。

5.4 液晶显示模块的设计

大家都知道频谱是具有对称性的,所以为节省显示资源我们在进行频谱显示时都是用的显示前半段频谱。那么对1024点的FFT处理,应该显示512点的频谱,但是我们的硬件显示系统的限制一屏只能是显示256点,因此我们设计了一个按键可以切换屏幕,按键向上时显示的是前256点(0~12KHZ)的频谱图,向下时显示的是后面256(12KHZ~24KHZ)的频谱图。

液晶显示在各行业中应用特别广泛,尤其是在低功耗小型电子器件中更为常见,其优越的性能决定了它在显示领域的主要地位,本设计采用320*240单色点阵图形液晶显示模块,驱动器型号为

RA8835AP3N。

5.4.1 方案论证

方案一: 通常将液晶控制接口电路做成模块,直接挂在总线上,利用Avalon总线来调度液晶屏,实现对液晶屏的控制及数据传输。

可以简单的用下图来说明其结构组成。

图5-8.LCD_Avalon总线控制器

这种电路设计较复杂,难度较高,同时对时序要求较严格,占用系统资源较多,尤其是系统的内存资源,适合于大规模液晶屏显示。

方案二:通过自订制的NiosII直接控制液晶模块,利用PIO口模拟液晶接口电路。

如图所示这是一个典型的NiosII系统,它主要端口包括全局输入时钟,复位信号,Onchipmerry,外部设备片选信号,读/写使能信号,数据地址总线等。

图5-9.NiosII_LCD直接控制结构

该方案灵活小巧,适合于小型液晶模块驱动,NIOSII这种用户自定制CPU给设计人员提供了极大的方便,用户可以根据需求,随时增加或删除模块及引脚,用户可以自己订制指令,模拟时序,适合于各种时序的液晶屏,不仅可以与8080时序相匹配,而且可以与6800时序相匹配,体现了其灵活性。按这种方案设计,可节省设计时间,缩短系统开发周期,由于本系统使用的液晶模块分辨率较低,且系统较简单,故本系统采用此方案。

5.4.2 方案设计过程

1. 器件选择

选用320×240液晶显示模块,选用RA8835AP3N作为液晶模块的控制器。该控制器与一般控制器相比有以下优点:

*有较强的I/O缓冲器,数据总线为三态可与PIO口直接相连

*图形文字方式混合显示

*四位数据并行发送

*不需要忙信号,由于液晶屏相对于FPGA来说是低速设备,而无忙标志则大大提高了FPGA的运行速度,节省了系统等待时间。

2. FPGA与LCD的接口电路

FPGA与液晶屏的连接也有两种,一种为把液晶屏当作外部存储器进行读写,另一种是把液晶接口当作普通的外部设备,通过PIO口进行操作,LCD的所有接口都在PIO口中模拟出来。由于本系统设计并不复杂,故采用后者。

图5-10.FPGA与LCD接口电路

WR为写操作信号,低电平有效;RD为读操作信号,低电平有效;RS为I/O口缓冲器选择信号,高电平写指令、读数据,低电平写数据、参数,读状态字。CS片选信号,低有效。RET为复位信号,低有效。本系统设计时在Quartus II中的部分引脚截图:

图5-11.QuartusII中NiosII_LCD的PIO接口

3. RA8835功能选用概述

1) RA8835是SED1335的升级版本,可完全兼容SED1335的软硬件设计,有很强的图文处理能力,本设计中对图形和文字的显示都有要求,因而选用此控制器非常适合,液晶显示分为四层,第一层和第三层可以显示文字,也可以显示图形,第二层和第四层只可显示图形,且属性相同,在内存中的地址与显示页面的关系如下:

图5-12.显示页面与内存关系图

C/R为显示屏一行所占用的字节数,SAD1、SAD3可以为图形也可以为字符,在显示缓存中可以采用页地址加偏移地址的方式方便地寻址到相应的单元。

2)三层显示可以通过标志位来设置显示方式,可以与逻辑、或逻辑、异或逻辑,优先显示等方式来实现多层显示时图形文字的相关信息。

3) RA8835的驱动电压为2.7~5.5V,液晶屏工作电压为负17~负15V高电平为0.7VDD,PIO口输出高电平为3.3V可将VDD调至4V左右刚好匹配。

4) RA8835管理内藏字符发生器CGROM ,在此字符发生器内固化了160 种5* 7 点阵字符的字模。RA8835还能外扩字符发生器,这种外扩字符发生器有用RAM 区开辟的CGRAM 也可用EPROM 固化字库来取代RA8835内部字符发生器。由于RA8835仅能处理8 位字符代码所以一次最多只能显示及建立256 种字符,在RA8835的字符表中给出了内部字符发生器内的全部内容同时也给出了外扩字符发生器的字符代码范围80H-9FH 和E0H-FFH 共64 种。

4. 时序分析

RA8835的80系列MPU时序图如下:

图5-13 RA8835与80系列MPU时序图

根据时序图PIO口模拟时序编成如下:

void Write_Command(alt_u8 Command) //写入命令

{

Delay_L(1);

IOWR_ALTERA_A V ALON_PIO_DIRECTION(LCD_DATA_BASE,0xff);

//数据总线:输出

IOWR_ALTERA_A V ALON_PIO_DATA(LCD_RS_BASE,1);

//选择:命令

IOWR_ALTERA_A V ALON_PIO_DATA(LCD_CS_BASE,0);

//片选有效

IOWR_ALTERA_A V ALON_PIO_DATA(LCD_WR_BASE,0);

//写信号有效

Delay_S(5);

IOWR_ALTERA_A V ALON_PIO_DATA(LCD_DATA_BASE,Command);

//写入命令

Delay_S(5);

IOWR_ALTERA_A V ALON_PIO_DATA(LCD_WR_BASE,1);

//写信号无效

IOWR_ALTERA_A V ALON_PIO_DATA(LCD_CS_BASE,1);

//片选信号无效

}

void Write_Data(alt_u8 Data) //写入数据

{

Delay_L(1);

IOWR_ALTERA_A V ALON_PIO_DIRECTION(LCD_DATA_BASE,0xff);

//数据总线:输出

IOWR_ALTERA_A V ALON_PIO_DATA(LCD_RS_BASE,0);

//选择:数据

IOWR_ALTERA_A V ALON_PIO_DATA(LCD_CS_BASE,0);

//片选有效

IOWR_ALTERA_A V ALON_PIO_DATA(LCD_WR_BASE,0);

//写信号有效

Delay_S(5);

IOWR_ALTERA_A V ALON_PIO_DATA(LCD_DATA_BASE,Data);

//写入命令

Delay_S(5);

IOWR_ALTERA_A V ALON_PIO_DATA(LCD_WR_BASE,1);

//写信号无效

IOWR_ALTERA_A V ALON_PIO_DATA(LCD_CS_BASE,1);

//片选信号无效

}

alt_u8 Read_Data(void) //读出数据

{

Delay_L(1);

IOWR_ALTERA_A V ALON_PIO_DIRECTION(LCD_DATA_BASE,0X00);

//数据总线:输入

IOWR_ALTERA_A V ALON_PIO_DATA(LCD_RS_BASE,1);

//选择:命令

IOWR_ALTERA_A V ALON_PIO_DATA(LCD_CS_BASE,0);

//片选有效

IOWR_ALTERA_A V ALON_PIO_DATA(LCD_WR_BASE,1);

//写信号无效

IOWR_ALTERA_A V ALON_PIO_DA TA(LCD_RD_BASE,0);

Delay_S(10);

alt_u8 i = IORD_ALTERA_A V ALON_PIO_DATA(LCD_DATA_BASE);

Delay_S(10);

IOWR_ALTERA_A V ALON_PIO_DA TA(LCD_RD_BASE,1);

IOWR_ALTERA_A V ALON_PIO_DA TA(LCD_CS_BASE,1);

IOWR_ALTERA_A V ALON_PIO_DIRECTION(LCD_DATA_BASE,0Xff);

return i;

}

5. 软件设计

该液晶模块不需判断忙状态,因而软件编程相对简单。软件设计流程图如下:

图5-14 LCD软件流程图

部分子程序设计如下:

1)初始化子程序:

void init_lcd(void)

{

RST_LCD();

alt_u8 i;

Write_Command(SystemSet); // 系统参数设置

for(i = 0;i < 8;i++)

{

Write_Data( SysTab[i] );

}

Write_Command(Scroll); //设定显示区域起始地址

for(i = 0; i < 10;i++)

{

Write_Data(ScrTab[i]);

}

Write_Command(HdotScr); //写入点位移指令代码

Write_Data(0x00); //写入参数

Write_Command(Ovlay); /显示合成方式设置

Write_Data(0x04); // 0000 0100 显示一区图形,三区文本属性,二重"或"合成Write_Command(DispOn);

Write_Data(0x54); // 显示1~4 区开显示,光标关显示

cls_lcd(); //清屏

}

2)清屏子程序:

void cls_lcd(void)

{

alt_u16 i = 32768;

Write_Command(CsrDirR); // 光标移动方向定义:自动右移

Write_Command(CsrW); // 光标Locate,定位

Write_Data(0x00); //低8位

Write_Data(0x00); //高8位

Write_Command(mWrite); // 数据写入指令

while(i--)

{

Write_Data(0x00); // 写入数据0

}

}

6. 实验验证

下图为液晶显示实验结果:

图5-15.实验结果(3kHz正弦波频谱)

由于采用了简单的PIO控制方式,其LCD屏幕的显示速度相对较慢,为了提高LCD的显示速度,在显示时我们改进了编程方法,使数据变化时只改变部分点或线的显示,提高了显示效率。显示最快时速度不到100微秒/屏。

5.5 VGA显示模块的设计

VGA(Video Graphics Array)是IBM在1987年随PS/2机一起推出的一种视频传输标准,具有分辨率高、显示速率快、颜色丰富等优点,在彩色显示器领域得到了广泛的应用。随着电子技术的发展,VGA接口出现在很多嵌入式平台上,用于图像信息的实时显示等。Altera公司提供的DE1开发板上有一个VGA接口,因此就极大的方便了我们利用VGA实时显示。

5.5.1 VGA显示原理及时序

通用VGA显示卡系统主要由控制电路、显示缓存区和视频 BIOS程序三个部分组成。控制电路主要完成时序发生、显示缓冲区数据操作、主时钟选择和 D/A转换等功能;显示缓冲区提供显示数据缓存空间;视频BIOS作为控制程序固化在显示卡的 ROM中。VGA接口为显示器提供两类信号,一类是数据信号,一类是控制信号。数据信号包括红、绿、蓝信号,简称RGB信号,控制信号包括水平同步信号和垂直同步信号。输出不同分辨率时,水平同步信号和垂直同步信号的频率也不同。

要实现VGA显示就要解决数据来源、数据存储、时序实现等问题,其中关键还是如何实现VGA 时序。VGA的标准参考显示时序如图5-16所示。行时序和帧时序都需要产生同步脉冲(Sync a)、显示后沿(Back porch b)、显示时序段(Display interval c)和显示前沿(Front porch d)四个部分。几种常用模式的时序参数如表5-1所示。

表5-1 几种VGA常用模式的时序参数

图5-16.VGA参考时序

5.5.2 方案论证

方案一:Altera提供的演示教程中有VGA controller的IP核,将VGA controller直接挂载在Avalone 总线上,用DMA控制器来衔接SRAM和VGA控制器。设计图如下:

图5-17.基于DMA的VGA控制

在本设计中,有大量的图像数据从SRAM传输到VGA控制模块的FIFO中,这些数据在传输过程中不需要进行算术逻辑运算。如果通过CPU来操作会占用大量的CPU时间。为了提高CPU的工作效率,采用DMA来完成。DMA模块图如下:

图5-18 DMA模块

这种电路设计比较复杂,尤其是DMA模块,而且由Altera提供的VGA控制器功能强大,我们只用到了其中的一点功能,性价比太低,不适合整个系统的设计。

基于FPGA的数字时钟的设计1

基于FPGA的数字时钟的设计课题: 基于FPGA的数字时钟的设计 学院: 电气信息工程学院 专业: 测量控制与仪器 班级 : 08测控(2)班 姓名 : 潘志东 学号 : 08314239 合作者姓名: 颜志林 2010 年12 月12 日

综述 近年来随着数字技术的迅速发展,各种中、大规模集成电路在数字系统、控制系统、信号处理等方面都得到了广泛的应用。这就迫切要求理工科大学生熟悉与掌握常用中、大规模集成电路功能及其在实际中的应用方法,除通过实验教学培养数字电路的基本实验方法、分析问题与故障检查方法以及双踪示波器等常用仪器使用方法等基本电路的基本实验技能外,还必须培养大学生工程设计与组织实验能力。 本次课程设计的目的在于培养学生对基本电路的应用与掌握,使学生在实验原理的指导下,初步具备基本电路的分析与设计能力,并掌握其应用方法;自行拟定实验步骤,检查与排除故障、分析与处理实验结果及撰写实验报告的能力。综合实验的设计目的就是培养学生初步掌握小型数字系统的设计能力,包括选择设计方案,进行电路设计、安装、调试等环节,运用所学知识进行工程设计、提高实验技能的实践。数字电子钟就是一种计时装置,它具有时、分、秒计时功能与显示时间功能;具有整点报时功能。 本次设计我查阅了大量的文献资料,学到了很多关于数字电路方面的知识,并且更加巩固与掌握了课堂上所学的课本知识,使自己对数字电子技术有了更进一步的认识与了解。

1、课题要求 1、1课程设计的性质与任务 本课程就是电子与信息类专业的专业的专业基础必修课——“数字电路”的配套实验课程。目的在于培养学生的理论联系实际,分析与解决问题的能力。通过本课程设计,使学生在理论设计、计算机仿真、指标调测、故障排除等方面得到进一步的训练,加强学生的实践能力。学生通过设计、仿真、调试、撰写设计报告等过程,培养学生的动手能力与严谨的工作作风。 1、2课程设计的基本技术要求 1)根据课题要求,复习巩固数字电路有关专业基础知识; 2)掌握数字电路的设计方法,特别就是熟悉模块化的设计思想; 3) 掌握QUARTUS-2软件的使用方法; 4) 熟练掌握EDA工具的使用,特别就是原理图输入,波形仿真,能对仿真波形进行分析; 5) 具备EDA技术基础,能够熟练使用VHDL语言进行编程,掌握层次化设计方法; 6) 掌握多功能数字钟的工作原理,学会不同进制计数器及时钟控制电路的设计方法; 7) 能根据设计要求对设计电路进行仿真与测试; 8) 掌握将所设计软件下载到FPGA芯片的下载步骤等等。 9) 将硬件与软件连接起来,调试电路的功能。 1、3课程设计的功能要求 基本功能:能进行正常的时、分、秒计时功能,分别由6个数码管显示24小时,60分钟,60秒钟的计数器显示。 附加功能:1)能利用硬件部分按键实现“校时”“校分”“清零”功能; 2)能利用蜂鸣器做整点报时:当计时到达59’59’’时开始报时, 鸣叫时间1秒钟; 3)定时闹铃:本设计中设置的就是在七点时进行闹钟功能,鸣叫 过程中,能够进行中断闹铃工作。 本人工作:负责软件的编程与波形的仿真分析。 2、方案设计与分析

基于FPGA的数字钟设计

摘要 伴随着集成电路技术的发展, 电子设计自动化(EDA)技术逐渐成为数字电路设计的重要手段。基于FPGA的EDA技术的发展和应用领域的扩大与深入,使得EDA技术在电子信息,通信,自动控制,计算机等领域的重要性日益突出。 本设计给出了一种基于FPGA的多功能数字钟方法,采用EDA作为开发工具,VHDL语言和图形输入为硬件描述语言,QuartusII作为运行程序的平台,编写的程序经过调试运行,波形仿真验证,下载到EDA实验箱的FPGA芯片,实现了设计目标。 系统主芯片采用CycloneII系列EP2C35F672C8。采用自顶向下的设计思想,将系统分为五个模块:分频模块、计时模块、报时模块、显示模块、顶层模块。用VHDL语言实现各个功能模块, 图形输入法生成顶层模块. 最后用QuartusII 软件进行功能仿真, 验证数字钟设计的正确性。 测试结果表明本设计实现了一个多功能的数字钟功能,具有时、分、秒计时显示功能,以24小时循环计时;具有校正小时和分钟的功能;以及清零,整点报时功能。 关键词:EDA技术;FPGA;数字钟;VHDL语言;自顶向下

Abstract Accompanied by the development of integrated circuit technology, electro nic design automation (EDA) technology is becoming an important means of digital circuit design. FPGA EDA technology development and expansion of a pplication fields and in-depth, the importance of EDA technology in the field of electronic information, communication, automatic control, computer, etc. hav e become increasingly prominent. This design gives a FPGA-based multifunctional digital clock using ED A as a development tool, VHDL language and graphical input hardware descri ption language, the QuartusII as a platform for running the program, written procedures debugging and running, the waveform simulation downloaded to th e FPGA chip to achieve the design goals. The main system chip CycloneII series EP2C35F672C8. Adopted a topdw n design ideas, the system is divided into five modules: frequency module, ti ming module, timer module, display module, the top-level module. With VHD L various functional modules, graphical input method to generate the top-level module. Last QuartusII under simulation, to verify the correctness of the digi tal clock design. The test results show that the design of a multifunctional digital clock, with seconds time display, 24-hour cycle timing; has a school, cleared, and th e whole point timekeeping functions. Key words: EDA technology; FPGA; VHDL language; top-down; digital cloc k

基于FPGA的频率计的文献综述

文献综述 一.课题来源及研究的目的和意义 数字频率计已经广泛应用于高科技等产品上面,可以不无夸张的说没有不包含有频率计的电子产品。我国的CD、VCD、DVD和数字音响广播等新技术已开始大量进入市场;而在今天这些行业中都必须用到频率计。到今天频率计已开始并正在向智能、精细方向的发展,因此系统对电路的要求越来越高,传统的集成电路设计技术已经无法满足性能日益提高的系统要求。在信息技术高度发展的今天,电子系统数字化已成为有目共睹的趋势。从传统的应用中小规模芯片构成系统到广泛地应用单片机,直至今天FPGA/CPLD在系统设计中的应用,电子技术已迈入一个全新的阶段。而在电子技术中,频率是最基本的参数之一,而信号的频率往往与测量方案的制定、测量结果都有十分密切的关系,所以测频率方法的研究越来越受到重视。 数字频率计属于时序电路,它主要由具有记忆功能的触发器构成。在计算机及各种数字仪表中,都得到了广泛的应用。在CMOS电路系列产品中,数字频率计是用量最大、品种很多的产品,是计算机、通讯设备、音频视频等科研生产领域不可缺少的测量仪器,并且与许多电参量的测量方案、测量结果都有十分密切的关系,因此,频率的测量就显得更为重要。EDA技术是面向解决电子系统最基本最底层硬件实现问题的技术,通过设计输入编辑、仿真、适配、下载实现整个系统硬件软件的设计过程。通过EDA技术设计者不但可以不必了解硬件结构设计, 而且将使系统大大简化, 提高整体的可靠性,再加上其设计的灵活性使得EDA技术得以快速发展和广泛应用。 二、主要研究内容 1、研究内容 数字频率计用于对方波、正弦波、三角波的测量,并将结果用十进制数字显示,本设计的应达到的技术指标有: 1)频率测量范围:10HZ~100MHZ; 2)测量分辨率:1HZ; 3)测量通道灵敏度:50mVpp; 4)通道输入阻抗:不小于100KΩ; 5)测量误差:±1; 2、测量方案 (1)测频原理选择 目前常用测量频率原理有三种:直接测量频率方法、直接与间接测量相结合

fpga数字钟课程设计报告

f p g a数字钟课程设计报告 Prepared on 24 November 2020

课程设计报告 设计题目:基于FPGA的数字钟设计 班级:电子信息工程1301 姓名:王一丁 指导教师:李世平 设计时间:2016年1月 摘要 EDA(Electronic Design Automation)电子设计自动化,是以大规模可编程器件为设计载体,以硬件描述语言为系统逻辑描述的主要表达方式,通过相关的软件,自动完成软件方式设计得电子系统到硬件系统,最终形成集成电子系统或专用集成芯片。本次课程设计利用Quartus II 为设计软件,VHDL为硬件描述语言,结合所学知识设计一个多功能时钟,具有显示年、月、日、时、分、秒显示,计时,整点报时,设定时间等功能。利用硬件描述语言VHDL 对设计系统的各个子模块进行逻辑描述,采用模块化的思想完成顶层模块的设计,通过软件编译、逻辑化简、逻辑综合优化、逻辑仿真、最终完成本次课程设计的任务。 关键词:EDA VHDL语言数字钟 目录 摘要 1 课程设计目的 2 课程设计内容及要求

设计任务 设计要求 3 VHDL程序设计 方案论证 系统结构框图 设计思路与方法 状态控制模块 时分秒模块 年月日模块 显示模块 扬声器与闹钟模块 RTL整体电路 4 系统仿真与分析 5 课程设计总结,包括.收获、体会和建议 6 参考文献 1 课程设计目的 (1)通过设计数字钟熟练掌握EDA软件(QUARTUS II)的使用方法,熟练进行设计、编译,为以后实际工程问题打下设计基础。 (2)熟悉VHDL 硬件描述语言,提升分析、寻找和排除电子设计中常见故障的能力。 (3)通过课程设计,锻炼书写有理论根据的、实事求是的、文理通顺的课程设计报告。

基于FPGA数字频率计 (可测占空比)

VHDL 课程设计报告——基于FPGA的数字频率计 姓名: 学号: 班级:

目录 1 设计原理 (1) 2功能设计 (1) 3系统总体框图 (1) 4各功能块设计说明 (2) 5实验结果 (14) 6结论分析 (15)

一、设计原理 频计的基本原理是用一个频率稳定度高的频率源作为基准时钟,对比测量其他信号的频率。通常情况下计算每秒内待测信号的脉冲个数,即闸门时间为1 s。闸门时间可以根据需要取值,大于或小于1 s都可以。闸门时间越长,得到的频率值就越准确,但闸门时间越长,则每测一次频率的间隔就越长。闸门时间越短,测得的频率值刷新就越快,但测得的频率精度就受影响。一般取1 s作为闸门时间,此测量方法称为直接测频法。由于闸门时间通常不是待测信号的整数倍,这种方法的计数值也会产生最大为±1个脉冲误差。进一步分析测量准确度:设待测信号脉冲周期为Tx,频率为Fx,当测量时间为T=1s时,测量相对误差为Tx/T=Tx=1/Fx。由此可知直接测频法的测量准确度与信号的频率有关:当待测信号频率较高时,测量准确度也较高,反之测量准确度也较低。 二、功能设计 1、测量范围:1HZ--------99MHZ,测量精度±1HZ。 2、测量结果高4位与低4位进行分页显示。 当超过9999HZ时,系统亮灯提示超出低4位显示范围,可通过按键进行高低4位结果的显示切换。高4位显示时,伴有小数点位的点亮,提示已成功切换到高4位。 3、测量所测信号的占空比。 能够快速测出输入待测信号的占空比,并且通过按键,切换到占空比显示状态。 4、内置自测信号 由内部时钟产生三个特定时钟,以供自身测试功能是否正常。 三、系统总体框图

FPGA实训报告——简易数字钟

桂林电子科技大学职业技术学院 课题:FPGA实训 专业:电子信息工程技术 学号: 姓名:

目录 关键词: (1) 引言: (1) 设计要求: (1) EDA技术介绍: (1) Verilog HDL简介: (1) 方案实现: (2) 工作原理: (2) 总结: (3) 结语: (3) 程序设计: (4)

数字钟 关键词:EDA、Verilog HDL、数字钟 引言: 硬件描述语言HDL(Hardware Des-cription Language)是一种用形式化方法来描述数字电路和系统的语言。目前,电子系统向集成化、大规模和高速等方向发展,以硬件描述语言和逻辑综合为基础的自顶向下的电路设计发放在业界得到迅猛发展,HDL在硬件设计领域的地位将与C和C++在软件设计领域的地位一样,在大规模数字系统的设计中它将逐步取代传统的逻辑状态表和逻辑电路图等硬件描述方法,而成为主要的硬件描述工具。 Verilog HDL是工业和学术界的硬件设计者所使用的两种主要的HDL之一,另外一种是VHDL。现在它们都已经成为IEEE标准。两者各有特点,但Verilog HDL拥有更悠久的历史、更广泛的设计群体,资源也远比VHDL丰富,且非常容易学习掌握。 此次以Verilog HDL语言为手段,设计了多功能数字钟,其代码具有良好的可读性和易理解性。 设计要求: 数字钟模块、动态显示模块、调时模块、到点报时模块等;必须有键防抖动功能。可自行设计8位共阴数码管显示;亦可用FPGA实验平台EDK-3SAISE上的4位数管,但必须有秒指导灯。 EDA技术介绍: 20世纪90年代,国际上电子和计算机技术较先进的国家,一直在积极探索新的电子电路设计方法,并在设计方法、工具等方面进行了彻底的变革,取得了巨大成功。在电子技术设计领域,可编程逻辑器件(如CPLD、FPGA)的应用,已得到广泛的普及,这些器件为数字系统的设计带来了极大的灵活性。这些器件可以通过软件编程而对其硬件结构和工作方式进行重构,从而使得硬件的设计可以如同软件设计那样方便快捷。这一切极大地改变了传统的数字系统设计方法、设计过程和设计观念,促进了EDA技术的迅速发展。 EDA是电子设计自动化(Electronic Design Automation)的缩写,在20世纪90年代初从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言HDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。EDA技术的出现,极大地提高了电路设计的效率和可操作性,减轻了设计者的劳动强度。 这些器件可以通过软件编程而对其硬件结构和工作方式进行重构,从而使得硬件的设计可以如同软件设计那样方便快捷。这一切极大地改变了传统的数字系统设计方法、设计过程和设计观念,促进了EDA技术的迅速发展。 Verilog HDL简介: 硬件描述语言Verilog是Philip R.Moorby于1983年在英格兰阿克顿市的Gateway Design Automation硬件描述语言公司设计出来的,用于从开关级到算法级的多个抽象设

基于FPGA的Verilog HDL数字钟设计 -

基于FPGA的Verilog HDL数字钟设计 专业班级姓名学号 一、实验目的 1.掌握可编程逻辑器件的应用开发技术——设计输入、编译、仿真和器件编程; 2.熟悉一种EDA软件使用; 3.掌握Verilog设计方法; 4.掌握分模块分层次的设计方法; 5.用Verilog完成一个多功能数字钟设计; 6.学会FPGA的仿真。 二、实验要求 ?功能要求: 利用实验板设计实现一个能显示时分秒的多功能电子钟,基本功能: 1)准确计时,以数字形式显示时、分、秒,可通过按键选择当前显示时间范围模式; 2)计时时间范围00:00:00-23:59:59 3)可实现校正时间功能; 4)可通过实现时钟复位功能:00:00:00 扩展功能: 5)定时报:时间自定(不要求改变),闹1分钟(1kHz)---利用板上LED或外接电路实现。 6)仿广播电台正点报时:XX:59:[51,53,55,57(500Hz);59(1kHz)] ---用板上LED或外接 7)报整点时数:XX:00:[00.5-XX.5](1kHz),自动、手动---用板上LED或外接 8)手动输入校时; 9)手动输入定时闹钟; 10)万年历; 11)其他扩展功能; ?设计步骤与要求: 1)计算并说明采用Basys2实验板时钟50MHz实现系统功能的基本原理。 2)在Xilinx ISE13.1 软件中,利用层次化方法,设计实现模一百计数及显示的电路系 统,设计模块间的连接调用关系,编写并输入所设计的源程序文件。 3)对源程序进行编译及仿真分析(注意合理设置,以便能够在验证逻辑的基础上尽快 得出仿真结果)。 4)输入管脚约束文件,对设计项目进行编译与逻辑综合,生成下载所需.bit文件。 5)在Basys2实验板上下载所生成的.bit文件,观察验证所设计的电路功能。

计算机毕业论文_基于FPGA的等精度频率计的设计与实现

目录 前言...............................................................1 第一章 FPGA及Verilog HDL..........................................2 1.1 FPGA简介.....................................................2 1.2 Verilog HDL 概述.............................................2 第二章数字频率计的设计原理........................................3 2.1 设计要求.....................................................3 2.2 频率测量.....................................................3 2.3.系统的硬件框架设计..............................................4 2.4系统设计与方案论证............................................5 第三章数字频率计的设计............................................8 3.1系统设计顶层电路原理图........................................8 3.2频率计的VHDL设计.............................................9 第四章软件的测试...............................................15 4.1测试的环境——MAX+plusII.....................................15 4.2调试和器件编程...............................................15 4.3频率测试.....................................................16

Verilog HDL数字时钟课程设计

课程设计报告 课程设计名称:EDA课程设计课程名称:数字时钟 二级学院:信息工程学院 专业:通信工程 班级:12通信1班 学号:1200304126 姓名:@#$% 成绩: 指导老师:方振汉 年月日

目录 第一部分 EDA技术的仿真 (3) 1奇偶校验器 (3) 1.1奇偶校验器的基本要求 (3) 1.2奇偶校验器的原理 (3) 1.3奇偶校验器的源代码及其仿真波形 (3) 28选1数据选择器 (4) 2.18选1数据选择器的基本要求 (4) 2.28选1数据选择器的原理 (4) 2.38选1数据选择器的源代码及其仿真波形 (5) 34位数值比较器 (6) 3.14位数值比较器的基本要求 (6) 3.24位数值比较器的原理 (6) 3.34位数值比较器的源代码及其仿真波形 (7) 第二部分 EDA技术的综合设计与仿真(数字时钟) (8) 1概述 (8) 2数字时钟的基本要求 (9) 3数字时钟的设计思路 (9) 3.1数字时钟的理论原理 (9) 3.2数字时钟的原理框图 (10) 4模块各功能的设计 (10) 4.1分频模块 (10) 4.2计数模块(分秒/小时) (11) 4.3数码管及显示模块 (13) 5系统仿真设计及波形图........................... 错误!未定义书签。5 5.1芯片引脚图.................................... 错误!未定义书签。5 5.2数字时钟仿真及验证结果 (16) 5.3数字时钟完整主程序 (17) 6课程设计小结 (23) 7心得与体会 (23) 参考文献 (24)

基于FPGA的数字钟设计

南昌大学实验报告 学生姓名:邓儒超学号:6100210045 专业班级:卓越通信101 实验类型:□验证□综合□√设计□创新实验日期:2012.10.28 实验成绩: 实验三数字钟设计 一、实验目的 (1)掌握数字钟的设计 二、实验内容与要求 (1)设计一个数字钟,要求具有调时功能和24/12进制转换功能 (2)进行波形仿真,并分析仿真波形图; (3)下载测试是否正确; 三、设计思路/原理图 本次数字钟的设计采用了自顶向下分模块的设计。底层是实现各功能的模块,各模块由vhdl语言编程实现:顶层采用原理图形式调用。其中底层模块包括秒、分、时三个计数器模块、按键去抖动模块、按键控制模块、时钟分频模块、数码管显示模块,其中,时计数器模块又包括24进制计数模块、12进制计数模块、24/12进制转换模块。设计框图如下: 由图可以清晰的看到数字钟系统设计中各功能模块间连接关系。系统时钟1KHZ经过分频后产生1秒的时钟信号,1秒的时钟信号作为秒计数模块的输入信号,秒计数模块产生的进位信号作为分计数模块的输入信号,分计数模块的进位信号作为时计数模块的输入信号。秒计数模块、分计数模块、时计数模块的计数输出分别送到显示模块。由于设计中要使用按键进行调节时间,而按键的动作过程中存在产生得脉冲的不稳定问题,所以就牵扯到按键去抖动的问题,对此系统中设置了按键去抖动模块,按键去抖动模块产生稳定的脉冲信号送入按键控制模块,按键控制模块根据按键的动作对秒、分、时进行调节。 原理图如下:

四、实验程序(程序来源:参考实验室里的和百度文库的稍加改动,还有自己写的) 1、分频模块 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY fenpin IS PORT(CLK:IN STD_LOGIC; CLK1:OUT STD_LOGIC); END fenpin; ARCHITECTURE behav OF fenpin IS SIGNAL X,CNT:STD_LOGIC_VECTOR(11 DOWNTO 0); BEGIN P1:PROCESS(CLK) BEGIN X<="001111101000";--1000分频 IF CLK'EVENT AND CLK = '1' THEN CNT<=CNT+1; IF CNT=X-1 THEN CLK1<='1';CNT<="000000000000"; ELSE CLK1<='0'; END IF; END IF; END PROCESS; END behav; 2、60进制计数器(秒、分计数器)模块 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY count60 IS PORT(EN,RST,CLK1: IN STD_LOGIC; Q: OUT STD_LOGIC_VECTOR(7 DOWNTO 0); COUT: OUT STD_LOGIC); END count60;

基于FPGA的数字频率计的设计和实现

基于FPGA 的数字频率计的设计和实现 杨守良 (渝西学院物理学与电子信息工程系 重庆 402168) 摘 要:现场可编程门阵列的出现给现代电子设计带来了极大的方便和灵活性,使复杂的数字电子系统设计变为芯片级设计,同时还可以很方便地对设计进行在线修改。本文以设计一个四位显示的十进制数字频率计为例,介绍了在一片F PG A 芯片上实现多位数字频率计的设计方法和实现步骤,并且给出了仿真结果。在设计中,所有频段均采用直接测频法对信号频率进行测量,克服了逼近式换挡速度慢的缺点。所设计的电路通过硬件仿真,下载到目标器件上运行,能够满足实际测量频率的要求。 关键词:数字频率计设计;V HDL ;现场可编程门阵列(FP GA );直接测频法 中图分类号:T P 271+.82 文献标识码:B 文章编号:1004373X (2005)1111803 Construction and Realization of the Digital C ymometer Based on FPGA Y A NG Shouliang (Department of Physics &Elec t roni c Informa tion Eng i neeri ng ,West ern Chongqing Uni v ersit y ,Chongqi ng ,402168,China ) Abstract :T he appear ance of F PG A (Field P ro gr ammable G ate A r ray )leads to t he co nvenience and flex ibility of the mo der n electr o nic construction ,w hich cha ng es the complicated dig ital electr onic sy stem co nstr uctio n into the on chip co nst ructio n .On the o ther hand ,it can a lso make so me o nline modificat ion expediently.W ith a case which describes an quadbit sho wn on t he decimal digital fr equency ,t he author intro duces the co nstr uct ion metho d and the r ealiza tio n steps o n a sing le F PG A chip.T he aut ho r show s an em ulational result.D ur ing the constr uction pro cess,the sig nal f requency of all the F requency Channel is measur ed by the way o f direct measurement ,which o ver comes the shor tcoming of lo w appr ox imate shift speed .W ith the cer tificatio n of t he har dwar e emulatio n system,t he cir cuit constructed can meet the demand of measur ing fr equency in the r eality,which has so me theor etic and pr act ical sig nificatio n. Keywords :desig n of the dig ital cymo meter ;V HDL ;F PGA (Field Pr og ram mable G ate A rr ay );dir ect frequency measur ement 收稿日期:200501 22 可编程逻辑器件和EDA 技术给今天的硬件系统设计者提供了强有力的工具,使得电子系统的设计方法发生了质的变化。传统的“固定功能集成块+连线”的设计方法正逐步地退出历史舞台,而基于芯片的设计方法正在成为现代电子系统设计的主流。在设计方法上,已经从“电路设计—硬件搭试—焊接”的传统方式转到“功能设计—软件模拟—下载”的电子设计自动化模式,从而大大提高了系统设计的灵活性。本文以一个四位的十六进制频率计为例,介绍其设计和实现方法。 1 数字频率计设计实例 数字频率计是计算机、通讯设备、音频视频等科研生产领域不可缺少的测量仪器。采用V DHL 编程设计实现的数字频率计,除被测信号的整形部分、键输入部分和数码显示部分以外,其余全部在一片FPGA 芯片上实现,整个设计过程变得十分透明、快捷和方便,特别是对于各层次电路系统的工作时序的了解和把握显得尤为准确,而且具有灵活的现场可更改性。在不更改硬件电路的基础上, 对系统进行各种改进还可以进一步提高系统的性能和测量频率的范围。该数字频率计具有高速、精确、可靠、抗干扰性强、而且可根据需要进一步提高其测量频率的范围而不需要更改硬件连接图,具有现场可编程等优点。 1.1 数字频率计设计的基本原理 本文以一个四位十进制、测量范围为1Hz ~16kHz 的数字频率计为例,采用SOPC /SOC 实验开发系统,以1 Hz 测频控制信号,说明设计的基本原理及实现方法。设计的数字频率计由测频控制信号发生器模块、锁存器和译码显示模块组成。根据频率的定义和频率测量的基本原理,测定信号的频率必须有一个脉宽为1s 的对输入信号脉冲计数允许的信号;1s 计数结束后,计数值锁入锁存器的锁存信号和为下一测频计数周期做准备的计数器清0信号。这3个信号可以由一个测频控制信号发生器产生,即图1中的T EST CT L ,他的设计要求是,T EST CT L 的计数使能信号CN T _EN 能产生一个1s 脉宽的周期信号,并对频率计的每一计数器CNT 10的EN A 使能端进行同步控制。当CN T _EN 高电平时,允许计数;低电平时停止计数,并保持其所计的脉冲数。在停止计数期间,首先需要一个锁存信号LO AD 的上跳沿将计数器在前1秒钟的计数值锁 118 电子技术杨守良:基于FPGA 的数字频率计的设计和实现

FPGA课程设计多功能数字钟讲解

多功能数字钟 开课学期:2014—2015 学年第二学期课程名称:FPGA课程设计 学院:信息科学与工程学院 专业:集成电路设计与集成系统班级: 学号: 姓名: 任课教师: 2015 年7 月21 日

说明 一、论文书写要求与说明 1.严格按照模板进行书写。自己可以自行修改标题的题目 2.关于字体: a)题目:三号黑体加粗。 b)正文:小四号宋体,行距为1.25倍。 3.严禁抄袭和雷同,一经发现,成绩即判定为不及格!!! 二、设计提交说明 1.设计需要提交“电子稿”和“打印稿”; 2.“打印稿”包括封面、说明(即本页内容)、设计内容三部分;订书机左边装订。 3.“电子稿”上交:文件名为“FPGA课程设计报告-班级-学号-姓名.doc”,所有报告发送给班长,由班长统一打包后统一发送到付小倩老师。 4.“打印稿”由班长收齐后交到:12教305办公室; 5.上交截止日期:2015年7月31日17:00之前。

第一章绪论 (3) 关键词:FPGA,数字钟 (3) 第二章FPGA的相关介绍 (4) 2.1 FPGA概述 (4) 2.2 FPGA特点 (4) 2.3 FPGA设计注意 (5) 第三章Quartus II与Verilog HDL相关介绍 (7) 3.1 Quartus II (7) 3.2 Verilog HDL (7) 第四章设计方案 (8) 4.1数字钟的工作原理 (8) 4.2 按键消抖 (8) 4.3时钟复位 (8) 4.4时钟校时 (8) 4.5数码管显示模块。 (8) 第五章方案实现与验证 (9) 5.1产生秒脉冲 (9) 5.2秒个位进位 (9) 5.3按键消抖 (9) 5.4复位按键设置 (10) 5.5 数码管显示。 (10) 5.6 RTL结构总图 (11) 第六章实验总结 (14) 第七章Verilog HDL源代码附录 (15)

基于FPGA的多功能数字钟的设计

基于FPGA的多功能数字钟的设计 摘要数字钟是采用数字电路实现对时、分、秒数字显示的计时装置,是人们日常生活中不可少的必需品。本文介绍了应用FPGA芯片设计多功能数字钟的一种方案,并讨讨论了有关使用FPGA芯片和VHDL语言实现数字钟设计的技术问题。关键词数字钟、分频器、译码器、计数器、校时电路、报时电路。 Design of Abstract Keywords

目录 0.引言 (4) 1.设计要求说明 (4) 1.1设计要求 (4) 1.2完成情况说明 (4) 2.多功能数字钟的基本原理及其在FPGA中的设计与实现 (4) 2.1计时电路 (5) 2.2异步清零电路 (5) 2.3校时、校分功能电路 (5) 2.4报时电路 (6) 2.5分频电路 (7) 2.6闹钟及音乐闹铃电路 (9) 2.7秒表计时电路 (15) 2.8译码显示电路 (15) 2.9逻辑总图 (16) 3.设计感想 (17) 参考文献 (17)

0.引言 数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度远远超过老式钟表。钟表的数字化给人们生产生活带来了极大的方便而且大大地扩展了钟表原先的报时功能。因此,研究数字钟及扩大其应用,有着非常现实的意义。 1.设计要求说明 1.1设计要求 1)设计一个具有校时、校分、清零,保持和整点报时功能的数字钟。 2)多数字钟采用层次化的方法进行设计,要求设计层次清晰、合理;构成整个设计的功能模块既可采用原理图方法实现,也可采用文本输入法实 现。 3)数字钟的具体设计要求具有如下功能: ①数字钟的最大计时显示23小时59分59秒; ②在数字钟正常工作时可以进行快速校时和校分,即拨动开关K1可对小 时进行校正,拨动开关K2可对分钟进行校正; ③在数字钟正常工作情况下,可以对其进行不断电复位,即拨动开关K3 可以使时、分、秒回零; ④整点报时是要求数字钟在每小时整点来到前进行鸣叫,鸣叫频率是在 59分53秒、55秒、57秒时为500Hz,59分59秒时为1KHz; ⑤哟啊去所有开关具有去抖动功能。 4)对设计电路进行功能仿真。 5)将仿真通过的逻辑电路下载到EDA实验系统,对其进行验证。 1.2完成情况说明: 对于实验要求的基本功能我们设计的电路都能准确实现。另外,我们还附加了显示星期、秒表、闹钟时间来时播放音乐等功能。 2.多功能数字钟的基本原理及其在FPGA中的设计与实现 通过分析多功能数字钟的设计要求和所要实现的功能,应用层次化方法设计出数字钟应由计时模块、分频脉冲模块、译码显示模块、校时校分和清零模块、报时模块等几个模块组成,其原理框图如下图1所示:

基于FPGA的数字频率计的设计

. 成绩课程设计说明书 课程设计名称:EDA技术课程设计 题目:数字频率计电路设计 日期:2011年5月30日

摘要:频率计具有数字频率计是直接用十进制来显示被测信号频率的一种测量装置。本设计用Verilog HDL在CPLD器件上实现数字频率计测频系统,能够用十进制数码显示被测信号的频率,能够测量正弦波、方波、三角波等信号的频率,而且还能对其他多种物理量进行测量。具有体积小、可靠性高、功耗低的特点。数字频率计是计算机、通讯设备、音频视频等科研生产领域不可缺少的测量仪器。基于测频原理及FPGA的设计思想,给出了一种新型数字测频系统的设计方案,系统采用Verilog HDL语言,运用自顶向下的设计思想,采取将系统按功能逐层分割的层次化设计方法。在具体实现上,以FPGA为中央处理器对被测频率信号进行周期采样,通过调用Quartus II的宏功能模块进行占空比计算。 关键词:FPGA芯片、Verilog HDL语言、数字频率计、数字频率计原理图、Quartus II 软件。 Abstract: The frequency meter with digital frequency meter is directly in the decimal to display the measured signal of the frequency of a measuring instrument. This design in CPLD device with Verilog HDL on its digital frequency meter frequency measurement system, to be able to use the decimal digital display measured the frequency of the signal, able to measure the sine wave, square wave, triangle wave and the frequency of the signal, but also to other a variety of physical quantity measurement. The advantages of small size, high reliability, low power consumption characteristics. Digital frequency plan is a computer, communication equipment, audio video in scientific research production field indispensable measuring instrument. Based on frequency measurement principle and FPGA design thought, this paper presents a new digital frequency

fpga数字钟课程设计报告

课程设计报告 设计题目:基于FPGA的数字钟设计 班级:电子信息工程1301 学号:20133638 姓名:王一丁 指导教师:李世平 设计时间:2016年1月

摘要 EDA(Electronic Design Automation)电子设计自动化,是以大规模可编程器件为设计载体,以硬件描述语言为系统逻辑描述的主要表达方式,通过相关的软件,自动完成软件方式设计得电子系统到硬件系统,最终形成集成电子系统或专用集成芯片。本次课程设计利用Quartus II 为设计软件,VHDL为硬件描述语言,结合所学知识设计一个多功能时钟,具有显示年、月、日、时、分、秒显示,计时,整点报时,设定时间等功能。利用硬件描述语言VHDL 对设计系统的各个子模块进行逻辑描述,采用模块化的思想完成顶层模块的设计,通过软件编译、逻辑化简、逻辑综合优化、逻辑仿真、最终完成本次课程设计的任务。 关键词:EDA VHDL语言数字钟

目录 摘要 1 课程设计目的 2 课程设计内容及要求 2.1 设计任务 2.2 设计要求 3 VHDL程序设计 3.1方案论证 3.2 系统结构框图 3.3设计思路与方法 3.3.1 状态控制模块 3.3.2 时分秒模块 3.3.3 年月日模块 3.3.4 显示模块 3.3.5脉冲产生模块 3.3.6 扬声器与闹钟模块 3.4 RTL整体电路 4 系统仿真与分析 5 课程设计总结,包括.收获、体会和建议 6 参考文献

1 课程设计目的 (1)通过设计数字钟熟练掌握EDA软件(QUARTUS II)的使用方法,熟练进行设计、编译,为以后实际工程问题打下设计基础。 (2)熟悉VHDL 硬件描述语言,提升分析、寻找和排除电子设计中常见故障的能力。 (3)通过课程设计,锻炼书写有理论根据的、实事求是的、文理通顺的课程设计报告。 2 课程设计内容及要求 2.1 设计任务 (1)6个数字显示器显示时分秒,setpin按键产生一个脉冲,显示切换为年月日。 (2)第二个脉冲可预置年份,第三个脉冲可以预置月份,依次第四、 五、六、七个脉冲到来时分别可以预置时期、时、分、秒,第八个脉冲到来后预置结束正常从左显示时分秒。 (3)up为高时,upclk有脉冲到达时,预置位加一,否则减一。 2.2 设计要求 (1)在基本功能的基础上,闹钟在整点进行报时,产生一定时长的高电平。 (2)实现闹钟功能,可对闹钟时间进行预置,当达到预置时间时进行报时。

基于FPGA的数字时钟

xxxx大学 电子设计自动化技术与应用 设计报告 设计题目:基于FPGA的数字时钟 学院:通信学院 姓名: 学号:

目录 一、设计任务 (3) 二、总体设计方案 (3) 1、设计思想 (3) 2、总体设计框图 (3) 三、单元电路设计 (4) 1、秒计数器模块设计与实现 (4) 2、分计数器模块设计与实现 (5) 3、时计数器模块设计与实现 (6) 4、2选1选择器模块设计与实现 (7) 5、译码器模块的设计与实现 (8) 6、3-8线译码器模块设计与实现 (9) 7、分频器的设计与实现 (9) 8、顶层原理设计图 (10) 四、硬件测试与结果分析 (11) 1、硬件测试: (11) 2、测试过程及结果分析 (12) 五、收获与体会 (12)

一、设计任务 1、能进行正常的时、分、秒计时功能,由LED数码管显示时间,最大计时 为23:59:59。 2、小时显示采用24进制,分显示和秒显示都采用60进制。 3、具有调时和调分功能。 二、总体设计方案 1、设计思想 本设计是基于Altera公司的Cyclone III 系列的EP3C16Q240C8芯片设计的,采用层次化设计方式,先设计数字时钟的底层器件:秒计数器、分计数器、时计数器、2选1选择器、译码器、分频器。顶层采用原理图设计方式,将所设计的底层器件连接起来构成一个具有计时和调时功能的数字时钟。 2、总体设计框图 完整的数字时钟设计硬件框图如图所示。

三、单元电路设计 1、秒计数器模块设计与实现 1.1秒计数器流程图如下: 1.2秒计数器生成模块如图1所示: 图1 其中,clk 是时钟信号,daout 是60计数输出,enmin 是向分进位的高电平。 1.3 波形仿真图

相关文档
最新文档