电子科技大学现代电子综合实验频率计实验报告

更新时间:2023-10-27 19:04:01 阅读量: 综合文库 文档下载

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

电子科技大学211楼308

数字频率计

用VHDL语言设计实现基于FPGA的数字频

率计

学号 姓名

[2014/04/07-2014/04/30]

摘要

摘 要

本文重点介绍了一种基于FPGA的数字频率的实现方法。该设计采用硬件描述语言VHDL,在软件开发平台ISE上完成。该设计的频率计能准确的测量频率在10Hz到10MHz之间的信号。使用ModelSim仿真软件对VHDL程序做了仿真,并完成了综合布局布线,最终下载到芯片上取得良好测试效果。

关键词:FPGA,VHDL,ISE,频率计

I

目录

目 录

第一章 引言 ............................................................................................................. 1 第二章 基于FPGA的VHDL设计流程 ............................................................... 2 2.1 概述 ................................................................................................................. 2 2.2 VHDL语言介绍 ............................................................................................. 2 2.2.1 VHDL的特点 .......................................................................................... 3 2.3 FPGA开发介绍 ............................................................................................. 4 第三章 数字频率计的软件开发环境 ..................................................................... 5 3.1 开发环境 ......................................................................................................... 5 3.2 MODELSIM介绍 .............................................................................................. 5 3.3 ISE介绍 .......................................................................................................... 6 第四章 数字频率计的设计与实现 ......................................................................... 7 4.1 任务要求 ......................................................................................................... 7 4.2 测量原理 ......................................................................................................... 7 4.2.1 频率或时间的原始基准 .......................................................................... 8 4.2.2 电子计数器测频方法 .............................................................................. 9 4.3 设计方案与系统需求 ................................................................................... 10 4.4 各模块的功能及实现 ................................................................................... 12 4.4.1 分频器 .................................................................................................... 12 4.4.2 闸门选择器 ............................................................................................ 13 4.4.3 测频控制器 ............................................................................................ 14 4.4.4 计数器 .................................................................................................... 15 4.4.5 锁存器 .................................................................................................... 16 4.4.6 扫描显示控制系统 ................................................................................ 17 4.4.6 7段译码显示控制系统 ........................................................................ 18 4.5 分配引脚和下载实现 ................................................................................... 19 4.6 误差分析 ....................................................................................................... 19 4.6.1 ±1误差 .................................................................................................. 20 4.6.2 标准频率误差 ........................................................................................ 21 4.6.3 结论 ........................................................................................................ 21 第五章 实验结论及总结 ....................................................................................... 23 参考文献 ................................................................................................................... 24 致 谢 ....................................................................................................................... 25

目录

附 录 ....................................................................................................................... 26 附录1. 分频器程序 ............................................................................................ 26 附录2. 闸门选择器程序 .................................................................................... 28 附录3. 测频控制器程序 .................................................................................... 29 附录4. 计数器程序 ............................................................................................ 30 附录5. 锁存器程序 ............................................................................................ 31 附录5. 扫描显示控制程序 ................................................................................ 33 附录5. 译码系统程序 ........................................................................................ 34

第一章 引言

第一章 引言

在电子技术领域内,频率是一个最基本的参数,频率与其它许多电参量的测量方案、测量结果都有十分密切的关系。如时间,速度等都涉及到或本身可转化为频率的测量。因此,频率的测量就显得更为重要。而且,目前在电子测量中,频率的测量精确度是最高的.现在市场上有各种多功能,高精度,高频率的数字频率计,但价格不菲。而在实际工程中,不是对所有信号的频率测量都要求达到非常高的精度。因此,本文提出了一种能满足一般测量精度要求,但成本低廉的数字频率计的设计方案。

本文主要任务是针对设计的要求,基于FPGA利用硬件描述语言VHDL完成数字频率计的设计,通过仿真,分析,综合并最终下载到FPGA里面去实现。除被测信号的整形部分、键输入部分以外,其余全部在一片FPGA芯片上实现,整个系统非常精简,而且具有灵活的现场可更改性。在不更改硬件电路的基础上,对系统进行各种改进还可以进一步提高系统的性能。

