FPGA实现10M多功能信号发生器

这篇具有很好参考价值的文章主要介绍了FPGA实现10M多功能信号发生器。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

废话

总体方案论证与选择

方案一:采用模拟锁相环实现。模拟锁相环技术是一项比较成熟的技术。应用模拟锁相环,可将基准频率倍频,或分频得到所需的频率,且调节精度可以做到相当高、稳定性也比较好。但模拟锁相环模拟电路复杂,不易调节,成本较高,并且频率调节不便且调节范围小,输出波形的毛刺较多,得不到满意的效果。
方案二:采用直接数字频率合成,用单片机作为核心控制部件。能达到较高的要求,实现各种波形输出,但受限于运算位数和运算速度,产生的波形往往达不到满意效果,并且频率可调范围小,很难得到较高频率,并且单片机的引脚少,存储容量少,这就导致了外围电路复杂。
方案三:采用直接数字频率合成,用FPGA器件作为核心控制部件。精度高稳定性好,得到波形平滑,特别是由于FPGA的高速度,能实现较高频率的波形。控制上更方便,可得到较宽频率范围的波形输出,步进小,外围电路简单易实现。
经过上述分析,核心控制系统采用方案三。

DDS模块方案论证

方案一:采用高性能DDS单片电路的解决方案。
随着微电子技术的飞速发展,目前高超性能优良的DDS产品不断推出,主要有Qualcomm、AD、Sciteg和Stanford等公司单片电路(monolithic)。Qualcomm公司推出了DDS系列Q2220、Q2230、Q2334、Q2240、Q2368,其中Q2368的时钟频率为130MHz,分辨率为0.03Hz,变频时间为0.1μs;美国AD公司也相继推出了他们的DDS系列:AD9850、AD9851、可以实现线性调频的AD9852、两路正交输出的AD9854以及以DDS为核心的QPSK调制器AD9853、数字上变频器AD9856和AD9857。AD公司的DDS系列产品以其较高的性能价格比,目前取得了极为广泛的应用。
方案二:采用低频正弦波DDS单片电路的解决方案
此方案的典型电路有MicroLinear公司的电源管理事业部推出低频正弦波DDS单片电路ML2035以其价格低廉、使用简单得到广泛应用。ML2035特性:(1)输出频率为直流到25kHz,在时钟输入为12.352MHz以外频率分辨率可达到1.5Hz(-0.75~+0.75Hz),输出正弦波信号的峰-峰值为Vcc;(2)高度集成化,无需或仅需极少的外接元件支持,自带3~12MHz晶体振荡电路;(3)兼容的3线SPI串行输入口,带双缓冲,能方便地配合单片机使用;(4)增益误差和总谐波失真很低。ML2035生成的频率较低(0~25kHz),一般应用于一些需产生的频率为工频和音频的场合。如用2片ML2035产生多频互控信号,并与AMS3104(多频接收芯片)或ML2031/2032(音频检波器)配合,制作通信系统中的收发电路等。可编程正弦波发生器芯片ML2035设计巧妙,具有可编程、使用方便、价格低廉等优点,应用范围广泛。很适合需要低成本、高可靠性的低频正弦波信号的场合。
方案三:自行设计的基于CPLD/FPGA芯片的解决方案
DDS技术的实现依赖于高速、高性能的数字器件。可编程逻辑器件以其速度高、规模大、在线可编程,以及有强大EDA软件支持等特性,十分适合实现DDS技术。目前PLD器件(包括CPLD、FPGA)的生产厂商主要有Altera,Xilinx以及Lattoce等。Altera是著名的PLD生产厂商,多年来一直占据着行业领先的地位。Altera的PLD具有高性能、高集成度和高性价比的优点,此外它还提供了功能全面的开发工具和丰富的IP核、宏功能外它还提供了功能全面的开发工具和丰富的IP核、宏功能库等,因此Altera的产品获得了广泛的应用。虽然有的专用DDS芯片的功能也比较多,但控制方式却是固定的,因此不一定是我们所需要的。而利用FPGA则可以根据需要方便地实现各种比较复杂的调频、调相和调幅功能,具有良好的实用性。就合成信号质量而言,专用DDS芯片由于采用特定的集成工艺,内部数字信号抖动很小,可以输出高质量的模拟信号;利用FPGA也能输出较高质量的信号,虽然达不到专用DDS芯片的水平,但信号精度误差在允许范围之内。
基于以上优点我们采用了FPGA芯片来实现我们设计的DDS。
FPGA实现10M多功能信号发生器

