欢乐赛车

欢乐赛车 > 应用 > 模拟技术
[导读]波形发生器为常用器件,对于波形发生器,许多朋友存在学习兴趣。此外,针对波形发生器,小编曾带来诸多欢乐赛车相关的文章。本文对于波形发生器的讲解,基于DDS任意波形发生器。主要内容为,基于Verilog实现DDS任意波形发生器。如果你对本文内容充满兴趣,不妨继续往下阅读。

波形发生器为常用器件,对于波形发生器,许多朋友存在学习兴趣。此外,针对波形发生器,小编曾带来诸多欢乐赛车相关的文章。本文对于波形发生器的讲解,基于DDS任意波形发生器。主要内容为,基于Verilog实现DDS任意波形发生器。如果你对本文内容充满兴趣,不妨继续往下阅读。

DDS是从相位的概念直接合成所需波形的一种频率合成技术。不仅可以产生不同频率的正弦波,而且可以控制波形的初始相位。本文为大家介绍基于Verilog实现的DDS任意波形发生器。

一、总体方案实现及系统框图

在该DDS电路组成上,包括基准时钟、频率累加器、相位累加器、幅度/相位转换电路。频率累加器对输入信号进行累加运算,产生频率控制数据,相位累加器对代表频率的M位二进制码进行累加运算,产生后面波形存储器所需的查表地址,幅度/相位转换电路实际上就是一个波形存储器,供查表使用,读出数据送人D/A转换器和低通滤波器。

系统设计原理框图如下:

000.jpg

系统设计原理框图

二、系统组成模块简介

1、顶层模块

顶层模块是系统程序的主模块,它负责将fom查找表、相位累加等模块组装在一起,通过调用的关系使它们组合成为一个有机的整体。在顶层模块中,定义了参考时钟的输入,复位端口,波形输出、频率控制字等。

2、相位累加器模块

相位累加器是决定系统性能的关键部分,主要是利用频率控制字和相位控制字来累加出寻址地址。相位累加器在基准频率信号clk的控制下以频率控制字data为步长进行累加运算,产生需要的频率控制数据,在时钟的控制下把累加的结果作为波形存储器ROM的地址,实现对波形存储器ROM的寻址。由于相位累加模块通过C语言实现比较容易,故我们没有单独成立一个模块,而是将它集成到了顶层模块的一个always语句块中:

000.jpg

欢乐赛车case(choose_wave) 2‘b00:begin

sin_ena <= 1’b1;

cos_ena <= 1‘b0;

sawtooth_ena <= 1’b0;

triangle_ena <= 1‘b0;

if(ADD_B > 256) ADD_B <= 0; //关键代码,实现相位累加的功能

else ADD_B <= ADD_A + ADD_B;

end

2’b01:begin

cos_ena <= 1‘b1;

sin_ena <= 1’b0;

sawtooth_ena <= 1‘b0;

欢乐赛车triangle_ena <= 1’b0;

if(ADD_B > 256) ADD_B <= 0; //关键代码,实现相位累加的功能

else ADD_B <= ADD_A + ADD_B;

end

2‘b10:begin

欢乐赛车sin_ena <= 1’b0;

cos_ena <= 1‘b0;

sawtooth_ena <= 1’b1;

triangle_ena <= 1‘b0;

if(ADD_B > 256) ADD_B <= 0; //关键代码,实现相位累加的功能

else ADD_B <= ADD_A + ADD_B;

end

2’b11:begin

sin_ena <= 1‘b0;

cos_ena <= 1’b0;

sawtooth_ena <= 1‘b0;

欢乐赛车triangle_ena <= 1’b1;

if(ADD_B > 256) ADD_B <= 0; //关键代码,实现相位累加的功能

else ADD_B <= ADD_A + ADD_B;

end

default:begin

ADD_B <= 9‘b0;

欢乐赛车sin_ena <= 1’b0;

cos_ena <= 1‘b0;

sawtooth_ena <= 1’b0;

triangle_ena <= 1‘b0;

end

endcase

在程序中还出现了一个变量(wave_choose)这是一个用来选择所要输出波形的一个变量,通过它可以控制输出的波形种类(正弦波,余弦波,三角波,锯齿波)。但是由于在设计的时候没有考虑到存在负值的影响,导致最后综合的结果不正确,经过询问老师知道修改方法是将rom查找表中所有采样点的电压负值全部抬高,消除负值,但是由于时间的原因没有来得及修改,也不知道方案修改的结果。