1

第四章 数字频率计的设计与实现

第四章 数字频率计的设计与实现

4.1 任务要求

本实验核心任务是完成基于FPGA利用VHDL语言设计一个数字频率计的设计,仿真,下载实现并实际测量效果。考虑到是首次接触VHDL描述语言,并且以前没有过基于FPGA设计的经验,所以在完成实验的同时,也不断的加深对VHDL描述语言的掌握,以及不断总结由软件来实现硬件的特点,为以后的工作和更进一步的学习学习打好基础。数字频率计的相关技术指标如下:

1、位数:测量频率通过LED数码管为六位十进制数显示。 2、测试频率范围为:10Hz~10MHz。 3、量程分为三档:

第一档:最小量程档,闸门时间为1S时,最大读数为999.999KHz。 第二档:闸门时间为0.1S时,最大读数为9999.99KHz。 第三档:闸门时间为0.01S时,最大读数为99999.9KHz。

以上三档,实际测得的频率是1Hz~99999.9KHz。显然完全涵盖了10Hz~10MHz的范围。

4、显示工作方式:

a、用BCD七段共阳极数码管显示读数,只有在读数不发生跳变时才是正确的结果。

b、用一个LED做计数器溢出标志。 c、用一个LED闸门的开与闭。

5、要求被测输入信号应是符合数字电路要求的脉冲波或正弦波。

4.2 测量原理

频率计的基本原理是用一个频率稳定度高的频率源作为基准时钟,对比测量其他信号的频率。通常情况下计数每秒内待测信号的脉冲个数,此时我们称闸门时间为1S,闸门时间也可以大于或小于1S。闸门时间越长,得到的频率值就准确,但闸门时间越长则每测一次频率的间隔就越长;闸门时间越短,测得

7

电子科技大学现代电子技术综合实验报告

频率值刷新就越快,但测得的频率精准度就受影响。 4.2.1 频率或时间的原始基准

时间是某一时刻与另一时刻之间的时间长度,这里指的时刻是连续流逝的时间中的一个时点。为了使大家能够确定出同一时刻,就需要使用共同的时刻标尺来衡量,用这个时刻标尺上的标度来客观地认识时刻。要计量时间需要有固定不变的时间单位,用秒作为时间的基本单位。如果一秒内的振动数即频率为已知,则可由此振动数的倒数得到秒的间隔,这就是说单位秒和标准频率数是互相依存的事物。时刻和时间发展的历史,集中反映在秒的定义在不断变迁,秒的准确度不断提高。

采用天文观测方法,求得的太阳出现于天顶的平均周期为平均太阳日。将太阳日分为24×60×60份,得到的秒为零类世界时(记作UT0),其准确度在10?6量级。地球自转受到极运动(极移引起的经度变化)的影响,校正了这个偏差而得到的地球自转的周期,称为第一世界时(记作UT1)。再把地球自转的季度性、年度性的变化(最大可达0.03秒)校正,就引出了第二世界时(记作UT2)。世界时

UT2经过五十年的观测,发现其稳定度为3?10?8。这样,以UT2为标准其计时

准确度很难优于3?10?8。

为了得到更准确的均匀不变的时间标准,人们以1.900回归年的31 556 925 9747分之一作为历书时的秒(记作ET),其准确度可达?1?10?9左右。UT2、ET为宏观计时标准,它需要精密的天文观测,手续烦杂,准确度有限。

近年来引进了微观计时标准,这就是利用原子或分子内部能级跃迁所辐射或吸收的电磁波的频率作为基准来计量时间。采用铯133(Cs133)原子基态的两个超精细能级之间跃迁所对应的9 192 631 770个周期的持续时间为一秒,以此为标准定出的时间标准称为原子时(记作AT),其准确度可达10?13。

