基于FPGA的脉冲信号发生器与数字频率计设计.docx
- 文档编号:29210614
- 上传时间:2023-07-21
- 格式:DOCX
- 页数:8
- 大小:61.33KB
基于FPGA的脉冲信号发生器与数字频率计设计.docx
《基于FPGA的脉冲信号发生器与数字频率计设计.docx》由会员分享,可在线阅读,更多相关《基于FPGA的脉冲信号发生器与数字频率计设计.docx(8页珍藏版)》请在冰豆网上搜索。
基于FPGA的脉冲信号发生器与数字频率计设计
基于FPGA的脉冲信号发生器与数字频率计设计
摘要:
简单介绍了基于FPGA的脉冲信号发生器的设计。
通过对系统进行结构分析,采用层次化的设计方法,给出了脉冲信号发生器与数字频率计的VHDL代码,利用QuartusII对其进行了仿真,并在硬件电路上得以实现其逻辑功能。
关键词:
FPGA;QuartusII;脉冲信号发生器
DesignofpulsegeneratorandcymometerbasedonFPGA
Gaoyuanli、Cenjianfeng、Wanghonggang(Departmentofelectronicandinformationengineering,NCIAE,langfang,hebei)
Abstract:
ThispaperintroducesthedesignofthepulsegeneratorandcymometerbasedonFPGA.Byanalyzingthesystemstructuer,providestheprogramofsignalgeneratorwithVHDLusingthehierarchicaldesignmethodandgivesthesimulationresultsofQuartusII.
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;
endprocess;
end;
占空比调节模块的设计原理:
首先描述一个计数器电路,然后通过计数电路的并行输出信号来控制输出时钟信号的高低电平持续时间,即可完成这种占空比调节功能。
占空比调整模块的VHDL代码:
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_arith.all;
useieee.numeric_std.all;
useieee.std_logic_unsigned.all;
entityduty_adjuseis
generic(m1:
integer:
=3;n1:
integer:
=10);
port(clkin:
instd_logic;
clkout:
outstd_logic);
end;
architectureaofduty_adjuseis
signaltemp:
integerrangen1downto0;
begin
process(clkin,temp)begin
ifrising_edge(clkin)then
iftemp=n1-1then
temp<=0;
elsetemp<=temp+1;
endif;
endif;
endprocess;
clkout<='1'whentemp '0'; end; 此脉冲信号发生器系统亦可以由FPGA内置嵌入式锁相环实现,其频率、相位、占空比均可调。 与上述VHDL模块相比,具有精度高、可靠性好、操作方便、易于控制等优点,具有一定的实用价值。 图2采用ALTERA内置嵌入式锁相环设计脉冲信号发生器模块 2、数字频率计系统组成 数字频率计系统组成如图3所示 图3数字频率计整体结构 该数字频率计测量频率在1MHz以内,显示4位十进制输出结果。 可根据信号频率的大小自动切换量程,量程分3档,最大读数分别为9.999KHz、99.99KHz、999.9KHz。 档被测信号频率大于999.9KHz时,数码管提示溢出(显示读数“F”)。 数字频率计总体结构主要包括分频模块、计数模块、锁存器、动态扫描译码显示模块。 数字频率计总体模块的VHDL代码: libraryieee; useieee.std_logic_1164.all; useieee.std_logic_unsigned.all; entitycounteris port(signal_in,door_in,reset: instd_logic; alarm: outstd_logic; q3,q2,q1,q0: outstd_logic_vector(3downto0); dangwei: outstd_logic_vector(2downto0)); end; architectureaofcounteris signalqout: std_logic_vector(27downto0); begin p1: process(signal_in,door_in) variabletemp: std_logic_vector(27downto0); begin ifreset='1'then temp: ="0000000000"; elsif(rising_edge(signal_in))then if(door_in='1')then iftemp(3downto0)+"0001">"01001"then temp: =temp+"0000000110"+1; else temp: =temp+1; endif; iftemp(7downto4)>"1001"then temp: =temp+"0001100000"; endif; iftemp(11downto8)>"1001"then temp: =temp+"1000000000"; endif; iftemp(15downto12)>"1001"then temp: =temp+"0000000000"; endif; iftemp(19downto16)>"1001"then temp: =temp+"0000000000"; endif; iftemp(23downto20)>"1001"then temp: =temp+"0000000000"; endif; iftemp(27downto24)>"1001"then temp: =temp+"0000000000"; endif; elsetemp: ="0000000000"; endif; endif; qout<=temp; endprocessp1; p2: process(qout,door_in) variablea3,a2,a1,a0: std_logic_vector(3downto0); variableadangwei: std_logic_vector(2downto0); begin if(qout(27downto24)/="0000")then alarm<='1'; a3: ="1111"; a2: ="1111"; a1: ="1111"; a0: ="1010"; adangwei: ="110"; elsif(qout(23downto20)/="0000")then alarm<='0'; a3: =qout(23downto20); a2: =qout(19downto16); a1: =qout(15downto12); a0: =qout(11downto8); adangwei: ="110"; elsif(qout(19downto16)/="0000")then alarm<='0'; a3: =qout(19downto16); a2: =qout(15downto12);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 FPGA 脉冲 信号发生器 数字频率计 设计