周期可调的多波形发生器.doc_第1页
周期可调的多波形发生器.doc_第2页
周期可调的多波形发生器.doc_第3页
周期可调的多波形发生器.doc_第4页
周期可调的多波形发生器.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

EDA技术实用教程实验报告实验名称:周期可调的多波形发生器系 别:X X X专 业:电子信息工程姓 名:X X X学 号:XXXXXXX2010.12.2周期可调的多波形发生器1、实验目的 熟悉MAX+plus的VHDL文本设计流程的全过程,学会用可编程逻辑器件设计制作一个波形发生器,该波形发生器能产生正弦波、方波、三角波等波形。2、实验要求(1)具有产生正弦波、方波、三角波3种周期性波形的功能。(2)用开关输入编辑生成上述3中波形的线性组合波形。(3)输出波形的频率范围1001KHz,频率可调。3、分析:(1) 产生正弦波,是通过预先计算出正弦波表,然后查表输出实现的(此处一个周期正弦波取64点)。(2) 产生方波,是通过交替送出全0和全1,给以适当的延时实现的。(3) 产生三角波,是通过由全0不断加同一个数,到全1之后再不断减同一个数来实现的。4、所用器件:EP1K30QC208-3和EPC2LC20以及D/A转换芯片。5、流程图6、各模块功能 模块CHUZHI提供初值,供下一个模块FANA分频时用,通过不同的初值,是由输入a决定的。 library ieee;use ieee.std_logic_1164.all;entity chuzhi isport(a:in std_logic_vector(3 downto 0); q:out integer range 0 to 312);end chuzhi;architecture chu_arc of chuzhi isbeginprocess(a)begincase a iswhen 0001 =qqqqqqqqqqnull;end case;end process;end chu_arc;模块FANA的功能是将前一模块CHUZHI送来的初值对时钟进行分频,得到不同的工作频率,从而调节波形频率。 library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity fana isport(a:in integer range 0 to 312; clk:in std_logic; q:out std_logic);end fana;architecture fan_arc of fana isbeginprocess(clk)variable b,d:std_logic;variable c:integer range 0 to 312;beginif clkevent and clk=1thenif b=0thenc:=a-1;b:=1;elseif c=1 thenb:=0;d:=not d;elsec:=c-1;end if;end if;end if;q=d;end process;end fan_arc;模块SQUARE的功能是产生方波。 library ieee;use ieee.std_logic_1164.all;entity square isport(clk,clr:in std_logic; q:out integer range 0 to 255);end square;architecture sq_arc of square issignal a:bit;beginprocess(clk,clr)variable cnt:integer;beginif clr=0thena=0;elsif clkevent and clk=1thenif cnt31 thencnt:=cnt+1;elsecnt:=0;a=not a;end if;end if;end process;process(clk,a)beginif clkevent and clk=1thenif a=1thenq=255;elseq=0;end if;end if;end process;end sq_arc;方波的功能仿真:模块DELTA的功能是产生三角波。library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity delta isport(clk,reset:in std_logic; q:out std_logic_vector(7 downto 0);end delta;architecture delta_arc of delta isbeginprocess(clk,reset)variable tmp:std_logic_vector(7 downto 0);variable a:std_logic;beginif reset=0thentmp:=00000000;elsif clkevent and clk=1thenif a=0thenif tmp=11111000thentmp:=11111111;a:=1;elsetmp:=tmp+8;end if;elseif tmp=00000111thentmp:=00000000;a:=0;elsetmp:=tmp-8;end if;end if;end if;q=tmp;end process;end delta_arc;三角波的功能仿真:模块SIN功能是产生正弦波library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity sin isport(clk,clr:in std_logic; d:out integer range 0 to 255);end sin;architecture sin_arc of sin isbeginprocess(clk,clr)variable tmp:integer range 0 to 63;begin if clr=0thendddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddnull;end case;end if;end process;end sin_arc;正弦波功能仿真:模块CHPRO31的功能是根据外部的开工控制,输出三种波形。library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity chpro31 isport(dlt,sqr,sin:in std_logic; dlta,sqra,sina:in std_logic_vector(7 downto 0); q:out std_logic_vector(7 downto 0);end chpro31;architecture ch_arc of chpro31 isbeginprocess(dlt,dlta,sqr,sqra,sin,sina)variable tmp:std_logic_vector(2 downto 0);variable a,b:std_logic_vector(9 downto 0);variable c,d,e:std_logic_vector(9 downto 0);begintmp:=dlt&sqr&sin;case tmp iswhen 100=qqqa:=00&dlta+sqra;qa:=00&dlta+sina;qa:=00&sqra+sina;qa:=00&dlta+sqra;b:=a+sina;c:=00&b(9 downto 2);d:=0000&a(9 downto 4);e:=000000&a(9 downto 6);a:=c+d;b:=a+e;qnull;end case;end process;e

温馨提示

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

评论

0/150

提交评论