目前,国际上已经应用经过原子标准修正过的时间来发送时间标准,用原子时来对天文时(UT2、ET)进行修正。另外,由于频率是时间的倒数,因此,有了时间标准也就有了频率标准。

由于数字电路的飞速发展和数字集成电路的普及,电子计数器的应用已十分普及,利用电子计数器测量频率具有精确度高、使用方便、测量迅速,以及便于实现测量过程自动化等一系列突出优点,故已发展成为近代频率测量的重要手段。

8

第四章 数字频率计的设计与实现

4.2.2 电子计数器测频方法

目前,绝大多数实验室用电子计数器都具有测量频率(测频)和测量周期(测周)等两种以上的测量功能,故统称“通用计数器\各种测量功能可利用《功能选择》开关加以选择。

4.2.2.1 电子计数器的测频原理

所谓“频率”,就是周期性信号在单位时间(一秒)内变化的次数。若在一定时间内计得这个周期信号变化的次数为N,则其频率可表达:

Nf? (4-1)

T电子计数器可以严格按照公式(4-1)所表达的频率的定义进行测频,其原理方框图如图 4-1 示:

图 4-1 测频原理图

首先,把被测信号①(以正弦波为例)通过脉冲形成电路转变成脉冲②(实际上变成方波即可)其重复频率等于被测频率fx,然后将它加到闸门的一个输入端。闸门出门控信号④来控制开、闭时间,只有在闸门开通时间T内,被计数的脉冲⑤才能通过闸门,被送到十进制电子计数器进行计数。门控信号的作用时间T是非常准确的,以它作为时间基准(时基),它由时基发生器提供。时基信号发生一个高稳定的石英振荡器和一系列数字分频器组成,由它输出的标准时间脉冲(时标)去控制门控电路形成门控信号。比如,时标信号的重复周期为1S,则加到闸门的门控信号作用时间T即闸门时间亦准确地等于1s,即闸门开通时间为1s,这时若计得10 000个数,则按式(4-1),被测频率fx=10.000Hz,若计数器上单位显示为“kHz”,则显示10.000kHz,即小数点定位在第三位。不难设想,若闸门时间改为T=0.1s,则计数值为1 000,这个数乘以10就等于1s

9

电子科技大学现代电子技术综合实验报告

的计数值,即fx?1000?10?100000Hz。实际上,当改变闸门时间T时,显示器上的小数点也随着往右移一位(自动定位),即显示10.000kHz。

从以上讨论可知,电子计数器的测频原理实质上以比较法为基础,它将fx和时基信号频率相比,两个频率相比的结果以数字的形式显示出来。

4.3 设计方案与系统需求

由电子计数器频率测量基本原理可知,测频功能实现需要脉冲形成电路、闸门、十进制电子计数器、门控电路、时基信号发生器。

结合实际实验板的硬件条件,可以利用EDA软件和HDL语言在EEC-FPGA实验板上完成频率计的数字部分的设计与实现。实验板原理图如图4-2所示:

图 4-2 实验板原理图

如果以此实验板做为频率计的硬件实现,可以使用48Mhz的有源晶振作为时基信号发生器,但是测量需要的时基信号为1S、0.1S、0。01S,因此需要进行分频,另外计数器的输出结果可以使用数码管显示,需要一个1KHz的扫描信号,也可由晶振分频得到,脉冲形成电路可以使用模拟电路,另外为了使数码管能够稳定显示,在输出之前加一个锁存器,闸门选择可以使用实验板上的开关得到。至此可以确定,可以在EEC-FPGA实验板实现的数字电路部分为分频器、计数器、锁存器、门控电路、闸门选择、数码管扫描显示控制子系统,这些模块之间的关系如图4-3所示:

10

第四章 数字频率计的设计与实现

图 4-3 原理框图

放大整形电路:放大被测信号并将其整形为方波脉冲,该方波脉冲经过闸门后送计数器计数。

石英振荡器:产生一个频率(48MHz)高度稳定的信号送给分频器分频。 分频器:对石英振荡器产生的信号进行分频,得到100Hz、10Hz和1Hz三个基准频率;同时产一个1KHz的信号作为扫描显示译码模块的时钟,以产生扫描选择信号。

