基于FPGA的脉冲信号发生器与数字频率计设计 .pdfVIP

基于FPGA的脉冲信号发生器与数字频率计设计 .pdf

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

基于FPGA的脉冲信号发生器与数字频率计设计

摘要:简单介绍了基于FPGA的脉冲信号发生器的设计。通过对系统进行结构

分析,采用层次化的设计方法,给出了脉冲信号发生器与数字频率计的VHDL代

码,利用QuartusII对其进行了仿真,并在硬件电路上得以实现其逻辑功能。

关键词:FPGA;QuartusII;脉冲信号发生器

DesignofpulsegeneratorandcymometerbasedonFPGA

Gaoyuanli、Cenjianfeng、Wanghonggang(Departmentofelectronicand

informationengineering,NCIAE,langfang,hebei)

Abstract:Thispaperintroducesthedesignofthepulsegenerator

andcymometerbasedonFPGA.Byanalyzingthesystemstructuer,provides

theprogramofsignalgeneratorwithVHDLusingthehierarchicaldesign

methodandgivesthesimulationresultsofQuartusII.

Keywords:FPGA;QuartusII;pulsegenerator

引言:

信号发生器是一种常用的信号源,广泛应用于通信、雷达、测控、电子对抗

以及现代化仪器仪表等领域,是一种为电子测量工作提供符合严格技术要求的电信

号设备。它与示波器、万用表、频谱分析仪等仪器一样是最普通、最基本也是应用

最广泛的电子仪器之一,几乎所有电参量的测量都要用到信号发生器。

随着EDA技术的高速发展,电子系统设计技术和工具发生了深刻的变化,大

规模可编程逻辑器件FPGA的出现,给设计人员带来了诸多的方便。VHDL(即超高

速集成电路硬件描述语言)是随着可编程逻辑器件(PLD)发展起来的一种硬件描

述语言,主要用于描述数字系统的结构、行为、功能和接口,是电子设计自动化

(EDA)的关键技术之一。它采用一种自上而下的设计方法,即从系统总体要求出

发进行设计。本文介绍了以ALTERA公司的FPGA芯片EP2C5Q208C8N作为主芯片控

制核心,设计一个简单的脉冲信号发生器,其脉冲频率、相位、占空比等均可调,

并将频率值通过7段数码管进行输出。本课题采用VHDL语言设计脉冲信号发生器

以及数字频率计。

1、脉冲信号发生器系统组成

信号发生器系统组成如图1所示,由一分频模块与占空比调节模块共同组

成。

图1脉冲信号发生器系统组成

在时钟的整数分频中,时钟的二进制分频最简单。对于二进制分频,可以用

一个二进制加法计数器十分方便的完成

设计原理:将输入的时钟作为计数器的计数脉冲,计数结果的第N位是2的

N次幂分频。将对应的为数取出就能得到所需的频率。

二进制分频器的VHDL代码:

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_arith.all;

useieee.std_logic_unsigned.all;

entityclk_div_vhdlis

generic(N:integer:=10);

port(clk:instd_logic;

clk_div:outstd_logic);

end;

architectureaofclk_div_vhdlis

signalcount:integerrangeN-1downto0;

begin

process(clk)begin

ifrising_edge(clk)then

if(count=N-1)then

count=0;

elsecount=count+1;

endif;

endif;

endprocess;

process(count)begin

ifcount(integer(N/2))then

clk_div=0;

elseclk_div=1;

endif;

文档评论(0)

188****5560 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档