DDs频率控制计_第1页
DDs频率控制计_第2页
DDs频率控制计_第3页
DDs频率控制计_第4页
DDs频率控制计_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Direct Digital Frequency SynthesizerPage 16 of 27直接数字频率合成器设计(Direct Digital Frequency Synthesizer)作者:张海飞(0104220237)Designed by: Albert Zhang 指导老师:谭雪琴蒋立平Tutor: Xueqin Tan & Liping Jiang 日期:2004-3-4Data: 2004-3-4摘要:本文基J:肖接数字频率合成技术(DDS)的基本原理,允分利用Altera公同的FPGA芯片FLEX10在软件Maxplus II和碘件LT-IV实验箱的平台上完成了

2、 DDS系统 的设计。设计屮允分考虑了正眩西数的対称性和数据的特点进行了篦法的优化设 计,节省了 7/8的系统资源设计完成后得到了频率和初始相位均町以任意改变的 正弦或余弦模拟信号,能提供从128Hz到32KHZ共255个频率点,其分辨率达到 128HZo另外増加了频率相位均可调的三角波,斜坡信号和校准用方波信号,并II 还增加了方便输入输出的辅助电路如按键防抖动和数码管显示等。文中对帑个设 计构架和各子模块以及仿真的结果均有详细的说明。Abstract: On the basis of die tlieory of direct &gital frequency synthesize

3、r(DDS), a DDS system was suscessfully designed on the platfbnii of Maxplus II and LTIV expeiiment chest using the FPGA chip FLEX10 of Altera A brand-new algontlmi was brought forwardconsidemig the symmetry charactenstic of sme fiinction, and then applied to optuiuzing the system which result m the f

4、iee of 刀8 the system resources. And the consequent system could generate either sme or cosine signal with arbitrary phase and frequency which rangmg from 128Hz to 32KHz composed by the gamut of 256 differentfrequency with the resolution of 128Hz. Additionally, the system was enlianced byadding the t

5、nangle signal module , the ranip signal module and the squaie signal module coupled with the penpheral circuits which is to make the mput and outputconvenient e g the module elimmatmg keyshoke quiver and phase-value-displayuig module. Further、the detailed illustration of each sub-module and the simu

6、lating results aie all contained in this paper.!词:r接数字频率介成 现场可编程逻辑门阵刃word: DDS FPGA设计内容频率控制足现代通信技术叩很亟耍的-坏,能够获得宽带(频率控制范国宽)、快速(转 换时间快)、精细(分辨率高)、杂散小(频谱纯)的频率控制信兮一直是通信领域屮的一个匝 耍研究内容。宜接数字频率合成(DDS)技术是从相位概念出发苴接合成所需波形的一种新的 频率合成技术,八有频率分辨率高、频率变换速度快、相位可连续线性变化等优点,在垄 数字信号处理的现代通信频率控制屮已被广泛采用。前,各人芯片制造商相继推出釆用先进CMOS工艺生

7、产的高性能和多功能的专用DDS 芯片,但足在某些场介,专用DDS芯片在控制方式、置频速率等方面与系统的耍求羞距很人。 现场可编程门阵列(FPGA)器件H仃作速度快、集成度高、可靠性高和现场可编程的优点 可以考虑用来设计符合自己需婆的DDS电路就是一个很好的解决方法。该设计的H的是利用Altera的FlexlOklO系列的FPGA芯片结介LT-IV实验箱设计 出DDS系统,满足如卜浚求:其有消零和使能功能,能提供从128Hz到32KHZ共255个频 率点,分辨率达128Hz,L频率相位均为任意町调。另外增加频率相位均可调的三角波,斜 坡信号和校准用方波信号,还要增加方便输入输出的辅助电路如按键防