门控电路:门控电路在时间基准信号的控制下产生门控信号GATE,门控信号有效时,闸门开通,计数器计数。当门控信号停止作用时,闸门关断。此时,为了使计数结果能够在显示器上稳定的显示,门控电路要产生一个锁存命令Latch使锁存器锁存计数结果。在计数结果锁存以后,下一次计数开始以前,门控电路还要产生一个清零信号CLEAR将计数器清零,以便重新计数。GATE信号、Latch信号以及CLEAR信号三者的关系如图4-4所示:

11

电子科技大学现代电子技术综合实验报告

图 4-4 控制信号波形

4.4 各模块的功能及实现

4.4.1 分频器

分频器的功能是提供标准闸门时间控制信号以精确控制计数器的开闭。由于闸门时间只有1S,0.1S,0.01S三档,且在数码管显示时采用动态扫描的方法,需要产生1kHz的扫描信号,由于本设计将下载到开发板上,其提供的标准时间是48MHz,所以要对系统的48MHz时钟信号进行分频,以产生符合要求的各频率信号:先由系统时钟48MHz分频出1kHz作为数码管显示的动态扫描信号,再由1kHz分频出100Hz产生0.01S的计数闸门信号脉冲,由100Hz分频出10Hz产生0.1S的计数闸门信号脉冲,由10Hz分频出1Hz产生1S的计数闸门信号脉冲。同时给整个系统定义系统复位。由以上分析,可分频器模块如图所示:

图 4-5 分频器模块

12

第四章 数字频率计的设计与实现

仿真图如图4-6所示:

图 4-6 分频器模块仿真图

这个模块即实现了把48MHz的时基信号分成了我们需要的四个信号1Hz,10Hz,100Hz,1KHz。 4.4.2 闸门选择器

该模块的功能是实现对输入的几个闸门信号的手动选择,并输出被选中的闸门信号fhz和闸门开与断的现实信号light以及小数点的控制信号dp。生成的模块如图4-7所示:

图 4-7 闸门选择器

该模块有六个输入端口,其中s(2:0)为选择端,f1hz,f10hz,f100hz为被选时基信号输入端。当s(0)为1,其余无效时,f1hz的输入时基信号被选中,被赋值给输出端口fhz输出,此时dp(3)有效,其余的无效,点亮dp(4)连接的小数点;当s(1)为0,其余无效时,f10hz时基信号被选中,被赋值给输出端口fhz输出,

13

电子科技大学现代电子技术综合实验报告

此时dp(2)有效,其余的无效,点亮dp(2)连接的小数点;最后当s(2)为0,其余无效时,f100hz时基信号被选中,被赋值给输出端口fhz输出,此时dp(1)有效,其余的无效,点亮dp(1)连接的小数。 仿真图如图4-8所示:

图 4-8 闸门选择器仿真图

4.4.3 测频控制器

测频控制器是控制整个频率计各模块进行时序工作的控制装置,它对输入的标准时钟信号进行变换,产生我们所需要的三个信号闸门信号GATE,锁存信号LATCH以及清零信号CLEAR。其生成的模块如下图4-9所示:

图 4-9 测频控制器

测频控制器的计数使能信号Gate能产生一个周期信号,并对频率计的计数器使能端进行同步控制。当Gate为高电平时,允许计数,为低电平时停止计数,并保持其所计得脉冲数。在停止计数期间,首先需要一个锁存信号latch的上升沿将计数器在前一秒的计数值锁存进24位锁存器Latch中,并由外部的7段译码器译出,并稳定显示。锁存信号之后,必须有一清零信号clear对计数器清零,

14

第四章 数字频率计的设计与实现

为下一秒的计数操作准备。

测频控制信号发生器的仿真工作时序如图4-10所示。

图 4-10 测频控制器的仿真图

