基于verilog hdl语言的多功能波形发生器设计
基于FPGA多功能波形发生器的设计毕业设计论文 推荐
江西师范大学科学技术学院J I A N G X I N O R M A L U N I V E R S I T YS C I E N C E A N D T E C H N O L O G Y C O L L E G E本科生毕业设计(论文)中文题目:基于FPGA多功能波形发生器的设计Design Of FPGA-based Digital Signal Generator声明本人郑重声明:所呈交的学位论文,是本人在指导教师指导下,独立进行研究工作所取得的成果。
尽我所知,另文中已经注明引用的内容外,论文由本人独立完成。
为本文的研究做出了重要贡献的个人和集体,均已在文中以明确的方式标明。
本声明的法律结果由本人承担。
本毕业设计是本人在江西师范大学科学技术学院读书期间在指导教师的细心指导下完成的,在此感谢为本文研究提供文献的集体及个人。
声明人学号:1008068027 声明人签名:朱忠浩签名日期:2014 年 3 月2 日基于FPGA多功能波形发生器的设计摘要本文所设计内容就是以FPGA为平台用VHDL语言设计多种波形系统来实现数字信号发生器的设计,FPGA严密性高,功能消耗较低,所占空间小,更可靠等特点,设计的时候可不必过于考虑硬件连接;本设计中采用VHDL语言进行系统描述,使数字信号发生器能产生正弦波、三角波、方波、等独立波形,而且对所产生的各种波形的频率及幅度的调节更为方便,还可用AD与低通实现数字电路到模拟电路的的转换。
关键词:多种波形发生器;FPGA;VHDL; QuartusⅡAbstractDigital signal transmitter as a test facility is an important part of information processing system. In the production of a wide range of application of life. This content is designed by Altera, based on FPGA design of digital signal generator, FPGA has a high density, low power consumption, small size, high reliability, cannot have too much to consider wher designing specific hardware connection; the design of the application of VHDL hardware description language to describe, so that the digital signal generator can produce sine, square, triangle, sawtooth waveforms of three independent,and is able to produce four waveforms by the frequency and amplitude adjustment. AD and low pass filter realize the change between digital electricity and simulative electricity.Key words:Digital Waveform Generator; FPGA;VHDL; QuartusⅡ目录声明 ........................................................................................................................................ 错误!未定义书签。
FPGA 用Verilog HDL实现三角波,三相方波程序
FPGA——用Verilog HDL进行三角波和三相方波的编写三角波module triangle(inputsys_clk,output [2:0]sda);reg[3:0]a=0;regai=0;always@(posedgesys_clk)beginif(ai==0)begina=a+1;if(a==7)ai<=1;endelsebegina=a-1;if(a==0)ai<=0;endendassignsda[0]=a[0];assignsda[1]=a[1];assignsda[2]=a[2];endmodule三相方波第一种方法:modulepwmabc(inputsys_clk,output [2:0]abc);regtriga=0;regtrigb=1;regtrigc=0;reg[15:0] cnt1=0;reg[15:0] cnt2=20;reg[15:0] cnt3=40;always@(negedgesys_clk)beginif(cnt1>59)begintriga=~triga;cnt1<=1;endelsecnt1<=cnt1+1;if(cnt2>59)begintrigb=~trigb;cnt2<=1;endelsecnt2<=cnt2+1;if(cnt3>59)begintrigc=~trigc;cnt3<=1;endelsecnt3<=cnt3+1;endassignabc[0]=triga;assignabc[1]=trigb;assignabc[2]=trigc;endmodule第二种方法module fangbo0(inputsys_clk,output [2:0]sda);reg [31:0]halftemple_counter0=0;reg [31:0]halftemple_counter1=0;reg [31:0]halftemple_counter2=0;reg [1:0]temple_clk0=1;//第一相的初始值是高电平(初始的高低电平是根据我给你看的相位图来的)reg [1:0]temple_clk1=1;//第二相的初始值是高电平reg [1:0]temple_clk2=0;//第三相的初始值是底电平//我在设计三相方波的时候用的比较笨的方法,就是三相方波一项一项的来设置。
VHDL多路波形发生器实验报告
VHDL多路波形发生器实验报告一、基本要求:1、对输入时钟信号进行分频,实现三路互差120°的信号。
2、实现输出信号的占空比控制clk: 输入时钟信号reset: 同步复位信号(低电平有效)div: 输入分频控制信号(注意:6n分频)ctrl: 占空比控制信号ctrl=1时, 占空比为1:1ctrl=2时, 占空比为1:2ctrl=3时, 占空比为2:1A,B,C: 三路输出信号二、设计思路:1.实验为6n分频,用变量s来控制,0~6n-1这六个数,当时钟信号每来一个上升沿时加1,当为6n-1时清零;2.定义N为常量,通过改变N的值改变分频;3.ctrl值不同时,占空比不同,用case语句控制,ctrl分别为01,10,11和其他;4.具体波形的实现用if语句,当占空比为1时,A输出信号在s=0和s=3*n时翻转,B输出信号在s=2*n和s=5*n时翻转,C输出信号在s=4*n和s=n的时候翻转。
当占空比为1:2时,A输出信号在s=0和s=2*n时翻转,B输出信号在s=2*n和s=4*n时翻转,C输出信号在s=4*n和s=0的时候翻转。
当占空比为2:1时,A输出信号在s=0和s=4*n时翻转,B输出信号在s=2*n和s=0时翻转,C输出信号在s=4*n和s=2*n的时候翻转;5.在占空比为1和1:2时,C输出信号应比B慢120度,但是实际输出超前B,所以要对C输出进行反相;同理,在占空比为2:1时,要对B、C分别进行反向。
6.用if语句判断是否复位,若非,则执行case语句。
三、流程图:四、源程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity top isport(clk,reset:in std_logic;ctrl:in std_logic_vector(1 downto 0);A,B,C:out std_logic);end top ;architecture rel of top issignal temp1,temp2,temp3,temp4,temp5 : std_logic; constant N: integer:=1;signal s:integer range 0 to 6*N-1 ;beginprocess(clk,reset,ctrl)beginif (reset='0') thentemp1<='0';temp2<='0';temp3<='0';temp4<='0';temp5<='0';s<=0;elsecase ctrl iswhen "01"=>if (clk 'event and clk='1') thenif s=6*N-1 thens<=0;elses <= s+1;end if;if s=0 thentemp1<= not temp1;end if;if s=3*N thentemp1<= not temp1;end if;if s=2*N thentemp2<= not temp2;end if;if s=5*N thentemp2<= not temp2;end if;if s=4*N thentemp4<= not temp4;end if;if s=N thentemp4<= not temp4;end if;end if;temp3<= not temp4;when "10"=>if (clk 'event and clk='1') thenif s=6*N-1 thens<=0;elses <= s+1;end if;if s=0 thentemp1<= not temp1;end if;if s=2*N thentemp1<= not temp1;end if;if s=2*N thentemp2<= not temp2;end if;if s=4*N thentemp2<= not temp2;end if;if s=4*N thentemp4<= not temp4;end if;if s=0 thentemp4<= not temp4;end if;end if;temp3<= not temp4;when "11"=>if (clk 'event and clk='1') thenif s=6*N-1 thens<=0;elses <= s+1;end if;if s=0 thentemp1<= not temp1;end if;if s=4*N thentemp1<= not temp1;end if;if s=2*N thentemp5<= not temp5;end if;if s=0 thentemp5<= not temp5;end if;if s=4*N thentemp4<= not temp4;end if;if s=2*N thentemp4<= not temp4;end if;end if;temp2<= not temp5;temp3<= not temp4;when others=>temp1<='0';temp2<='0';temp3<='0';end case;end if;end process;A<=temp1;B<=temp2;C<=temp3;end rel;五、仿真波形:整体波形:当ctrl=1 当ctrl=2 当ctrl=3复位当ctrl=其他:六、实验过程遇到的问题:在程序设计时,开始不知该怎样使A,B,C互差120度,开始是想通过定义一个变量,每来一个上升沿加1,从0开始,A路信号除3n 取余为0则翻转,B路信号除3n取余为1则翻转,C路信号除3n取余为2则翻转,我觉得这样的想法应该没有错,可是实际却调不出来,可能是某处逻辑有问题,后来就模仿老师给的6分频程序,设计了现在的程序。
基于FPGA的多功能波形发生器的设计
基于FPGA的多功能波形发生器的设计摘要:主要研究了采用FPGA 和VHDL 语言,运用自顶向下设计思想设计多功能数字波形发生器的问题。
数字波形发生器基于FPGA 设计,VHDL编程实现,集成在1 片Altera 公司的EPF10K10LC84-3芯片上,其输出的8 位数据通过D/A 转换并经滤波电路后即得所需波形。
频率可从100~1000Hz 等步进调节,最小步进100Hz。
系统频率范围宽,频率和幅度精度高。
关键词:FPGA;VHDL;EDA;波形发生器中图分类号:TN70 文献标识码:A 文章编号:1006-4311(2010)09-0232-020 引言电子设计的必由之路是数字化,这已成为共识。
在数字化的道路上,我国的电子技术经历了一系列重大的变革。
从应用小规模集成电路构成电路系统,到广泛地应用微控制器或单片机(MCU),在电子系统设计上发生了具有里程碑意义的飞跃。
电子产品正在以前所未有的速度进行着革新,主要表现在大规模可编程逻辑器件的广泛应用。
在可编程芯片CPLD(复杂可编程逻辑器件)和FPGA(现场可编程门阵列)上实现电子系统的设计,必将成为今后电子系统设计的一个发展方向。
所以电子设计技术发展到今天,又将面临另一次更大意义的突破,即CPLD/ FPGA 在EDA(电子设计自动化)基础上的广泛应用。
本设计将采用基于VHDL的EDA设计来实现波形发生器的各种功能。
1 EDA简介1.1 EDA 技术的涵义 EDA是电子设计自动化(Electronic Design Automation)的缩写。
它是以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述的主要表达方式,以计算机、大规模可编程逻辑器件的开发软件及实验开发系统为设计工具,通过有关的开发软件,自动完成用软件的方式设计电子系统到硬件系统的一门新技术。
EDA技术可以实现逻辑编译、逻辑化简、逻辑分割、逻辑综合及优化,逻辑布局布线、逻辑仿真。
课题设计 基于FPGA的多功能波形发生器的设计
课题实训基于FPGA的多功能波形发生器的设计一、实训目的1.懂得利用FPGA芯片实现多种波形的产生方法2.懂得多功能波形发生器的结构组成3.懂得一种复杂FPGA电路的设计二、实训器材1.EDA实验箱1台2.微型计算机1台3.MAX+PLUSII10.2软件1套4.下载电缆1条三、实训原理设计一个多功能波形发生器。
该波形发生器能产生正弦波、方波、三角波和由用户编辑的特定形状波形。
具体要求如下:(1)具有产生正弦波、方波、三角波、锯齿波4种周期性波形的功能。
(2)用键盘输入编辑生成上述4种波形(同周期)的线性组合波形。
(3)具有波形存储功能。
(4)输出波形的频率范围为100Hz~200kHz;重复频率可调,频率步进间隔≤100Hz。
(5)输出波形幅度范围0~5V(峰-峰值),可按步进0.1V(峰-峰值)调整。
(6)具有显示输出波形的类型、重复频率(周期)和幅度的功能。
(7)用键盘或其他输入装置产生任意波形。
多功能波形发生器系统由以下四部分组成.输入部分、FPGA部分、DAC、显示部分组成。
多功能波形发生器方框图四、设计程序(参考程序)--功能:实现4种常见波形正弦、三角、锯齿、方波(A、B)的频率、幅度可控输出(方波--A的占空比也是可控的),可以存储任意波形特征数据并能重现该波形,还可完成--各种波形的线形叠加输出。
--说明:SSS(前三位)和SW信号控制4种常见波形种哪种波形输出。
4种波形的频率、--幅度(基准幅度A)的调节均是通过up、down、set按键和4个BCD码置入器以及一--个置入档位控制信号(ss)完成的(AMP的调节范围是0~5V,调节量阶为1/51V)。
--其中方波的幅度还可通过u0、d0调节输出数据的归一化幅值(AMP0)进行进一步--细调(调节量阶为1/(51*255)V)。
方波A的占空比通过zu、zp按键调节(调节--量阶1/64*T)。
系统采用内部存储器——RAM实现任意输入波形的存储,程序只支--持键盘式波形特征参数置入存储,posting 为进入任意波置入(set)、清除(clr)状态--控制信号,SSS控制存储波形的输出。
Verilog期末实验报告—波形发生器
一、实验目的使用Verilog 软件编写四种波形任意发生器的源代码,用modelsim 软件进行仿真测试,进一步强化Verilog ,modelsim 软件的编程能力为进一步的编程学习打下良好的基础。
二、实验原理2.1该任意波形发生器要实现三个功能:(1)通过计数器并结合拼接操作产生四种波形正弦波,方波,三角波1,三角波形的5位数据地址。
(2).设定ROM 中对应波形地址地址的8位数值,将所有波形数值存储到ROM 中。
(3).设定2位的波形选择开关端口。
2bit00000~0011101000~011113bit data[7:0]10000~1011111000~11111 图 1整体设计方案2.2 四种波形要在一个周期内等间隔取8个点,定义对应的数据,下图为示意图,由于编程序需要,数据会进行相应的修改。
地址发生器(0-7)正弦波方波三角波1三角波2clk reset 波形选择1-111正弦波方波三角波1三角波2y xx88yyx81图2 四种波形一个周期内的取样示意图2.3 四种波形数据地址对应的数据的存储器ROM根据示意图,由于实际情况需要,将正弦波平移至x轴以上,并将所有波形的峰峰值取大100倍。
下表1是ROM存储器三、实验内容3.1 任意波形发生器verilog程序代码:module wave(data,clk,add1,reset);//顶层模块端口定义output[7:0]data;input clk,reset;input[1:0] addr1;Wire[1:0] addr1;wire clk,reset;//输入输出变量定义ADDR 4(addr,clk,addr1,reset);//地址发生器模块调用rom 1(addr,data);//ROM存储器模块调用endmodulemodule ADDR(addr,clk,addr1,reset);output[4:0] addr;input clk,reset;wire clk,reset;reg[2:0] addr2;wire[1:0] addr1;reg[4:0] addr;initial addr2=3'b000; //定义计数初值always @(posedge clk or posedge reset)//每当有clk,或reset信号开启程序beginif(reset)beginaddr2<=0;//同步复位addr<=0;endelse if(addr2>=7)//addr2计数至7时,addr2复位beginaddr2<=0;endelsebeginaddr2<=addr2+1;//addr2由0至7计数addr<={addr1,addr2};//addr1与addr2地址拼接为addr的最终地址endendendmodulemodule rom(addr,data);//数据存储器模块input[4:0] addr;output[7:0] data;function[6:0] romout;//定义函数,存储32个波形取样点地址的数据input[4:0] addr;reg[4:0] addr;wire[7:0] data;case(addr)//根据不同地址,得到不同数据。
基于VerilogHDL的多功能信号发生器
基于Verilog HDL的多功能信号发生器1、引言信号发生器是一种能够产生大量标准信号和用户定义信号,并保证高精度、高稳定性、可重复性和易操作性的电子仪器。
传的信号发生器多采用模拟分立元件实现,尺寸大、灵活性差、电路结构复杂、设计周期长、调试繁琐。
随着大规模集成电路技术和EDA技术的迅速发展,使得数字系统的硬件设计如同软件设计那样方便快捷,而V erilog HDL 是当前应用最广泛的并成为IEEE标准的一种硬件描述语言。
V erilog HDL是在C语言的基础上演化而来,具有结构清晰、文法简明、功能强大、高速模拟和多库支持等优点。
为此本文通过使用V erilog HDL硬件描述语言设计了一波形可选、频率幅度可调的多功能信号发生器,电路结构简单,易于扩展重构,具有很大的灵活性。
2、多功能信号发生器的设计根据设计要求,该系统的原理框图如图1所示,由div分频器,cnt64计数器,data_rom 只读存储器组成。
⑴div是分频器,对外部提供的主频率时钟信号clk_in进行分频,以得到满足多功能信号发生器设计要求的时钟频率,clk_in是外部的主频率输入端,clr是清零控制端,step是步长控制端,当step输入上跳变信号时,可改变分频器的分频比,分频结果由clk_out端输出。
module div(clk_in,step,clr,clk_out);input clk_in,step,clr;output clk_out;reg clk_out;reg [10:0] stepnum;reg [24:0] cnter;always @(posedge step or negedge clr)beginif(~clr)stepnum=1;else if(stepnum<1000) stepnum=stepnum+1;else stepnum=0;endalways @(posedge clk_in)beginif (cnter<stepnum) cnter=cnter+1;else cnter=0;if (cnter==0) clk_out=1;else clk_out=0;endendmodule⑵cnt64是参数可设置的64进制计数器,用于产生data_rom的8位地址,clk时钟输入端,连接分频器的clk_out输出,clr清零输入端,wavesel波形选择输入端,通过输入上跳变信号,分别可循环选择正弦波、锯齿波、方波、三角波。
基于VHDL语言的波形发生器的设计
基于VHDL语言的波形发生器的设计基于VHDL语言的波形发生器的设计利用FPGA芯片信号发生器的设计。
当按下开关1时产生三角波,当按下开关2时产生正弦波,当按下开关3时产生方波。
本次设计采用xilinx公司的ISE设计工具,在zedboard开发板中的xc7z020芯片上用VHDL来实现,并且利用ISE自带的chipscop完成对FPGA内部的信号的读取。
这样的设计具有体积小,修改升级容易等特点。
本设计采用自顶向下、纯文本实现数字时钟的设计、下载和调试。
1 设计原理本设计由信号产生,信号选择,信号控制输出三大模块组合而成。
其中信号产生模块有:三角波模块、方波模块、正弦波模块。
本设计采用K0~K2这三个按键为信号选择开关,选择信号产生模块输出的信号。
(顶层设计的例化语句见附录一)其RTL 图1-1:RTL图1-12主要功能模块u1:square方波产生模块;u2:sin正弦波产生模块;u3:delta三角波产生模块;u4:sig_control数据选择器模块;u5,u6:为使用chipscope所需生成的IP核。
2.1 u1方波产生模块(程序见附录二)产生方波,初始化为幅值225的高电平,每有一次时钟上升沿触发产生一次计数,当计数值达到128时跳到为0的低电平。
利用循环语句不断的产生高低电平的方波输出。
原理如图2-1:方波模块RTL 图2-12.2 u1正弦波产生模块(程序见附录三)功能是产生正弦波,产用信号抽样的原理,在一个正弦信号中等间隔的抽样64点,此64点的幅值作为一个正弦波数据表,每有一次时钟上升沿触发便赋予输出端q一个点的数据,依次赋值64个点的数据便完成一个周期的正弦波的输出。
并利用循环语句不断的产生正弦波的输出。
原理如图2-2:正弦波模块RTL 图2-22.3 u1三角波产生模块(程序见附录四)功能是产生三角波,初始化为幅值为0,每有一次时钟上升沿触发便进行幅值加1,当幅值达到最大255时,每有一次时钟上升沿触发便进行幅值减1,当幅值减为0时完成一个周期的输出。
基于H语言的多波形信号发生器的设计
摘要:硬件描述语言HDL是EDA技术中的重要组成部分,VHDL是当前最流行的硬件描述语言之一,此语言具有良好的可读性、可移植性等特点。
本设计主要是利用VHDL语言设计一个多功能信号发生器,根据输入信号的选择可以输出方波、三角波、正弦波和阶梯波4种信号,主要使用了Altera公司的Quartus II软件。
本设计利用VHDL语言使用文本输入法,新建工程,通过设计输入、编译、仿真完成各种信号的设计,然后生成元器件,再使用原理图输入法完成各部分的整合,从而形成一个完整的多波形信号发生器,而后经过锁定引脚下载数模转换可以在示波器上观察到波形。
关键词:VHDL,文本输入法,原理图输入法,数模转换Abstract:Hardware describe language HDL is an important part of EDA technology ,VHDL is one of the current most popular hardware describe language,this language has a nice readability and portability. This design primarily uses vhdl language to design a versatile signal generator. According to the choice of the input signal wave,the generator can export the one wave of the four waves including square-wave、triangular-wave、sine-wave、ladder-wave . This design primarily uses the Quartus II software of Altera company.The design uses text input method by VHDL language to creat new projects,design the input,compile,simulate various kinds signals.And it generate new component,then it form a completed various kinds signals generator by schematic diagram method,then you can observe the waveforms on the oscillograph after locking the pins,downloading,digital-analogue conversion.Keywor ds:VHDL,text input method,schematic diagram method,digital-to-analogue conversion目录1.绪论 (4)1.1 EDA概述 (4)1.2 Quartus II 概述 (4)1.3 信号发生器概述 (5)2. VHDL语言介绍 (5)3.主要功能 (7)3.1 功能模块的划分 (7)3.2 主要功能的实现 (7)3.2.1方波的实现 (7)3.2.2三角波的实现 (9)3.2.3正弦波的实现 (11)3.2.4阶梯波的实现 (13)3.2.5四选一输出波形选择模块 (14)3.3 多波形信号发生器 (16)4.外围电路设计 (17)4.1基于EPM1270T144C5芯片的开发板介绍 (17)4.2 D/A转换器 (18)4.3示波器观察图形 (19)结论 (21)参考文献 (22)致谢 (23)1.绪论1.1 EDA概述EDA技术是以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述的主要表达方式,以计算机、大规模可编程逻辑器件的开发软件及实验开发系统为设计工具,通过有关开发软件,自动完成用软件的方式设计的电子系统到硬件系统实现,最终形成集成电子系统或专用集成芯片的一门新技术。
基于Verilog实现的DDS任意波形发生器
河海大学计算机与信息学院(常州)课程设计报告题目简易直接数字频率合成器前端设计专业、学号电科**********授课班号275901学生姓名毛石磊指导教师单鸣雷完成时间2013-6-28课程设计(报告)任务书(理工科类)Ⅰ、课程设计(报告)题目:简易直接数字频率合成器(DDS)前端设计Ⅱ、课程设计(论文)工作内容一、课程设计目标1、培养综合运用知识和独立开展实践创新的能力以及同组之间合作的能力;2、学习直接数字频率合成器(DDS)相关知识,进行系统构架设计、模块划分和算法分析,并使用Verilog HDL设计一简易直接数字频率合成器,要求具有根据输入的控制字的不同输出不同频率的正弦信号的功能;3、能够对分析、测试、解决实际的数字电路问题加深理解,学以致用,增强动手能力,为今后能够独立进行设计工作打下一定的基础;二、研究方法及手段应用1、学习直接数字频率合成器(DDS)相关知识,确定电路需要实现的功能,分别编写各个功能模块,主要有相位累加器模块、正弦查询表模块和主模块;2、利用仿真软件测试各个模块功能的正确性;3、将各模块综合起来,实现整体功能并采用软件验证;三、课程设计预期效果1、完成实验环境搭建;2、完成DDS的功能设计与综合;3、完成modelsim软件仿真,确定程序代码正确性;4、在理论学习和具体实践中达到对DDS的正确理解。
学生姓名:毛石磊专业年级:电子科学与技术2010级摘要直接数字频率合成技术(Direct Digital Synthesize,DDS)是继直接频率合成技术和锁相式频率合成技术之后的第三代频率合成技术。
它采用全数字技术,并从相位角度出发进行频率合成。
目前,DDS的设计大多是应用HDL(Hardware Description Language)对其进行逻辑描述,整个设计可以很容易地实现参数改变和设计移植,给设计者带来很大的方便。
Verilog HDL就是其中一种标准化的硬件描述语言,它不仅可以进行功能描述,还可以对仿真测试矢量进行设计。
基于FPGA的多功能波形发生器设计课程设计
课程设计题目多功能波形发生器的设计学院信息工程学院专业班级姓名指导教师摘要 (3)Abstract (4)多功能波形发生器的设计 (4)1.课题简介 (6)1.1 课设目的 (6)1.2课设要求 (6)2设计方案 (8)2.1方案选择 (8)2.2 设计原理 (8)2.3设计流程 (9)3仿真结果 (15)3.1编译警告 (15)3.2编译结果 (16)3.3建立仿真文件 (16)3.4仿真结果 (18)3.5 RTL视图 (19)4程序分析 (21)4.1VHDL语言分析 (21)4.2主要函数语句分析 (21)5小结 (23)6参考文献 (24)7附录源程序代码 (25)摘要多功能信号发生器已成为现代测试领域应用最为广泛的通用仪器之一,代表了信号源的发展方向。
直接数字频率合成(DDS)是二十世纪七十年代初提出的一种全数字的频率合成技术,其查表合成波形的方法可以满足产生任意波形的要求。
由于现场可编程门阵列(FPGA)具有高集成度、高速度、可实现大容量存储器功能的特性,能有效地实现DDS技术,极大的提高函数发生器的性能,降低生产成本。
本文首先介绍了函数信号发生器的研究背景和DDS的理论。
然后详尽地叙述了利用VHDL语言描述DDS模块的设计过程,以及设计过程中应注意的问题。
文中详细地介绍了多种信号的发生理论、实现方法、实现过程、部分VHDL代码以及利用Quartus仿真的结果。
文中还介绍了Altera公司的DE2多媒体开发平台的部分功能及使用,并最终利用DE2平台完成了多功能信号发生器的大部分功能。
包括由LCD显示和按键输入构成的人机界面和多种信号的发生。
数字模拟转换器是BURR-BROWN公司生产的DAC902。
该信号发生器能输出8种不同的信号,并且能对输出信号的频率、相位以及调制信号的频率进行修改设定。
关键词:VHDL D/A接口AbstractMulti function signal generator has become the most widely used in modern testing field of general instrument, and has represented one of the development direction of the source. Direct digital frequency synthesis (DDS) is a totaly digital frequency synthesis technology, which been put forward in the early 1970s. Using a look-up table method to synthetic waveform, it can satisfy any requirement of waveform produce. Due to the field programmable gates array (FPGA) with high integrity, high speed, and large storage properties, it can realize the DDS technology effectively, increase signal generator’s performance and reduce production costs.Firstly, this article introduced the function signal generator of the research background and DDS theory. Then, it described how to design a DDS module by VHDL, and introduced various signal occurs theory, method and the implementation process, VHDL code and simulation results.This paper also introduces the function of DE2 multimedia development platform, and completed most of the functions of multi-function signal generator on DE2 platform finally. Including the occurrence of multiple signal and the man-machine interface which composed by LCD display and key input. Digital-to-analog converters is DAC902, which produced by company BURR-BROWN.This signal generator can output eight different kinds of signals, and the frequency of the output signal, phase and modulation frequency signal also can be modifyed. Keywords: VHDL D/A Interface多功能波形发生器的设计信号发生器又称信号源或振荡器,在生产实践和科技领域中有着广泛的应用。
Verilog代码编写DDS信号发生器(幅频相可调正弦波、方波、三角波、锯齿波)纯VIVA。。。
Verilog代码编写DDS信号发⽣器(幅频相可调正弦波、⽅波、三⾓波、锯齿波)纯VIVA。
DDS(Direct Digital Synthesizer)即数字合成器,是⼀种新型的频率合成技术,具有相对带宽⼤,频率转换时间短、分辨率⾼和相位连续性好等优点。
较容易实现频率、相位以及幅度的数控调制,⼴泛应⽤于通信领域。
DDS的基本结构框图如下所⽰:由图可以看出,DDS 主要由相位累加器、相位调制器、波形数据表以及D/A 转换器构成。
本次实验仅在VIVADO平台上完成DDS的仿真,故设计流程不需要D/A转换器,在PC端完成仿真设计即可。
若需要结合FPGA开发板使⽤,则需要再外接⼀个D/A转换模块,将产⽣的数字信号转换为模拟信号即可。
其中相位累加器由 N 位加法器与 N 位寄存器构成。
每个时钟周期的时钟上升沿,加法器就将频率控制字与累加寄存器输出的相位数据相加,相加的结果⼜反馈⾄累加寄存器的数据输⼊端,以使加法器在下⼀个时钟脉冲的作⽤下继续与频率控制字相加。
这样,相位累加器在时钟作⽤下,不断对频率控制字进⾏线性相位累加。
即在每⼀个时钟脉冲输⼊时,相位累加器便把频率控制字累加⼀次。
相位累加器输出的数据就是合成信号的相位。
相位累加器输出的数据,作为波形存储器的相位采样地址,这样就可以把存储在波形存储器⾥的波形采样值经查表找出,完成相位到幅度的转换。
波形存储器的输出数据送到 D/A 转换器,由 D/A 转换器将数字信号转换成模拟信号输出。
DDS 信号流程⽰意图如下:这⾥相位累加器位数为 N 位(N 的取值范围实际应⽤中⼀般为 24~32),相当于把正弦信号在相位上的精度定义为 N 位,所以其分辨率为1⁄2^N。
若 DDS 的时钟频率为Fclk,频率控制字 fword 为 1,则输出频率为Fout = Fclk/2^N ,这个频率相当于“基频”。
若fword 为 B,则输出频率为Fout = B × Fclk /2^N 。
EDA课程设计_基于FPGA的任意波形发生器
EDA课程设计__基于FPGA地任意波形发生器学院:通信与电子工程学院摘要本文主要探索了应用FPGA灵活可重复编程和方便在系统重构地特性,以Verilog HDL 为设计语言,运用QuarrtusII软件,将硬件功能以软件设计来描述,提高了产品地集成度,缩短开发周期.所设计地波形发生器可产生正弦波(sina_wave)、锯齿波(swat_wave)、矩形波(squr_wave)、三角波(trig_wave)四种信号,能够实现信号地转换并且频率可调;关键字:任意波形发生器 FPGA V erilog HDL QuartusIIAbstractThis paper explored the application of flexible and reprogrammable FPGA and convenience features in the system reconfiguration to Verilog HDL design language, the hardware functions to software design to describe and improve the integration of products and shorten the development cycle. Waveform generator designed to produce sine wave (sina_wave), ramp (swat_wave), rectangular wave (squr_wave), triangular wave (trig_wave) four signals, to achieve signal conversion and frequency adjustable。
Keywords: Arbitrary Waveform Generator FPGA Verilog HDL QuartusII目录摘要 (I)ABSTRACT (I)目录 (I)第 1章绪论 (1)1.1概述 (1)1.2任意波形发生器地功能 (1)1.3国内外发展现状 (2)第2章波形发生器地基本理论 (3)2.1 FPGA简介 (3)2.2V ERILOG 语言简介 (4)2.2.1 Verilog语言概述 (4)2.2.2 VerilogHDL基本结构 (4)2.3Q UARRTUS II概述 (6)第3章方案设计 (7)3.1 系统介绍 (7)3.2波形发生器各个模块设计 (8)3.2.1 Wave_gen 模块 (8)3.2.2 波形数据存储 ROM 模块 (9)第4章波形发生器软件仿真 (10)4.1设计平台及仿真工具 (10)4.2仿真过程 (10)结论 (13)附录 (14)第 1章绪论1.1 概述波形发生器是一种常用地信号源,广泛应用于电子电路,自动控制系统,教案实验等领域,目前使用出现了大量能够产生多种波形且性能稳定地任意波形发生器,但大多数方案都是基于串行或并行总线进行数据地传输,这种方案虽然成本较低,但系统地实时性较差,难以满足复杂波形地大数据量地传输要求.我们设计了一种基于FPGA芯片地任意波形发生器,充分利用了FPGA强大地逻辑功能,实现了利用单片FPGA芯片控制整个系统地方案.1.2 任意波形发生器地功能任意波形发生器既具有其他信号源地信号生成能力,又可以通过各种编辑手段生成任意地波形采样数据,方便地合成其他信号源所不能生成地任意波形,从而满足测试和仿真实验地要求.任意波形发生器地主要功能包括:(1)函数发生功能基础实验中,为了验证电路功能、稳定性和可靠性,需要给它施加理想波形,任意波形发生器能替代函数发生器提供正弦波、方波、三角波、锯齿波等波形,还具有各种调制和扫频能力.利用任意波形发生器地这一基础功能就能满足一般实验地信号需求.(2)任意波形生成运行在实际电子环境中地设备,由于各种干扰地存在以及环境地变化,实际电路中往往存在各种信号缺陷和瞬变信号,例如过脉冲、尖峰、阻尼瞬变、频率突变等.任意波形发生器可以模拟这些特殊信号,以测试系统地实际性能.(3)信号还原功能在一些军事、航空等领域,有些电路运行环境很难估计,在设计完成之后,在现实环境中还需要更进一步地实验验证,而有些实验地成本很高或者风险性很大(如飞机试飞时发动机地运行情况),人们不可能重复作实验来判断所设计产品地可行性和稳定性.此时,可以利用任意波形发生器地信号还原功能.在做一些高耗费、高风险实验时,可以通过数字示波器把实际中用到地实际波形记录下来,再通过计算机接口下载到任意波形发生器,通过任意波形发生器还原实验中地实际波形并加到设计电路中,做进一步地实验验证工作.1.3 国内外发展现状采用可变时钟和计数器寻址波形存储器地任意波形发生器在一段时期内曾得到广泛地应用,其取样时钟频率较高且可调节,但其对硬件要求比较高,需要高性能地锁相环和截止频率可调地低通滤波器(或者多个低通滤波器),且频率分辨率低,频率切换速度较慢,已经逐步退出市场.目前市场上地任意波形发生器主要采用直接数字合成(Direct Digital Synthesuzer,DDS)技术,这种波形发生器不仅可以产生可变频地载频信号、各种调制信号,同时还能和计算机配合产生用户自定义地有限带宽地任意信号,可以为多种领域地测试提供宽带宽、高分辨率地测试信号[1].任意波形发生器发展到今天,从产品结构形式来划分,主要包含三种:(1)独立仪器结构形式独立仪器结构形式是把任意波形发生器设计成单台仪器地形式,其优点是精度高,可独立工作.(2)PC总线式PC(Personal Computer)总线式是将任意波形发生器板卡直接插在PC机地总线扩展槽或通过外部接口连接到PC总线上,利用PC机来控制任意波形发生器地工作状态,其优点是可以充分利用PC机地软硬件资源,在波形数据处理、波形参数修改方面,计算机有明显地优势.(3)VXI模块式VXI模块是一种新型地模块化仪器,它必须插在VXI总线机箱上才能使用,VXI总线机箱通过GPIB或者RS-232C等接口与计算机相连,VXI模块仪器对组成自动测试系统特别有用,各个公司地VXI卡式仪器模块可以自由组合使用.从发展状况来看,国外任意波形发生器地研制及生产技术已经较为成熟.以安捷伦(Agilent)和泰克(Tektronix)为代表地国际电子测量仪器公司在此领域进行了卓有成效地研究和开发,其产品无论在技术上还是市场占有率方面在国际上都享有盛誉,但其价格也是相当昂贵,高端型号每台价格都在几万美金左右,低端地也要几万人民币.Tektronix公司地独立结构任意波形发生器AFG3000系列功能完善,人机界面友好,操作方便,可以以多种方式连接到PC机上,其最高采样率能达到2GS/s,输出信号最高频率为240MHz,任意波频率50MHz,并配备地强大地波形编辑软件ArbExpress,用户可以方面地创建和编辑自己地波形.Agilent公司地PXI模块任意波形发生器采样率已经能达到1.25GS/s,最高输出频率500MHz.我国研制任意波形发生器是从上世纪90年代开始地,近年来有一批本土厂商奋起直追,并取得了可喜地成果.例如南京盛普科技电子有限公司地SPF120型信号发生器地主波输出频率达到了120MHz,任意波最高频率为100KHz;北京普源精电科技有限公司(RIGOL)生产地DG1000/2000/3000系列任意波形发生器,在性能上已经大略相当于国外中低端产品.以FPGA自身资源为基础,制作一个简易综合电子实验仪,具有信号源、测量仪表等功能.第2章波形发生器地基本理论2.1 FPGA简介FPGA由可编程逻辑单元阵列、布线资源和可编程地I/O单元阵列构成,一个FPGA 包含丰富地逻辑门、寄存器和I/O资源.一片FPGA芯片就可以实现数百片甚至更多个标准数字集成电路所实现地系统.FPGA地结构灵活,其逻辑单元、可编程内部连线和I/O单元都可以由用户编程,可以实现任何逻辑功能,满足各种设计需求.其速度快,功耗低,通用性强,特别适用于复杂系统地设计.使用FPGA还可以实现动态配置、在线系统重构(可以在系统运行地不同时刻,按需要改变电路地功能,使系统具备多种空间相关或时间相关地任务)及硬件软化、软件硬化等功能.鉴于高频疲劳实验机控制器控制规模比较大,功能复杂,故我们在研制过程中,在传统实验机控制器地基础上,通过FPGA技术及微机技术两者地结合,来全面提升控制器系统地性能,使整机地工作效率、控制精度和电气系统可靠性得到了提高,且操作方便而又不乏技术地先进性.2.2 Verilog 语言简介2.2.1 Verilog语言概述Verilog HDL是一种硬件描述语言(hardware description language),为了制作数字电路而用来描述ASICs和FPGA地设计之用[2].Verilog HDL可以用来进行各种层次地逻辑设计,也可以进行数字系统地逻辑综合,仿真验证和时序分析,Verilog HDL进行设计最大地优点是其工艺无关性.这使得工程师在功能设计,逻辑验证阶段可以不必过多考虑门级及工艺实现地具体细节,只需根据系统设计地要求施加不同地约束条件,即可设计出实际电路.Verilog 是由en:Gateway Design Automation公司于大约1984年开始发展.Gateway Design Automation公司后来被 Cadence Design Systems于1990年所购并.现在 Cadence 对于Gateway 公司地 Verilog 和 Verilog-XL 模拟器拥有全部地财产权.2.2.2VerilogHDL基本结构(1)基本逻辑门,例如 and 、or 和 nand 等都内置在语言中.(2)用户定义原语(UDP )创建地灵活性.用户定义地原语既可以是组合逻辑原语,也可以是时序逻辑原语.(3)开关级基本结构模型,例如 pmos 和 nmos 等也被内置在语言中.(4)提供显式语言结构指定设计中地端口到端口地时延及路径时延和设计地时序检查.(5)可采用三种不同方式或混合方式对设计建模.这些方式包括:行为描述方式—使用过程化结构建模;数据流方式—使用连续赋值语句方式建模;结构化方式—使用门和模块实例语句描述建模.* Verilog HDL 中有两类数据类型:线网数据类型和寄存器数据类型.线网类型表示构件间地物理连线,而寄存器类型表示抽象地数据存储元件.* 能够描述层次设计,可使用模块实例结构描述任何层次.* 设计地规模可以是任意地;语言不对设计地规模(大小)施加任何限制. * Verilog HDL 不再是某些公司地专有语言而是 IEEE 标准.* 人和机器都可阅读 Verilog 语言,因此它可作为 EDA 地工具和设计者之间地交互语言.* Verilog HDL 语言地描述能力能够通过使用编程语言接口(PLI )机制进一步扩展. PLI 是允许外部函数访问 V erilog 模块内信息、允许设计者与模拟器交互地例程集合.* 设计能够在多个层次上加以描述,从开关级、门级、寄存器传送级(RTL )到算法级,包括进程和队列级.* 能够使用内置开关级原语在开关级对设计完整建模.* 同一语言可用于生成模拟激励和指定测试地验证约束条件,例如输入值地指定.* Verilog HDL 能够监控模拟验证地执行,即模拟验证执行过程中设计地值能够被监控和显示.这些值也能够用于与期望值比较,在不匹配地情况下,打印报告消息.* 在行为级描述中,Verilog HDL 不仅能够在RTL 级上进行设计描述,而且能够在体系结构级描述及其算法级行为上进行设计描述.* 能够使用门和模块实例化语句在结构级进行结构描述.* Verilog HDL 地混合方式建模能力,即在一个设计中每个模块均可以在不同设计层次上建模.* Verilog HDL 还具有内置逻辑函数,例如 &(按位与)和 |(按位或).* 对高级编程语言结构,例如条件语句、情况语句和循环语句,语言中都可以使用.* 可以显式地对并发和定时进行建模.* 提供强有力地文件读写能力.* 语言在特定情况下是非确定性地,即在不同地模拟器上模型可以产生不同地结果;例如,事件队列上地事件顺序在标准中没有定义.2.3 QuarrtusII概述Quartus II 是Altera公司地综合性PLD开发软件,支持原理图、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌自有地综合器以及仿真器,可以完成从设计输入到硬件配置地完整PLD设计流程[4].Quartus II可以在XP、Linux以及Unix上使用,除了可以使用Tcl脚本完成设计流程外,提供了完善地用户图形界面设计方式.具有运行速度快,界面统一,功能集中,易学易用等特点.Quartus II支持Altera地IP核,包含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟地模块,简化了设计地复杂性、加快了设计速度.对第三方EDA工具地良好支持也使用户可以在设计流程地各个阶段使用熟悉地第三方EDA工具.此外,Quartus II 通过和DSP Builder工具与Matlab/Simulink相结合,可以方便地实现各种DSP应用系统;支持Altera地片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性地开发平台.图1:QuarrtusII图标图2:Quarrtus界面第3章方案设计3.1 系统介绍任意波形发生器地实现采用模块设计,这样很好地利用了QuartusII 软件中地LPM_ROM模块,能够达到最优设计;频率计地功能完全采用HDL语言描述,最后地顶层文件采用模块设计来完成.最终地顶层文件如下图所示:图 3.1 顶层文件模块图要实现地功能:可产生正弦波(sina_wave)、锯齿波(swat_wave)、矩形波(squr_wave)、三角波(trig_wave)四种信号,能够实现信号地转换(select)并且频率可调.主要由三部分组成:地址指针控制模块,四种波形数据存储模块,D/A转换模块.前面2个模块在FPGA中实现,D/A转换通过外围电路实现.该部分地实现框图如下:图3.2 外围电路实现3.2 波形发生器各个模块设计3.2.1 Wave_gen 模块图 3.3 Wave_gen 模块图Wave_gen 模块各引脚说明:INCLK:输入地待测信号.SELECT[1..0]:波形选择输入.FREQ[3..0]:控制输出波形地频率.ADDRESS[8..0]:输出地址指针.3.2.2 波形数据存储 ROM 模块图 3.4 波形数据存储 ROM 模块波形数据存储 ROM 模块个引脚说明:Clock:输入时钟信号.Address[8..0]:输入地址指针.Q[7..0]:输出信号.第4章波形发生器软件仿真4.1 设计平台及仿真工具我们选择QuarrtusII9.0作为波形发生器仿真工具,结合Verilog硬件描述语言,该模块地功能采用Verilog HDL 来描述,程序Wave_gen.v 请见附件.程序实现地主要功能是:根据不同地波形选择(select[1:0]),来改变送入ROM 中地地址指针address. 四种波形一个周期地数据各占不同地 16B,每次波形改变使 address 指向各段数据首地址.编译正确后将其创建为Wave_gen.bsf 模块(见顶层文件中所示),然后采用图形编辑方式,完成波形发生器这部分电路地设计.4.2 仿真过程首先,我们需要在QuarrtusII9.0建立一个工程文件名为wave_gen,如图:图4.1建立工程文件其次,我们需要在File/New/VerilogHDL file,文件名为Wave_gen.v,保存在当前工程里,如图:图4.2Wave_gen.v然后在Processing/start comlication进行调试与仿真结果如图:图4.3仿真结果①产生正弦波(sina_wave)时送到DAC0832地数据:②产生锯齿波(swat_wave)时送到DAC0832地数据:③产生矩形波(squr_wave)时送到DAC0832地数据:④产生三角波(trig_wave)时送到DAC0832地数据:由仿真结果可知,改变select[1:0]地值,能够正确地将对应地波形数据送到DAC0832,从而完成了整体设计结论在研究地过程中,通过学习和参阅过内外相关地文献,并从网络上获取最新地硬件开发指南和芯片开发手册,同时不断向身边地老师请教和学习,通过系统地学习和实际工作地锻炼,积累了必要地基础知识,培养了实际地开发技能.通过本设计工作,基本掌握了Quartus II地使用技术,进一步加深了对数字信号处理技术地理解,提高了使用可编程逻辑器件设计数字系统地能力和软件编程地能力,为将来从事科研工作打下了良好地基础.参考文献[1] 黄晓翰.基于FPGA地多功能波形发生器地设计.电信科学.2010年09期[2] 王金明.Verilog HDL 程序设计教程.北京.人民邮电出版社,2004[3] 王文华. 基于DDS技术地任意波形发生器研究.浙江大学, 2002 .[4] Altera 公司.Quartus II .简易用户使用入门指南[5] 王金明.数字系统设计与 Verilog HDL 教程.第二版,2005附录Wave_gen.v程序如下:module Wave_gen(address,inclk,select,freq)。
基于FPGA的多功能波形发生器的设计
基于FPGA的多功能波形发生器的设计作者:黄小翰来源:《价值工程》2010年第09期摘要:主要研究了采用FPGA 和VHDL 语言,运用自顶向下设计思想设计多功能数字波形发生器的问题。
数字波形发生器基于FPGA 设计,VHDL编程实现,集成在1 片Altera 公司的EPF10K10LC84-3芯片上,其输出的8 位数据通过D/A 转换并经滤波电路后即得所需波形。
频率可从100~1000Hz 等步进调节,最小步进100Hz。
系统频率范围宽,频率和幅度精度高。
Abstract: It mainly study of the problems of FPGA and VHDL language use, using multi-function digital waveform generator with top-down design idea. Digital waveform generator design based on FPGA design and VHDL programming integrated in an Altera's EPF10K10LC84-3 chip, the required wave is obtained after the output of the 8-bit data through the D/A converter and filter circuit. Frequency ranges from 100~1000Hz conditioning step, the smallest step is 100Hz. System frequency has wide range, high precision of frequency and amplitude.关键词:FPGA;VHDL;EDA;波形发生器Key words: FPGA;VHDL;EDA;waveform generator中图分类号:TN70 文献标识码:A文章编号:1006-4311(2010)09-0232-020引言电子设计的必由之路是数字化,这已成为共识。
基于VerilogHDL的DDS任意波形发生器设计
欢迎订阅欢迎撰稿欢迎发布产品广告信息55图5 单片机主控制流程图4 结束语本文介绍了最新开发的基于单片机的无触点自动补偿式交流稳压电源,采用交流斩波的方式进行无触点电压补偿,使电源的稳压精度高(在输入交流电压为220V ?20%时,输出电压能稳定在220V ?1%以内)、反应速度快、输出波形好、效率高、无噪声、寿命长、造价低,带载能力强等特点。
该设计方案对交流稳压电源的继续研究具有重要的参考价值。
t参考文献[1]谈必礼.交流调压和稳压电源的发展动向[J ].变压器,2004,41(5):29-31.[2]毛行奎,张文雄.交流斩波控制调压技术探讨[J].机床电器,2004,2(2):50-53.[3]丁道宏.电力电子技术[M ].北京:航空工业出版社,1995:20-140.[4]毛兴武,祝大卫.功率因数校正原理与控制IC 及其应用设计[M ].北京:中国电力出版社,2007:3-37.[5]龚春英.几种MOSFET 驱动电路的研究[J].电源技术应用,2001,4(3):35-38.[6]张占松,蔡宣三.开关电源的原理与应用(修订本)[M ].北京:电子工业出版社,2004:138-146.[7]李朝青.单片机原理及接口技术[M ].北京:北京航空航天大学出版社,2004:60-113.作者简介:刘华毅(1951-),男,副教授,硕士生导师,主要研究方向:电力电子技术、控制理论与应用;刘鹏(1984-),男,硕士研究生,主要研究方向:电力电子技术应用。
收稿日期:2009-03-09(9085)do:i 10.3969/.j issn .1671-1041.2009.04.032基于Verilog HDL 的DDS 任意波形发生器设计李海江,刘 方(南京航空航天大学信息科学与技术学院,南京210016)摘要:简单介绍了直接数字频率合成技术(DD S),利用DDS 设计任意波形发生器,其能够产生矩形波、正弦波、三角波、锯齿波等多种波形;采用V erilog HDL 语言实现了各个模块功能,并在Q uartus Ò6.0开发环境下进行仿真,下载至cyclone Ò系列FPGA 芯片得到验证。
基于Verilog-HDL的信号发生器的设计
基于Verilog HDL 的信号发生器的设计一、实验目的应用Verilog进行编写四种波形发生的程序,并结合DE2板与DVCC实验板上的D/A转换器在示波器显示出波形。
初步了解Verilog的编程及DE2板的应用,加强对其的实际应用操作能力。
二、实验原理实验程序分为三部分:第一、通过计数器实现内置信号分频,并通过外置开关调节频率来控制输出波形的频率。
第二、设定ROM中的数值,将波形数据存储到ROM中。
第三、设定波形选择开关。
它由相位累加器、相幅转换函数表、D/A转换器以及内部时序控制产生器等电路组成。
参考频率f_clk为整个合成器的工作频率,输入的频率字保存在频率寄存器中,经N位相位累加器,累加一次,相位步进增加,经过内部ROM波形表得到相应的幅度值,经过D/A转换和低通滤波器得到合成的波形。
p为频率字,即相位增量;参考频率为f _clk;相位累加器的长度为N位,输出频率f _out为:f_out ――输出信号的频率;N相位累加器的位数;p 频率控制字(步长);f_clk ――基准时钟频率。
图1-2四种波形单周期的取样示意图段地址基地址D7 D6 D5 D4 D3 D2 D1 DO图1-3函数查找表的设计三、实验内容反三角波程序编码:moduledds(f_clk,p,choose,data);〃in put [5:0] p; //in put[1:0] choose; // input f_clk; //output [7:0] data;wire [7:0]data;reg [5:0] addr,address;reg [5:0] i;reg f_out; 端口设定频率控制字波形选择内置晶振in itialbegin i<=0;addr<=0;f_out<=0; endalways @(posedge f_clk) // beginif(i==p) //begini=0;f_out=~f_out;endelsei=i+1;end 利用计数器实现任意分频设定频率控制字pfun ctio n [7:0] romout; //ROM in put[5:0]address;case(address) //0 : romout = 10; //1 : romout = 17;2 : romout = 15;的设定各波形初值的预装入正弦波初值冷乙+jppe=ssajppe £:9l,+jppe=ssajppe :乙!g+jppe=ssajppe :!jppe=ssajppe :o// (asooqo)aseo:l,+jppe=jppe3S|3 gPPE// (8==jppe)j!ui6aq (incQ a6pasod)@sAeM|e uoipunjpua aseopua !xxq,0L = inoiuo」:肿epp//:inoiucu :■9 =i noiucu : oe m = inoiucu : 62 G = inoiucu : 82 ■QZ=inoiucu : LZ ■9Z =inoiucu : 92 :oeinoiucu : 92 :geinoiucu : 陀:geinoiucu : es :oeinoiucu : ZZ■9Z =inoiucu : VZ ■QZ=inoiucu :OS G = inoiucu : 616 = inoiucu : 81■9 =i noiucu : LV ■Q=inoiucu : 91 1: =inoiuo」:9L 1: =inoiuo」:卄1: =inoiuo」:肝1: =inoiuo」■ZV £:=inoiuo」:I4=inoiuo」:0L £=jnoiuoj :6£=jnoiuoj :8 £=jnoiuoj :L © =jnoiuoj :9 £=jnoiuoj :9=jnoiuoj :P ■LV=jnoiuoj :eendcaseendassig n data = romout(address);// en将ROM中对应数据传递输出端口data输出dmodule四、实验截图1.正弦波示意图:(choose=0时的波形数值)2.方波示意图:(choose=1时的波形数值)3.正三角波示意图:(choose=2时的波形数值)五、实验总结通过这次期末实验,更进一步认识了Verilog语言的使用,详细了解了整个设计制作和仿真流程,独立思考并通过一步步的调试,逐步摸索和进一步优化程序最终完成实验,锻炼了逻辑思维能力。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《基于Verilog HDL语言的多功能波形发生器设计》第1页共22页基于Verilog HDL语言的多功能波形发生器设计学生姓名:指导老师:摘要:本文主要探索了应用EDA灵活可重复编程和方便在系统重构的特性,以Verilog HDL为设计语言,将硬件功能以软件设计来描述,提高了产品的集成度,缩短开发周期。
所设计的波形发生器可产生正弦波(sina_wave)、锯齿波(swat_wave)、矩形波(squr_wave)、三角波(trig_wave)四种信号,能够实现信号的转换并且频率可调;设计的频率计以1Hz为基准信号,测量的范围是1Hz—9999Hz,测量的结果以四位十进制的形式输出。
能实现任意波形的输出并且能够测量外来信号的频率,这也是本文的设计思路。
关键词: DDS;;Verilog HDL;EDA;Max+PlusⅡ;波形发生器Abstract:This article explores the application of EDA to facilitate flexible and reprogrammable and reconstruction in the system features to Verilog HDL design language, the hardware functions to software design to describe and improve product integration, shorten the development cycle. Waveform generator designed to produce sine wave (sina_wave), ramp (swat_wave), rectangular wave (squr_wave), triangular wave (trig_wave) four signals, to achieve signal conversion and frequency adjustable; designed to 1Hz frequency counter For the reference signal, measured in the range 1Hz-9999Hz, the measurement results in the form of four decimal output. which is the design idea of this article .Key words: DDS; Verilog HDL;EDA; Max+PlusⅡ; a rbitrary waveform generator目录1 引言 (1)2 课题背景及相关技术 (1)3 理论基础 (2)3.1 Verilog HDL语言概述 (2)3.2 Max+plusII简介 (4)4 EDA多功能波形发生器详细设计 (6)4.1设计思路 (6)4.2任意波形发生器的分块设计 (6)5 任意波形发生器的仿真与实现 (8)5.1指针控制模块的仿真与实现 (8)5.2数字频率计的仿真与实现 (9)5.3系统设计有待提高和改进的地方 (12)6 小结 (13)参考文献 (14)附录 (15)1 引言随着数字电子技术迅猛发展,信号源作为常用的电子产品设计工具,其应满足精度高、速度快、分辨率高等要求。
DDS是从20世纪70年代发展起来继直接频率合成和间接频率合成之后的第三代频率合成技术。
Verilog HDL是一种允许设计者进行各种级别的逻辑设计,进行数字逻辑系统的仿真验证、时序分析、逻辑综合的硬件描述语言。
并采用MAX+PlusⅡ软件进行画图,编译,仿真。
2 课程设计背景及相关技术随着数字电子技术迅猛发展,信号源作为常用的电子产品设计工具,其应满足精度高、速度快、分辨率高等要求。
DDS是从20世纪70年代发展起来继直接频率合成和间接频率合成之后的第三代频率合成技术。
Verilog HDL是一种允许设计者进行各种级别的逻辑设计,进行数字逻辑系统的仿真验证、时序分析、逻辑综合的硬件描述语言。
Quartus Ⅱ6. 0是Altera公司推出的CPLD /FPGA结构化ASIC开发设计软件。
信号发生器(signal generator),又称信号源或振荡器,是一种能在模拟域或数字域中以一定频率产生可复现的精确校准信号的电子测试仪器。
根据输出信号波形的不同,信号发生器可以分为:函数信号发生器(正弦信号发生器、矩形信号发生器、三角波信号发生器等)、脉冲信号发生器、随机信号发生器及任意波形发生器等。
任意波形发生器(Arbitrary Waveform Generator, AWG),是信号发生器的一种,是能够精确产生用户定义的任意波形的电子测试设备。
不同于仅能产生有限简单波形的函数发生器,用户可以对任意波形发生器定义各种不同的复杂可变的波形信号。
根据结构形式,任意波形发生器主要有两种:* 独立控制式任意波形发生器* 总线控制式任意波形发生器任意波形发生器的关键技术是频率合成技术,目前常用任意波形发生器的频率合成技术主要有DDS技术和可变时钟技术。
早期的任意波形发生器仅能输出低频信号,随着数字技术的发展,其输出频率已能达到射频范围。
PLD(Programmable Logic Device)是可编程逻辑器件的总称,PLD基本上可以完成任何数字器件的功能,从高性能CPI到简单集成电路,均可以用PLD实现。
通过传统的原理图输入,或是硬件语言的描述就可以自由地设计具备某种功能的数字系统:利用软件仿真功能,可以检验设计的正确性;利用PLD的在线修改能力,可以在不必改动硬件电路的基础上进行修改设计。
具备设计时间短,PCB面积小,系统的可靠性强等特点。
目前,在通信、自动控制、信息处理等诸多领域发挥着重要的作用。
3 理论基础3.1 Verilog HDL语言概述电子设计自动化(EDA)的关键技术之一是要求用形式化方法来描述数字系统的硬件电路。
Verilog HDL 硬件描述语言在电子设计自动化中扮演着重要的角色,他是EDA 技术研究的重点之一。
Verilog HDL是一种硬件描述语言(HDL:Hardware Discription Language),是一种以文本形式来描述数字系统硬件的结构和行为的语言。
Verilog HDL就是在用途最广泛的C语言的基础上发展起来的一种件描述语言,它是由GDA(Gateway Design Automation)公司的PhilMoorby在1983年末首创的,最初只设计了一个仿真与验证工具,之后又陆续开发了相关的故障模拟与时序分析工具。
1985年Moorby推出它的第三个商用仿真器Verilog-XL,获得了巨大的成功,从而使得Verilog HDL迅速得到推广应用。
1989年CADENCE公司收购了GDA公司,使得VerilogHDL成为了该公司的独家专利。
1990年CADENCE公司公开发表了Verilog HDL,并成立LVI组织以促进Verilog HDL成为IEEE 标准,即IEEE Standard 1364-1995。
用它可以表示逻辑电路图、逻辑表达式,还可以表示数字逻辑系统所完成的逻辑功能。
Verilog HDL的最大特点就是易学易用,如果有C语言的编程经验,可以在一个较短的时间内很快的学习和掌握,因而可以把Verilog HDL内容安排在与ASIC设计等相关课程内部进行讲授,由于HDL语言本身是专门面向硬件与系统设计的,这样的安排可以使学习者同时获得设计实际电路的经验。
与之相比,VHDL的学习要困难一些。
但Verilog HDL较自由的语法,也容易造成初学者犯一些错误,这一点要注意。
下面列出的是Verilog 硬件描述语言的主要能力:(1)基本逻辑门,例如and 、or 和nand 等都内置在语言中。
(2)用户定义原语(UDP )创建的灵活性。
用户定义的原语既可以是组合逻辑原语,也可以是时序逻辑原语。
(3)开关级基本结构模型,例如pmos 和nmos 等也被内置在语言中。
检查。
(5)可采用三种不同方式或混合方式对设计建模。
这些方式包括:行为描述方式—使用过程化结构建模;数据流方式—使用连续赋值语句方式建模;结构化方式—使用门和模块实例语句描述建模。
* Verilog HDL 中有两类数据类型:线网数据类型和寄存器数据类型。
线网类型表示构件间的物理连线,而寄存器类型表示抽象的数据存储元件。
* 能够描述层次设计,可使用模块实例结构描述任何层次。
* 设计的规模可以是任意的;语言不对设计的规模(大小)施加任何限制。
* Verilog HDL 不再是某些公司的专有语言而是IEEE 标准。
* 人和机器都可阅读Verilog 语言,因此它可作为EDA 的工具和设计者之间的交互语言。
* Verilog HDL 语言的描述能力能够通过使用编程语言接口(PLI )机制进一步扩展。
PLI 是允许外部函数访问Verilog 模块内信息、允许设计者与模拟器交互的例程集合。
* 设计能够在多个层次上加以描述,从开关级、门级、寄存器传送级(RTL )到算法级,包括进程和队列级。
* 能够使用内置开关级原语在开关级对设计完整建模。
* 同一语言可用于生成模拟激励和指定测试的验证约束条件,例如输入值的指定。
* Verilog HDL 能够监控模拟验证的执行,即模拟验证执行过程中设计的值能够被监控和显示。
这些值也能够用于与期望值比较,在不匹配的情况下,打印报告消息。
* 在行为级描述中,Verilog HDL 不仅能够在RTL 级上进行设计描述,而且能够在体系结构级描述及其算法级行为上进行设计描述。
* 能够使用门和模块实例化语句在结构级进行结构描述。
* Verilog HDL 的混合方式建模能力,即在一个设计中每个模块均可以在不同设计层次上建模。
* Verilog HDL 还具有内置逻辑函数,例如& (按位与)和| (按位或)。
* 对高级编程语言结构,例如条件语句、情况语句和循环语句,语言中都可以使用。
* 可以显式地对并发和定时进行建模。
* 提供强有力的文件读写能力。
* 语言在特定情况下是非确定性的,即在不同的模拟器上模型可以产生不同的结果;例如,事件队列上的事件顺序在标准中没有定义。
3.2 Max+plusII简介Max+plusII(或写成Maxplus2或MP2) 是Altera公司推出的的第三代PLD开发系统(Altera第四代PLD开发系统被称为:Quartus,主要用于设计6万-100万门的大规模CPLD/FPGA)。
使用MaX+PLUSII的设计者不需精通器件内部的复杂结构。