8、抖动和数码管显示 等。二.设计方案1. DDS基本原理対正弦信号/(0 = sm(2r).沿其相位轴方向,以等最的相位间隔对具进行相位/幅值取样,得到该信兮的抽样序列,并将其用M位二进制数表示,当频率控制字改变时,相 位増嚴发生变化,抽样值的周期随Z而变,从而介成所碍的频率。抽样序列通过数/模转换器形成彊化的正弦波,故后通过低通滤波器¥滑,牛成标准的正弦波。基本的DDS电路工作原理框图,如图1所示。频率预置与调节电路K累加器N位波形S (n)D/A”位'七存储器转换器v4S (t).3albert vipfS cn for detaisDirect Digital Frequ

9、ency SynthesizerPage 16 of 27#albert vipfS cn for detaisDirect Digital Frequency SynthesizerPage 16 of 27fc在该DDS电路纽成上,包括甚准时钟fb、频率预制调节电路、相位累加器、波形存储、D/A转换器。频率预制调节电路用M位二进制预制耍求输出的频率:相位累加器对 代衷频率的M位二进制码进行累加运算,产生后而波形存储器所需的查衷地址:波形存储 器实际上是FPGA芯片屮的RAM, lfl«存仃所盂的波形数据,供查衷使用:读出的数据送 人D/A转换器和低通滤波器平滑输出至示波器观察。该

10、电路的H体匸作过程如卜:在时钟脉冲fc的控制厂柑位累加器将初始相位与频率 控制数据K相加,把相加后的结果送至相位累加器的输人端,相位累加器一方面将在上一时 钟周期作用后产生的新的和位数据反馈到自身的输入端,在卜一个时钟的作用卜继续与频率 控制数据K相加,另一方面将这个值作为取样地址值送人波形存储器,波形存储器根据这个 地址值输出相应的D位二进制波形数据,最后经D / A转换器和低通滤波器将波形数据转换 成所需要的模拟波形。英屮相位累加器在基准时钟的作用F,进行线性相位累加,为相位累加器累加满吊时就 会产生一次溢出,这样就完成了一个周期,这个周期就是DDS信号的频率周期.DDS输出信号的频率与星

11、准时钟频率的关系由卜式给定:#albert vipfS cn for detaisDirect Digital Frequency SynthesizerPage 16 of 27其屮/斤为基准时钟频率,2“为波形心储器的字数,N即为相位累加器的位数,*为频率 控制字。假定基准时钟为131kHz,累加器为8位,k=2,则几=1024Hz由于如丈而邯DDS的频率分辨率定义为:町见,通过设泄相位累加器位数、频率控制字和基准时钟的值,就町以产生任一频率的输出。般因此波形存储器的7数即相位累加器的位数就决定了频率分辨率。位累加器为8位,那么频率分辨率就可以认为是8位。位数越多.分频率V* D/A转换器

12、的作用是把己经合成的正弦波的数字彊转换成模拟駅。正弦邮度员化序列 S (n)经D/A转换厉变成了包络为正眩波的阶梯波S(t)o需要注意的是,频率介成器对D/A 转换器的分辨率有一定的耍求,D/A转换器的分辨率越高,合成的止弦波S (t)台阶数就越 多,输出的波形的楙度也就越高。2.系统整体构架该系统采用top-down自顶向下设计方法,共分三级第一级分为卩q个子系统:正弦余眩发生模块sin,三角波发生模块delta,斜坡信兮发生模块ramp,矩形波发牛模块square,还有其他辅助模块为:累加器模块accuinulater,波形选择模块chooser.按键消扌斗模块smootln计算输入按键值

13、模块counter貝体关系的见卜图。这样就可以通过选择端选择需耍的波形输出,其屮正眩余弦,三角 波,斜坡信巧的设计思想都是j ROM的査表法,苴频率相位均可调。矩形波是通过 VHDL育.接由电路实现的,其作用是作为基准,用J识他信号发生前检测输入CP的频 率和根据D/A的输出电压范用进彳f校准。频率和和位的输入均为按键输入,并J1町以 再数码管显示,非常方便。ACCUHULATERnc jctrvM r i.enn Fl I MSMOOTH5KOOIHSHOOT H?» hw«» nasejxrSMOOTH陀:reieSMOOTHFOOT*E.ia«7.

14、XJ)”:; hasejunKULf"I F li A Z C J4LV5XN'FMA J C°20 AT A ( :RAHP.03:choofefl.jO>7CPretel Icn=> lean=-rr-m v.<A It Phaie.len (::FCAMPNA/Kt1f J »ATA( 1. f3SQUAREcue AR “4Mf44VMT(Q 6,COUNTERmeg lli.oxp.fl gg功COUNTER.Kfe?:/et43CHOOFRQtmfjurG.jD第:级和第三级内容见各子模块设计的部分。3.各子模块的设计与仿真累