如果闸门信号Gate的频率取1Hz,那么信号Gate的脉宽恰好为1S,可以用作计数闸门信号。然后根据测频的时序要求,可得出信号latch和Reset的逻辑描述。由图可见,在计数完成后,即计数使能信号Gate在1S的高电平后,利用其反相值产生一个锁存信号latch,由于反相器的器件延时,锁存信号的上升沿是在计数使能信号即闸门信号Gate的下降沿之后,即是计数完了才锁存的,符合我们的设计要求。而清零信号Reset的上升沿的产生是在下一个Gate信号上升沿来临之前,也就是说是清了零才开始计数的,不是计了一会儿数再被清零了继续计数,这也是与我们的设计要求相符合的。高质量的测频控制信号发生器的设计十分重要,设计中要对其进行仔细的实时仿真,防止可能产生的毛刺。 4.4.4 计数器

由于要求频率计的显示为十进制六位,所示我们设计的是使能端的十进制计数器,所生成的模块如图所示:其中rst是清零端,wave是计数信号输入端,,进位输出作为溢出标志用over来表示,用以显示计数器计数是否溢出,溢出了就更换大一级的档位。这样的级联形成了同步计数,是一种计数较快的级联方式,生成的模块如图4-11所示:

15

电子科技大学现代电子技术综合实验报告

图形 4-11 计数器模块

仿真图如下图4-12所示:

图 4-12 计数器的仿真图

由仿真图可以看出,程序的综合出来的这个计数器的确实现我们预定的要求。有清零端和保持端,通过对计数器的级联就可以实现十进制六位数的计数。 4.4.5 锁存器

如果计数器输出直接与译码器相连接,那么在计数过程中输出端则随输入脉冲数的增加而不断跳变,那么显示数码管则也会不断闪烁跳变,让人不能看到稳定的输出,设锁存器后,则不再跳变,便可清晰读出计数结果。由控制模块产生的latch信号来提供锁存脉冲。其生成的功能模块如图4-13所示:

16

第四章 数字频率计的设计与实现

图 4-13 锁存器模块

这模块实现了对六位计数结果和溢出信号over的锁存功能。即锁存信号的上升沿来时送数,其它时候则保持不变。 4.4.6 扫描显示控制系统

本模块通过用一个频率1KHz的信号来扫描一个多路选择器,实现对六位已经锁存的计数结果的扫描输出,由于1KHz相对了人眼的暂留效应已经很高了,所以显示结果不会让人感觉到闪烁。这样就可以用一个译码器来实现对六个4位二进制数的译码。译码结果再连接到一个多路选择器的输入端,同样由1KHz的信号来同步扫描选通。最后的输出全部通过下载前的固定引脚连接到LED显示管上。实现最终结果的数字显示。输入端包括扫描信号1KHz,由前小数点指示信号dp以及锁存器的输出结果。

17

电子科技大学现代电子技术综合实验报告

其生成扫描模块如图4-14所示:

图 4-14 扫描显示控制模块

扫描仿真结果如图4-15所示:

图 4-15 扫描显示控制模块的仿真图

4.4.6 7段译码显示控制系统

六位十进制数的BCD码相继进入bcd_code,经7段译码输出,显示十进制数。 并根据档位信号确定小数点显示的位置以实现档位的显示。模块如图4-16所示:

18

第四章 数字频率计的设计与实现

图 4-16 显示译码控制模块

扫描仿真结果如图4-17所示:

图 4-17 显示模块的仿真图

4.5 分配引脚和下载实现

全部仿真通过后,就运行ISE的设计实现,然后分配引脚,即实现设计的输入输出端口与实际芯片的输入输出端口的对应连接。比如七段LED管的控制信号就连接到实际电路的七个引脚。需要注意的是一些端口是固定的,不能胡乱的连接。比如时基信号即石英振荡器所提供的信号就只能由T8输入。外部信号输入只能由外部信号源接口输入,同时还要考虑内部的可配制逻辑块CLB的数量是否够满足程序的综合要求。一切都准备就绪后就可以运行Configure Device,选择要下载的位文件(.bit)便可开始下载了。