总体设计方框图

FPGA实现10M多功能信号发生器

直接数字频率合成技术的基本原理

FPGA实现10M多功能信号发生器

Verilog HDL代码实现与仿真

信号发生器模块

频率控制字和相位累加器

位累加器的位数N=32,Verilog HDL代码如下:

1.module F_word_set(
2. input    clk  ,
3. input    rst_n ,
4. input    key1_in ,
5.
6. output reg [25:0] f_word 
7. );
8. 
9. wire  key_flag ;
10. wire  key_state ;
11. reg [3:0] cnt   ;
12.
13. key_filter fword_key (
14.   .clk       (clk),
15.   .rst_n     (rst_n),
16.   .key_in    (key1_in),
17.   .key_flag  (key_flag),
18.   .key_state (key_state)
19.  );
20.
21. always @(posedge clk or negedge rst_n) begin
22.  if (!rst_n) begin
23.   cnt <= 4'd0;
24.  end
25.  else if (key_flag) begin
26.   if (cnt==4'd10) begin
27.    cnt <= 4'd0;
28.   end
29.   else begin
30.    cnt <= cnt + 1'b1;
31.   end
32.  end
33. end
34.
35. always @(posedge clk or negedge rst_n) begin
36.  if (!rst_n) begin
37.   f_word <= 0;
38.  end
39.  else begin
40.   case(cnt)
41.    4'd0:f_word = 26'd86;  //1Hz
42.    4'd1:f_word = 26'd859;  //10Hz
43.    4'd2:f_word = 26'd8590;  //100Hz
44.    4'd3:f_word = 26'd42950; //500Hz
45.    4'd4:f_word = 26'd85899; //1kHz
46.    4'd5:f_word = 26'd429497; //5kHz
47.    4'd6:f_word = 26'd858993; //10kHz
48.    4'd7:f_word = 26'd4294967; //50kHz
49.    4'd8:f_word = 26'd8589935; //100kHz
50.    4'd9:f_word = 26'd17179869; //200kHz
51.    4'd10:f_word = 26'd42949673;//500kHz
52.    default:;
53.   endcase
54.  end
55. end
56.endmodule

FPGA实现10M多功能信号发生器
FPGA实现10M多功能信号发生器
FPGA实现10M多功能信号发生器
FPGA实现10M多功能信号发生器
FPGA实现10M多功能信号发生器
FPGA实现10M多功能信号发生器
FPGA实现10M多功能信号发生器文章来源地址https://www.toymoban.com/news/detail-407989.html

到了这里,关于FPGA实现10M多功能信号发生器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【基于FPGA的芯片设计】多功能ALU

    目录 一、实验要求 二、源代码 1. 顶层模块 2. 数据输入模块 3. ALU运算模块 4. 结果处理模块 5. 扫描数码管模块 5.1 扫描数码管顶层 5.2 分频器 5.3 数码管显示 三、仿真代码 四、结构层图 五、管脚配置 实验板卡:xc7a100tlc sg324-2L,共20个开关 通过高低位控制,实现32位数据A、

    2024年02月05日
    浏览(50)
  • 基于FPGA的多功能数字时钟设计报告

    作品基于intel Cyclone IV E EP4CE10F17C8 FPGA板卡,主要开发环境为Quartus Ⅱ,编程并实现了多功能温湿度电子钟。本作品在实现显示实时时间的基础上,设计并完成了设置闹钟、改变闹钟铃声、显示实时温度和实时湿度、基于以太网通信协议的实时视频传输等功能。在未设置闹钟时

    2024年02月05日
    浏览(47)
  • 基于FPGA的多功能数字钟的设计

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

    2024年02月07日
    浏览(48)
  • 数字系统设计(FPGA)课程设计: 多功能数字钟

    一、目的: 实现多功能数字钟,具备下列功能: 1、数字钟:能计时,实现小时、分钟、秒的显示; 2、数字跑表:精度至0.01秒 比如显示12.97秒; 3、闹钟: 可以设定闹钟,用试验箱上的蜂鸣器作为闹铃; 4、调时:可以对时间进行设定; 5、日期设定:能设定日期并显示当前

    2023年04月18日
    浏览(44)
  • 基于高云FPGA开发板的多功能数字时钟

    目录 一、数字时钟作品的功能 二、数字时钟作品的主体设计原理和功能说明 三、数字时钟的各设计模块说明及模块程序代码 1) 时钟分频模块time_div、freq_div 2)按键消抖模块key_db 3)控制模块control 4)时间正常计数模块time_count 5)时间设置模块time_set 6)时间动态扫描位选模块time_d

    2024年01月22日
    浏览(61)
  • 0—基于FPGA(ZYNQ-Z2)的多功能小车

       在电子技术与创新的课设中我选择了这个题目,在设计的时候遇到了非常多的问题,但是网上的对应资料又非常少,因此在完成设计之后,我把设计方法与代码在这篇博客中分享出来,希望能对需要的人有所帮助。 目录 1.题目 2. 题目分析: 3. 器件使用 4. 工程文件  5. 传

    2024年02月07日
    浏览(49)
  • EDA实验(Quartus Ⅱ+fpga) (五)---多功能数字钟设计

    本实验代码为初学FPGA所写,逻辑不太清晰,请跳往下面网址查看最新的模块化设计数字钟,更易看懂 模块化多功能数字钟设计 前言: 本文主要介绍了EDA原理与应用这门课程的相关实验及代码。使用的软件是Quartus Ⅱ,该实验使用fpga芯片为cycloneⅤ 5CSEMA5F31C6。 (1)了解数字钟的

    2024年02月06日
    浏览(85)
  • 5—基于FPGA(ZYNQ-Z2)的多功能小车—软件设计—蓝牙串口

    目录 1.蓝牙模块介绍 2.UART介绍 3.Verilog代码: 3.1Uart_RX模块: 3.2 分频模块: 3.3 Uart驱动模块 3.4 Uart控制模块 4. 总览   我使用的是JDY-31蓝牙模块,在连线中,要注意RX-TX,TX-RX。   即FPGA约束的TX对应蓝牙模块的RX,约束的RX对应蓝牙模块的TX。 蓝牙模块使用UART串口通信协议,具体

    2024年02月05日
    浏览(65)
  • FPGA-DE2-115-实验二-模块化多功能数字钟

    前言: 本文主要介绍了集成电路EDA这门课程的相关实验及代码。使用的软件是Quartus Ⅱ,该实验使用fpga芯片为cyclone IV EP4CE115F29C7。 本次实验我们需要实现生活中常见的电子手表的所有功能。 我们知道: 电子手表有五个功能,包括:时间显示功能,夜光模式功能,计时功能,闹钟功能

    2024年02月04日
    浏览(68)
  • FPGA实现的多波形信号发生器,支持正弦、方波、锯齿波、三角波及调制,配备仿真和实物制作功能,使用Verilog HDL编写

    基于FPGA的DDS多波形信号发生器,可以产生正弦波,方波,锯齿波三角波,调制波形2psk.2askAM调制,可以仿真,可以制作实物,可以进行讲解! 使用可以使用Quarter9.0自带仿真软件进行仿真波形。 也可以使用quarter13.1与modesim进行联合仿真进行仿真波形! 使用verilog HDL语言进行编

    2024年04月12日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包