15、加器模块accumulaterACCUMULATER:KI 7 G】neaetsomC 日 0 enelkK基本功能时按照频率控制字k的步长在cp的控制卜产生査表地址1设仃复位端reset 和使能端en,整个系统的复位和使能正是通过它来控制的。其HDL代码如F:-accmnulaterlibrary ieee;use ieee.std_logic_l 164.all;use ieee.std_logic_unsigned.all:entity accmnulater isport( k:in std_logic_vector(7 downto 0); -frequency controlres

16、et:in stdjogic;en :in std_logic;elk :m std_logic;sum :out std_logic_vector(9 downto 0)-addiess);end accumulater;arcliitectiire behave of acciunulater is signal temp: std_logic_vector(9 dcnvnto 0); begmprocessbeei en<=(otliers=>,0,);elsif( clkvent and clk=T) then ifCen-T) then temp<=temp+k;e

17、nd if;end if; sum<=temp;end process;end behave;正弦余弦发生模块MH这样一个事实,宙正弦信号只要经过90°相移便可得到余眩信号,J況只需耍i殳计出相位在0 360°町以任意变化的正弦信号即叭这样的一个模块如下aedd rX 9 O 3 0 J d at 7 - 0 J cl Ksum9.0匚hase90elk :其具体实现如1FHtSE.tlOBEKoft倉t j1C41 phaseadder是川来产牛til移的,即将由如前所述的累加器accumulater产牛的地址 码加上相移地址码(町以山输入端phase9.O來控制相

18、移的人小)。其"VHDL代码如卜: 一 phaseadderlibrary7use ieee.std_logic_l 164.all;use 1eee.std_logic_uns1gned.all;entity pliase_adder isport丿( onginal:in std_logic_vector(9 downto 0);phase :in std_logic_vector(9 downto 0);-phase control result :out std_logic_vector(9 downto 0)-addiess);end phase_adder;archite

19、cture behave of phase_adder is begmprocess(phase,onginal)begmresult<=ongmal+phase; end process;end behave;If I* my_mux是用来选择此时的输出是没冇相移的信号还是已经有相移的信兮,可以看出my mux 一个输入端是接在phase_adder后面的这一路就是产生了相移的信号, my_mux另端是13接接在累加器的输出端的,其选择端switch接的是高速的elk信 值得注意的是这个时钟信号的频率和公式-k中的/浪是不一样的,由J:只有耍等到switch选通该路是才能输出,所以公式

20、中的/斤是所接elk信号频率的一半。这 样就可以同时输出两路信号,这两路信号是共用后续电路的,包括地址转换器convertor , 波形存储器rom,数期转换器data convenor以及外闌的D/A转换器和低通滤波器。其实上述过程就相当J:对后续电路皿时分复用,节省了 1/2的系统资源。It my_mux的VHDL代码如卜 _my_mux library ieee;use leee std_logic_l 164.all; use leee.std_logic_unsigned all;entity my_mux is7albert vipfS cn for detaisDirect Di