4.6 误差分析

下面我们来分析计数器测频的测量误差。从公式(4-1)可知,上述测频方法

19

电子科技大学现代电子技术综合实验报告

的测量误差,一方面决定于闸门时间T准不准,另一方面决定于计数器计得的数准不准。根据误差合成方法,从公式(4-1)可得:

?fx?N?T?? (4-2) fxNT公式(4-2)中第一项

?N是数字化仪器所特有的误差,而第二项?T是闸门时NT间的相对误差,这项误差决定于石英振荡器所提供的标准频率的准确度。现分述如下。 4.6.1 ±1误差

在测频时,主门的开启时刻与计数脉冲之间的时间关系是不相关的,所以它们在时间轴上的相对位置是随机的。这样,在相同的主门开启时间内,计数器所计得的数却不一定相同,当主门开启时间T接近甚至等于被测信号周期Tx的整数倍N倍时,此项误差为最大,图 4-2 画出的就是这种情况。

图 4-2 正负1误差

若主门开启时刻为T0,而第1个计数脉冲出现在Tx,图 4-2 (a)中示出了

Tx>T0>0的情况(?T?Tx?T0),这时计数器计得N个数(图中N=6);现在再来

看图 4-2 (b)情况,即?T趋近于0,这就有两种可能的计数结果:若第1个计数脉冲和第7个计数脉冲都能通过主门,则可计得N+1=7个数;也可能这两个脉冲都没有能进入主门,则只能计得N-1=5个数。由此可知,最大的计数误差为

?N??1个数。所以考虑到公式(4-1),可写成

?N?11??? (4-3) NNTfx20

第四章 数字频率计的设计与实现

式中T为闸门时间,fx为被测频率。从公式(4-3)可知,不管计数值N多少,其最大误差总是±1个计数单位,故称“±1个字误差”,简称“±1误差”。而且fx一定时,增大闸门时间T,可减小±1误差对测频误差的影响。当T选定后,fx越低,则由±1误差产生的测频误差越大。 4.6.2 标准频率误差

闸门时间T准不准,主要决定于由石英振荡器提供的标准频率的准确度,若石英振荡器的频率为fc,分频系数为k,则

T?kTc?而

k fc?T??所以

k?fc fc2?T?f??c (4-4) Tfc可见,闸门时间的准确度在数值上等于标准频率的准确度,式中负号表示由?fc引起的闸门时间的误差为??T。

通常,对标准频率准确度

?fc的要求是根据所要求的测频准确度提出来的,fc例如,当测量方案的最小计数单位为1Hz,而fx=106Hz,在T=1s时的测量准确度为?1?10?6(只考虑?1误差),为了使标准频率误差不对测量结果表明产生影响,石英振荡器的输出频率准确度频误差小一个量级。 4.6.3 结论

综上所述,可得如下结论:

1、计数器直接测频的误差主要有两项:即?1误差和标准频率误差。一般,总误差可采用分项误差绝对值合成,即

21

?fc应优于1?10?7,即比?1误差引起的测fc

电子科技大学现代电子技术综合实验报告

?fx1?f??(?c) (4-5) fxTfxfc可把公式(4-5)画成图 4-3 所示的曲线,即?fxfx与T,fx以及?fcfc的关系曲线。

图 4-3 误差曲线

从图可知,fx一定时,闸门时间T选得越长,测量准确度就越高。而当T选定后,fx越高,则由于?1误差对测量结果的影响越小,测量准确度就越高。但是,随着?1误差的减小,标准频率误差?fcfc将对测量结果产生影响,并以

?fcfc(图中以5?10?9为例)为极限,即测量准确度不可能优于5?10?9。

2、测量低频时,由于?1误差产生的测频误差大得惊人,例如,fx为10Hz,T=1s,则由?1误差引起的测频误差可达到10%,所以,测量低频时不宜采用直接测频方法。

22

第五章 结论