3、查找表

欢乐赛车本模块实现的是一个rom存贮器,用于存储采样的波形数据,并提供地址查找的功能。具体实现的过程:

1) 首先使用数学工具计算得到波形采样点,生成mif文件

2) 导入数据采样点,给每一个采样点分配地址,并提供外部寻址的接口,此过程可以通过Quartas Ⅱ来辅助完成

欢乐赛车由于我们组的设计时在modelsim下进行的,modelsim面向的是仿真,它不会产生所谓的“rom”这种实际的电路,所以我们没有采用这样的方法,而是简单的使用case语句来实现。虽然这样也能得到预期的效果,但是它却没有真正的生成一个“rom”,根据我组的综合结果来看,使用case语句生成的是一个与输入相关的复杂的逻辑网络,而不是rom那样有一定规则的电路结构。一下是我们使用C语言产生采样点的程序:

void main(){ int i,j = 0;;

FILE *fp;

fp=fopen(“data。txt”,“w”);

for(i=0;i<=256;i++){

//j=255*sin(2*3.14159/256*i)+0.5;//四舍五入

fprintf(fp,“i=%d,\tj=%d\n”,i,j); }

fclose(fp); }

以上便是此次小编带来的“波形发生器”的相关内容,通过本文,希望大家对如何基于Verilog进行DDS任意波形发生器设计具备一定的了解。如果你喜欢本文,不妨持续关注我们网站哦,小编将于后期带来更多精彩内容。最后,十分感谢大家的阅读,have a nice day!

换一批

延伸阅读

[模拟技术] 波形发生器实例篇,AD9833波形发生器设计

波形发生器实例篇,AD9833波形发生器设计

波形发生器具备诸多应用,因此波形发生器的存在意义重大。基于不同使用场景,波形发生器具有多种类型,如任意波形发生器、Arduino波形发生器等。本文中,将为大家介绍AD9833型号高精度可编程波形发生器的设计方案,如果你对本文内容存在兴趣,不......

关键字:波形发生器 AD9833 设计方案

[模拟技术] 波形发生器实例篇,DDS任意波形发生器设计下篇

波形发生器实例篇,DDS任意波形发生器设计下篇

波形发生器在生活中不可或缺,在往期文章中,小编曾对各类型波形发生器予以介绍,如任意波形发生器、Arduino波形发生器、pwm波形发生器等。本文对波形发生器的讲解,承接于《波形发生器实例篇,DDS波形发生器设计上篇》一文,将对DDS任意波形......

关键字:波形发生器 DDS 任意波形发生器

[模拟技术] 波形发生器实例篇,DDS任意波形发生器设计上篇

波形发生器实例篇,DDS任意波形发生器设计上篇

波形发生器是当代常用器件之一,想必学习波形发生器或者对波形发生器存在一定兴趣的朋友,对波形发生器或多或少具备一定的了解。本文对波形发生器的讲解基于任意波形发生器,该类型波形发生器是现代电子测试领域应用最为广泛的通用仪器之一,它的功能远比函数......

关键字:波形发生器 DDS 任意波形发生器

[工业控制] 关于波形发生器的相关介绍

关于波形发生器的相关介绍

任意波形发生器是现代电子测试领域应用最为广泛的通用仪器之一,它的功能远比函数发生器强,可以产生各种理想及非理想的波形信号,对存在的各种波雷达、导航、宇航等领域。形都可以模拟,广泛应用于测试、通信、雷达、导航、宇航等领域。 ......

关键字:波形发生器 函数发生器 任意波形发生器

[模拟技术] 波形发生器实例篇,测试具备波形发生器的示波器元器件

波形发生器实例篇,测试具备波形发生器的示波器元器件

波形发生器是许多朋友想要了解的内容,对于波形发生器,小编曾带来诸多相关介绍,如任意波形发生器、Arduino波形发生器等。本文中,将带来波形发生器的测试篇,向大家介绍测试内置波形发生器的示波器的元器件,一起来了解下吧。......

关键字:波形发生器 示波器 测试

[模拟技术] 波形发生器实例篇,带你设计高速任意波形发生器

波形发生器实例篇,带你设计高速任意波形发生器