21、gital Frequency SynthesizerPage 16 of 27a:in std_logic_vector(9 downto 0);b:in std_logic_vector(9 doxxnto 0);swithch: in std logic;); end my_mux;ogic_vector(9 downto 0)aichitectiire behave of my_mux is beginprocess(a,b,swithch)beginif(swithch=,0') thendata(9 downto 0)<=a(9 downto 0); elsedata

22、(9 downto 0)<=b(9 downto 0); end if;end process; end behave; 又充分考虑到了 sin函数的对称性,rom中存的是sin的0。一90°波形文件,由J受到D/A转换器的限制.其函数值只能取8位,从0到255。Rom是2k的,所以0°-90°内共仃256个采样点,相当J;一个周期内仃1024个采样点。 产生波形文件* mif的C卄源程序如下/generate the file used for Maxplus II*/ #include<iostieaiii.li>#mclude<fst

23、ream.h>#include<math h>void inam()double pi=3.141593; double step=pi*2/256;ofstieam outfile;outfile.open(,tsm.mif,);outfile«wMaxplus Memory Imtiallization Filen«endl; outfile«Hsin.mif,«endl;outfile<<MTDTH=8;H<<endl; outfile«MDEPTH=256;M«endl; outfil

24、e«HADDRESS_RADIX=HEX;H«endl; outfile<<t,DATA_RADIX=DEC;t,«endl«endl; outfile«"CONTENT BEGIN”vvendl;outfit2*255*0.5)«M;,«endl;for(mt i=0;i<256;i+)然而这样的波形数据只泉0'-90。的,其他部分的值必须由0°-903的值经过转换得到, 厂、这样解决的。地址字address9.O我设计的是十位的,其中低八位是真实的rom地址,正好如前所述的2

25、56个,最高两位是控制字,当次高位为0时对地址字的低八位不作处理,当次高位为1时,将地址子的低八位取反这就相当J 90°-180c和270°-360°时反过来读rom,这是符合sin歯数的对称性的。 这一部分是由convertor模块实现的,其VHDL代码如F-convertorlibrary ieee;use ieee.std_logic_l 164.all; use leee. std_logic_unsigned. all;entity convertor is port(onginal_addr :in std_logic_vector(9 downto

26、0); addiess:out std_logic_vector(7 downto 0);data_convert :out std_logic);end convertor;aichitectiire behave of convertor is begmprocess(original_addr)beginif(oiigmal_addr(8)=T) then address(7 downto 0)<=not ongmal_addr(7 downto 0);elseaddress(7 downto 0)<=onginal_addr(7 downto 0);end if;data_

27、convert<=onginal_addi(9);end process;end behave;当最高位为0时对rom中读出来的数据不需要做处理,当最高位为1时,将读出的数 据取反。这相当于在180° 360°时将rom中读出的数据取反,这也是符合sin函数对称性的。 这-部分是由data_convertor模块实现的,其VHDL代码如卜 library ieee;use ieee.std_logic_l 164.all;use ieee.std_logic_unsigned.alLentity dataconvertor isportrom:in std_logic

28、_vector(7 downto 0);data convert : in std_logic;data:out std_logic_vector(7 downto 0);end dataconvertor;architecture behave of data_convertor isbeginprocess(data_convert,rom)beginif(data_convert=T) thendata(7 downto 0)<=not rom(7 downto 0);elsedata(7 doxvnto 0)<=rom(7 downto 0):end if;end proc

29、ess;end behave; 这样就完成了整个周期的釆样,这样做的好处时显而易见的,只存储了 1/4的波形数据, 节ftT 3/4的系统资源。再结介如前所述的时分复用节省了 1/2的系统资源。可见这种 算法共节省了 7/8的系统资源,十分可观,否则是无论如何也无法在一个FPGA芯片中 达到这样的频率精度的。通过Maxplus II仿貞,导出* tbl文件,通过C+程序extract_tbl.cpp提取其中的仿真数 据,生成ttxt文件,再导入Matlab绘出离散曲线图如K汝图包含了一路没仃相移的 sin信匕和一路仃22.5°相移的信兮。 Ji?"的extract tbl

30、cpp程序十分冇用,在仿真过程中起到了将Maxplus II的电路仿真功 能和Matlab强人的数据可视化功能结合起來的作用。因为我们知道Maxplus D的仿真 结果很遗憾的只能是数据,没仃数据町视化功能.这给我们对仿其数据的分析带來到了 很大的困难,特别数据吊很人的时候,几乎是无法通过观察数据得出结论的,很多时候 采用的是通过破件來实现的如卜我到FPGA芯片通过示波器來观察,由此带来的麻烦 町想而知,除非有像COSSAP这样功能强人的仿宾软件。然而Matlab强人的图形可视 化功能是众所周知的,我就想利用Matlab加强Maxplus II的仿貞功能,Z间的接I I llj extract

31、jbl.exe提供,英作用为提取*tbl«p的冇用数据送到Matlabo K源程序如下/*This code is to extract the data which is usefill from the *tbl file created by MAXPLUS II A sample of *tbl file is as follows:%IAXr1us n 9.21 Date: 02/21/2004 00:%100%k%0 0> 0 04 = 00610.0> 1 04 = 00610.1> 1 04 = 013/#mclude<iostieam h&g

32、t;#mclude<fstream.h>#include<stdlib.h> void niam()e,ios: :m ios: :nocreate);openmg source file!,f«endl;char soui ce_file256 ,aim_file256; cout«MInput the source file name:11; cm»soiirce file: lfstieam in if(!infile) cout«MInput the aim file name:”; cm»aini_file;o

33、fstieam outfile(aun_filejos: :out); if(!outfile)cout«nEiTor opening aun file!,f«endl; cin.getO;exit(l); char cha;int buffei-O;int digital=3; /supposing the niaximiun digital of the data is 3; mt count=0,while(mfile»cha)if(clia%*) /skip the comment lines while(mfile»cha) if(cha=,%

34、*) break;continue;continue;outfile«buflfer«endl; break;liifile.closeO;outfile.closeO;cout«MSuccessfiilly extracting data?n«endl;三角波delta的发生模块sum9.O phase9 .0 elkdeltaedd r*C 0 pH a & e3 QI cd at a 7 QJ13albert vipfS cn for detaisDirect Digital Frequency SynthesizerPage 16 of

35、27三角波的发生模块和疋弦余弦发生模块的基本思想是样的,同样AEJ三角波的对称性只盂存0° - 90°的波形数据,其貝体实现如卜其中rom中工成波形文件的C卄源程序和正弦余弦的基本相同,就不附在此处了。 !谕蟻乡余盅矗模块不一样的地方为为地址码address9.O的最高位为0时对地址字的低八位不作处理,肖次高位为1时, (工二睥址子的低九位取反、弦就相当在1809 -3605时反过來读rom,这是符合三角波的对称性的。delta_convertor模块的71DL实现如卜-deltaconvertorlibraiy ieee;use leee. std_logic_ 1164

36、. all;use leee. std_logic_unsigned. all;entity delta_conx-ertor isport (onginal_addr :in std_logic_vector(9 downto 0); addiess:out std_logic_vector(8 downto 0);end delta_convertor;aichitectiire behave of delta_convertor isbegmprocess(onginal_addr)beginif(onginal_addi (9)=t 1thenaddress(8 downto 0)&l

37、t;=iiot ongmal_addr(8 downto 0); elseaddress(8 downto 0)<=ongmal_addr(8 downto 0);end if; end process; end behave;当次高位为0时对rom中读出来的数据不需要做处理,当最高位为1时,将读出的数 据加上128o这相当丁在90°-180°和270° -360°时对数据数据处理,这也是符介三角波的特性的。这一部分是由 alue convertor模块实现的,其VHDL代码如卜 一 valueconvertorlibrary ieee;all;e

38、ntityromdata convertdatause leee std_logic_luse ieee.std_logiue convertor;:in std_logic_vector(7 douuto 0); :in std_logic;:out std_logic_vector(7 downto 0)architecture behave of value_convertor is beginprocess(data_convert,rom)beginif(data_convert=T) thendata(7 downto 0)<=rom(7 downto 0)十"10

39、000000" add 128 elsedata(7 downto 0)<=rom(7 downto 0):end if;end process;end behave;#albert vipfS cn for detaisDirect Digital Frequency SynthesizerPage 16 of 27 通过Maxplus II仿VHj*.tbl文件,通过CH程序extiactjbl.cpp捉収其中的仿冀数 据,生成* txt文件,再导入Matlab绘出离散曲线图如K该图包介了一路没冇相移的sin信号和一路有22.5°相移的信号。300 I斜坡信号ra

40、mp发生模块sum9.0acdcdrC S . . G phase9.(elkpKaoet S 0 da*ta 7 oik斜坡信号发牛模块和正弦余弦发牛模块的基本思想是一样的,同样基斜坡信号的特性只需存储0° 90°的波形数据,其具体实现如卜17albert vipfS cn for detaisDirect Digital Frequency SynthesizePage # of 27albert vipfS cn for detaisDirect Digital Frequency SynthesizePage 19 of 27 :其中rom中生成波形文件的C卄源程序

41、和止弦余弦的基本相同.就不附在此处了。K中与正弦余眩发生模块不一样的为数据转换模块ramp_convertoi Jt功能如N当地址码address9.O的最高两位为00时対rom屮读出的数据不作处理; 当地址码address9 .0的垠高两位为01时对rom *|1 ii出的数据加12& 当地址码address9.O的瑕高两位为10时对rom中读出的数据加256;为地址码addi*ess9. 0的最高两位为11时对rom中读出的数据加384; 其XUDL代側如A-ramp_con-ertor libraiy ieee;leee std_logic_l 164.all;eee.std_l

42、ogic_unsigned all;entity ramp_convertor is portrom:in std_logic_vector(7 downto 0);convert:in std_logic_vector(l downto 0);data:out std logic vector(7 downro 0));end rainp_coiivertor;architecture behave of rampconvertor is begmwith convert selectdata(7 downto 0)<=rom(7 downto 0)when H00H,end beha

43、ve;rom(7 downto 0)+T 000000”rom(7 downto 0)+” 10000000”rom(7 downto 0)+T 1000000”when n0rwhen M10M,when others;albert vipfS cn for detaisDirect Digital Frequency SynthesizerPage 27 of 27 通过Maxplus II仿貞"导ilj*.tbl文件,通过CH程序extiactjbl.cpp捉収其屮的仿真数据,生成* txt文件,再导入Matlab绘出离散曲线图如下.该图包含了一路没有相移的sin信号和一路有2

44、2.5°相移的信号。30002004006008001000120014001600方波发生模块SQUAREcik aC 7-e J72其功能为产生满幅值的方波,即D/A输出的垠人幅度,用J:校准,正因为是用校准的, 英频率和相位均是不可调的,频率是输入时钟的频率,初始相位为0。 JtVHDL代码如下VHDL code of square fiinction generaterthe schematic representation of square function is shown as follows:u library ieee;use leee std_logic_l 1

45、64.all;use ieee.std_logic_unsigned.all; entity squaie isprocess(clk)variable ent: integer;beginif(clk'event and elk-I1) then if(cnt<255) then cnt:=cnt+l;elsecnt:=O; flag<=not flag;end if;end if;end process;process(clk,flag)begin if(clk*event and elk-T) then if(flag=T) then q<=,llllllir,

46、;else q<=(otliers=>,0,);end if;end if;end process;end behave;21albert vipfS cn for detaisDirect Digital Frequency SynthesizerPage 27 of 27 通过Maxplus II仿真,导Llj*.tbl文件,通过CH程序extiactjbl.cpp捉収其中的仿真数 据,生成ttxt文件,再导入Matlab绘出离散曲线图如下。05001 000150020002500#albert vipfS cn for detaisDirect Digital Freque

47、ncy SynthesizerPage 27 of 27#albert vipfS cn for detaisDirect Digital Frequency SynthesizerPage 27 of 27波形选择模块CHOOSERDC7OJCHOOSE【1.T7ADATRC70】#albert vipfS cn for detaisDirect Digital Frequency SynthesizerPage 27 of 27#albert vipfS cn for detaisDirect Digital Frequency SynthesizerPage 27 of 27It

48、4;*功能为选择输出波形。 -chooser library* ieee;use ieee.std_logic_1164.all;use ieee.stdjogic_unsigned.all;entity chooser is port(in std_logic_vector(7 downto 0);:m std_logic_vector(7 downto 0);ac:m std_logic_vector(7 downto 0);d:m std_logic_vector(7 doxxnto 0);choose : in std_logic_vector(l downto 0); data:ou

49、t std_logic_vector(7 downto 0);end chooser;architecture behave of chooser isbegmwith choose selectdata(7 downto 0)<=a(7 downto 0) b(7 downto 0) c(7 downto 0) d(7 downto 0)end behave;when H00H,when M0r when TO役 when others;7 0H基本功能为消除按键的抖动使得一次按键只产生一个有效输入信号。设计原理为,当 按键(此处为a)为高电平时在一个时钟信号(scan,此处用的是51

50、2Hz)的控制卜开 始计数,当计到111即7时产生输出高电平,再计数时计数器溢出,产生输出低电平,这样就产生了一个cp (此处为b)也就是消抖以后的cp触发信号。为然如果按键时间 足够长的话会触发两次,就像计算机的键盘按着不放会一肖触发的,这也是符合人们的 习惯的。It VHDL代码如下-smoothlibrary* ieee;use ieee.std_logic_1164.all;use ieee.stdjogic_unsigned.all; entity smooth is( a :in stdlogic; scan:iii stdjogic; b :out std_logic);end

51、smooth;architecture behave of smooth issignal count: std_logic_vector(2 downto 0);23albert vipfS cn for detaisDirect Digital Frequency SynthesizerPage 27 of 27begmprocess(scan)begm if(scan*event and scan=flf) thenif(a-T) thencount<=count+H001M;b<=comit(2) and count(l) and count(O); elsecount&l

52、t;=(others=>,0,);end if;end if;end process;end behave;其仿真波形如、:代表按健£2, scan代衣时钟信弓,b代表消抖以后的按键信号由图易见该模块完 矽雜期的消掛功便:Valje:49: Ons 口100.0ns3J0.0rs3C0.0ns OO.Ons 50DOnsjWLTOirm读取按键值模块GCOOns ZOJOns 9(D0ns SJO.Ons 11os 1 eancd i &_hunt 3 0 JKuncd 13 0 Jt «n1s one3.e joneoouint【9 0 COUNTER氏功能

53、为读取频率控制字的百,十,个位和相位控制字的百,十,个位,然后转化为二 进制数据送入累加器,并且将百,十,个位分别送数码管显示,这样数码骨上就可以消 楚的看出相移值。It AUDL实现代码如H:-counterlibrary ieee;use ieee.std_logic_l 164.all;use ieee.stdjogic_unsigned.all;entity counter isclear:instd logic ;himinstdjogic ;ten:instd logic ;oneinstd_logic ;dis_hiin:bufier std_logic_vector(3 dow

54、nto 0);dis_ten:buffer std_logic_vector(3 downto 0);dis_one:buffer std_logic_vector(3 downto 0); count :out std_logic_vector(9 downto 0);end counter;architecture behave of counter issignal temp_hun std_logic_vector(9 dowuto 0); signal temp_ten: std_logic_vector(9 downto 0);signal temp_one: std_logic_

55、vector(9 downto 0);begin processQnm) beginif(clear='O') then temp_hun<=(others=>,0,); dis_hun<=(others=>tO,);elsifQiunvent and hun=°l)thentemp_hun(9 dovnto 0)<=temp_huii(9 doxxnto 0)+M0100011100° dis_hun(3 downto 0)<=dis_hun(3 downto 0)+M000rf;end if;end process;process(ten)beginif(clear=*Or) thentemp_ten<=(o

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论