第五章 实验结论及总结

本文主要介绍了利用VHDL语言完成基于FPGA的数字频率计的设计与实现。详细介绍了测量原理,设计方案以及各模块的设计过程及其实现的功能,并对设计中遇到的问题作了分析和处理;利用ISE和ModelSim对设计进行了仿真,分析,综合,并最终下载到FPGA芯片中,实现了对频率的测量。

(1).通过ISE综合,ModelSim仿真,最终在XILINX学生EDA实验板上实现了10Hz—10MHz频率计数器的设计,其误差在0.01%数量级,能够较为精确的测量频率。

(2).当频率计值达到该档量程最大测量值时,这时输入频率值再继续增加,则会产生溢出,并且LED8会变亮表示计数器已经溢出。

(3).在测量频率过程中我们应当选择适当的档位,使得测量结果更加精确,特别是溢出信号LED亮的时候,一定要选择更高档位来进行测量。

通过频率计的设计试验,对频率计有了更深的认识,尤其是对频率计的工作原理以及各功能模块的实现有深入了解。此外,还熟悉了Xilinx ISE 10.1i软件的用法和VHDL/Verilog的编程环境,通过本次的设计培养自己的实验动手能力。这是第一次利用HDL语言来实现基于FPGA的实际工程项目,所以在实验过程中不可避免的遇到了很多问题以及设计中一些不足的地方。理论和实践没有有机的联系起来,理论没有起到应有的指导作用。

23

电子科技大学现代电子技术综合实验报告

参考文献

[1]. 蒋焕文,孙续. 电子测量(第二版). 中国计量出版社 (中).

[2]. Volnei A. Pedroni. VHDL数字电路设计教程. 电子工业出版社 (巴西). [3]. 姜立东. VHDL语言程序设计及应用 (第二版). 北京邮电出版社 (中). [4]. 汤山俊夫. 数字电路设计与制作. 科学出版社 (日). [5]. 廖超平. EDA技术. 北京理工大学出版社 (中).

[6]. 孙航. Xilinx可编程逻辑器件的高级应用与设计技巧. 电子工业出版社 (中).

24

致谢

致 谢

在此,我首先向不辞辛劳,诲人不倦的老师——刘曦工程师和皇晓辉工程师,表示最衷心的感谢。本实验从最初的选题到任务的制定,系统的设计和开发过程中都得到了刘老师和的悉心指导与指正。正是老师们的谆谆教导和热心关怀使我较快的熟悉了用硬件语言来实现项目的过程,并最终顺利完成实验。同时,老师们严谨的治学态度以及对工作的一丝不苟,也使我受益匪浅,终生难忘。

特别感谢固电专业的同学们在实验期间给予我的巨大帮助与支持。同学们都乐于助人。在此,谨向他们致以深深的敬意和诚挚的感谢!

最后,感谢电子工程学院和微电子与固体工程学院给予我这个锻炼自我提升自我的实验平台。

25

电子科技大学现代电子技术综合实验报告

附 录

附录1. 分频器程序

library IEEE;

use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL;

---- Uncomment the following library declaration if instantiating ---- any Xilinx primitives in this code. --library UNISIM;

--use UNISIM.VComponents.all;

entity divf is

Port ( rst : in STD_LOGIC; clk : in STD_LOGIC; f1 : out STD_LOGIC; f10 : out STD_LOGIC; f100 : out STD_LOGIC; f1000 : out STD_LOGIC); end divf;

architecture Behavioral of divf is

signal f1_cnt:integer range 0 to 48000000:=1; signal f10_cnt:integer range 0 to 48000000:=1; signal f100_cnt:integer range 0 to 48000000:=1; signal f1000_cnt:integer range 0 to 48000000:=1; signal f1m:STD_LOGIC; signal f10m:STD_LOGIC; signal f100m:STD_LOGIC; signal f1000m:STD_LOGIC;

begin

pf1:process(rst,clk,f1_cnt) begin

if rst='0' then f1_cnt<=1;

26

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

Top