波形发生器的应用在生活中随处可见,其中使用较多的波形发生器为任意波形发生器。为增进大家对波形发生器的理解,本文特带来高速任意波形发生器的设计实例。如果你对本文内容存在一定兴趣,不妨耐心往下阅读哦。。。。。。。

关键字:波形发生器 高速任意波形发生器 工作原理

[物联网] 欢乐赛车RTI:亚太地区DDS预期需求高涨,前途光明

RTI:亚太地区DDS预期需求高涨,前途光明

本文作者是RTI公司区域经理Kelvin Hor,以下是对新加坡Connext会议回顾:我很高兴分享RTI公司有史以来的第一次亚太地区用户大会——不久前举行的2019年新加坡Connext会议—&mdas......

关键字:RTI DDS 物联网

[模拟技术] 逐步搞定波形发生器,手把手如何实现任意波形发生器

逐步搞定波形发生器,手把手如何实现任意波形发生器

波形发生器是当前讨论热点之一,因此诸多朋友投入波形发生器的学习大军之中。对于波形发生器,分类众多。本文主要讲解任意波形发生器,阐述基于Verilog实现的DDS任意波形发生器。如果你对本文内容存在一定兴趣,不妨继续阅读正文部分哦。......

关键字:波形发生器 任意波形发生器 DDS

[模拟技术] 任意波形发生器=仿真利器,任意波形发生器≠函数信号发生器

任意波形发生器=仿真利器,任意波形发生器≠函数信号发生器

对于波形发生器,很多朋友存在一定误解。有诸多朋友无法分辨任意波形发生器和函数信号发生器,缘由在于大家对任意波形发生器缺乏正确理解。本文将为大家介绍任意波形发生器和函数信号发生器,并阐明任意波形发生器是仿真实验的最佳仪器的原因,一起来了解下吧......

关键字:任意波形发生器 波形发生器 函数信号发生器

[模拟技术] 深度掌握波形发生器,pwm波形发生器原理+应用

深度掌握波形发生器,pwm波形发生器原理+应用

波形发生器在生活中有诸多应用,不过对于波形发生器,大家并非均有所了解。此外,波形发生器种类较多,无法在短时间内全部掌握。本文中,将为大家讲解pwm波形发生器,并着重解释这款波形发生器工作原理。。。。。。。

关键字:pwm波形发生器 波形发生器 原理

[模拟技术] Spectrum多通道任意波形发生器显著降低信号生成成本

Spectrum多通道任意波形发生器显著降低信号生成成本

Spectrum仪器推出首款具有48条同步通道的任意波形发生器(AWG)。。。。。。

关键字:Spectrum 任意波形发生器 信号生成

[新闻速报] 数字化仪与任意波形发生器的混合模式选项现已开启

数字化仪与任意波形发生器的混合模式选项现已开启

——背负式模块新增16条数字线路德国汉斯多尔夫,2019年9月18日讯——德国Spectrum仪器今日宣布旗下最新系列的16位数字化仪与任意波形发生器(AWG)均开启可选模块,该模块为模拟数据......

关键字:数字化仪 任意波形发生器

[模拟技术] 波形发生器全知晓,形形色色的波形发生器

波形发生器全知晓,形形色色的波形发生器

波形发生器在生活中属于常见器件,许多朋友对于波形发生器也甚是熟悉。尽管如此,本文还是要向大家介绍几款不同类型的波形发生器,以帮助大家拓展关于波形发生器的知识。废话少说,往下看吧。......

关键字:波形发生器 时钟波形发生器 CMOS施密特波形发生器

[模拟技术] 搞不明白波形发生器?教你一文看懂任意波形发生器

搞不明白波形发生器?教你一文看懂任意波形发生器

波形发生器种类很多,如Arduino波形发生器、任意波形发生器等。本文中,主要为大家讲解任意波形发生器,并为大家带来详细的DDS任意波形发生器的设计流程。如果你痴迷于波形发生器,不妨继续往下看哦。。。。。。。

关键字:波形发生器 任意波形发生器 DDS

我 要 评 论

网友评论

技术子站

更多

项目外包

推荐博客

重庆彩票 567彩票 彩娃彩票 128彩票 快乐时时彩 彩尊彩票 贵州快3代理 合乐彩票 疯狂斗牛 新华彩票