最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

FPGA波形发生器实训报告

来源:动视网 责编:小OO 时间:2025-10-08 00:05:14
文档

FPGA波形发生器实训报告

JIANGSUUNIVERSITYOFTECHNOLOGYFPGA综合训练报告题目:基于FPGA的波形生成器专业:电子信息工程__班级:11电子2姓名:小龙人学号:12311222_指导教师:___陈海忠_____时间:2015年9月__1基于DDS技术的信号发生器设计--------------------------------------------------------21.1功能要求--------------------------------------------------
推荐度:
导读JIANGSUUNIVERSITYOFTECHNOLOGYFPGA综合训练报告题目:基于FPGA的波形生成器专业:电子信息工程__班级:11电子2姓名:小龙人学号:12311222_指导教师:___陈海忠_____时间:2015年9月__1基于DDS技术的信号发生器设计--------------------------------------------------------21.1功能要求--------------------------------------------------


                    JIANGSU   UNIVERSITY   OF   TECHNOLOGY

FPGA综合训练报告

题    目: 基于FPGA的波形生成器 

专    业:     电子信息工程__       

班    级:        11电子2          

姓    名:         小龙人           

学    号:       12311222_          

指导教师:      ___陈海忠  ___ __  

时    间:        2015年9月  __    

1基于DDS技术的信号发生器设计--------------------------------------------------------2

1.1 功能要求------------------------------------------------------------------------------------2

1.2 整体设计------------------------------------------------------------------------------------2

1.3 DDS技术的基本原理---------------------------------------------------------------------3

2 FPGA硬件系统设计------------------------------------------------------------------------4

2.1 功能要求 ----------------------------------------------------------------------------------4

2.2  FPGA硬件系统组成--------------------------------------------------------------------5

2.3  FPGA最小系统简介--------------------------------------------------------------------6

2.4  FPGA外围电路设计--------------------------------------------------------------------7

2.5 程序设计------------------------------------------------------------------------------------8

2.5.1 锯齿波产生程序设计及仿真----------------------------------------------------------9

2.5.2 三角波产生程序设计及仿真---------------------------------------------------------10

2.5.3 正弦波产生程序设计及仿真---------------------------------------------------------11

2.5.4 顶层程序设计及仿真-----------------------------------------------------------------12

2.5.5分频程序及作用------------------------------------------------------------------------13

2.6 硬件测试及结果分析-------------------------------------------------------------------14

3设计分析与总结----------------------------------------------------------------------------15

3.1 故障分析----------------------------------------------------------------------------------15

3.3 设计总结及感想-------------------------------------------------------------------------15

4 参考文献------------------------------------------------------------------------------------16

5 附录------------------------------------------------------------------------------------------17

1基于DDS技术的信号发生器设计

1.1 功能要求

具有产生正弦波、三角波、锯齿波3种周期性波形的功能。

1.2 整体设计

如图1.1所示:

图1.1

相位累加器的作用:在时钟的作用下,进行相位累加。

波形存储器的作用:进行波形的相位—幅值转换。

频率预置与调节电路的作用:实现频率控制量的输入。

D/A转换器的作用:把已经合成的正弦波的数字量转换成模拟量。滤除生成的阶梯形正弦波中的高频成分,将其变成光滑的正弦波。 

如图1.2所示:

图1.2

1.3 DDS技术的基本原理

DDS这种结构主要由相位累加器、 相位调制器、 波形 ROM 查找表、 D/ A 构成。其中相位累加器、 相位调制器、 波形 ROM 查找表是 DDS 结构中的数字部分 ,由于具有数控频率合成的功能 ,又合称为 NCO[2]。

它的工作原理是:将要产生的波形数据存入波形存储器 ,然后在参考时钟的作用下 ,对输入的频率数据进行累加 ,并且将累加器的输出一部分作为读取波形存储器的地址 ,将读出的波形数据经D/A转换为相应的模拟电压信号。本研究的重点就是用VHDL来实现DDS的功能 ,能够达到高精度的输出 ,同时标准波形数据生成存放在 ROM 中 ,可以简化运算过程 ,提高运算速度 ,加快反应时间。

2 FPGA硬件系统设计

2.1 功能要求

在本设计中,利用FPGA,采用EDA(Electronic Design Automation)中自顶向下(top-to-down)的设计方法,选用基于相位累加器的直接数字合成/ DDS技术来完成数字信号发生器各功能模块的设计。

本设计主要通过VHDL语言实现频率控制、波形控制、 波形数据的提取、 波形的产生工作。其中 ,波形数据运用VHDL语言编写 。控制部分主要采用产生高低电平的拨码开关控制。程序下载到 FPGA 上实现 ,经过D/ A 输出波形。并通过Altera公司QuartusII9.0软件进行波形的仿真,从而完成整个设计。

本设计的任务是设计一个基于FPGA的数字信号发生器,根据任务书要求必须达到以下要求:

1.利用EDA开发系统、Quartus II 9.0软件实现数字信号发生器的设计;

2.根据整体电路的工作原理,完成各个子模块的设计及实现;

3.对数字信号发生器完成VHDL语言描述;

4.该数字信号发生器能够产生正弦波、方波、三角波、锯齿波信号;

5.产生的波形信号频率和幅度可通过按键进行调节;

6.用按键调节实现各种波形的转换。

2.2  FPGA最小系统简介

本设计使用是FPGA芯片,其典型逻辑门数(包括逻辑门和RAM)为50000门,最大可用系统门数为116000门,逻辑单元(Logic elements)为2880个,逻辑阵列模块(Logic array blocks)为360个,嵌入式阵列模块(Embedded array blocks)为10个,RAM总容量为20480字节,用户可用的I/O引脚最多为310个。芯片的工作电压为+5V。其内部结构如图2.1所示。

图2.1 芯片结构图

通常情况下在硬件调试的过程中一般使用下载电缆进行下载,而当调试完成以后要用配置芯片对FPGA进行配置。配置芯片在每次系统上电以后自动将配置文件加载到FPGA中形成电路。

2.3  FPGA硬件系统组成

该数字信号发生器系统主要由输入部分、FPGA部分、D/A转换部分、频率、幅值调节和波形转换部分组成。

原理图如图2.2所示。

图2.2 数字信号发生器系统原理图

2.4  FPGA外围电路设计

D/A转换器电路的设计:从波形RAM中读出的幅度量化数据还只是一个数字信号,要得到最后的输出信号必须经过数模转换器。因此在波形RAM之后要设计一个D/A转换电路。

数模(D/A)转换电路的作用是把已经合成的波形幅值的数字量转换成模拟量,其速度和特性直接影响整个系统的性能。D/A转换器件的首要特性要求是高速,其次是转换位数,本设计中选用8位的D/A芯片DAC0832。波形幅度量化序列经D/A转换后成为阶梯波。频率合成器对D/A转换器的分辨率有一定的要求,D/A转换器的分辨率越高,合成的波形台阶数就越多输出的波形的精度也就越高。D/A的输出用电压形式表示一般应为:

式中D为D/A的输入数据值,N为D/AC的位数,即通常所指的D/AC的分辨率,为输入D/A的参考电压。D/A转换电路的设计首先是要选择一款合适的D/A转换芯片。D/A转换芯片种类繁多。选择D/A转换芯片要根据很多因素来确定,最主要的就是要考虑字长和转换速度。本设计采用DAC0832 作为D/A 转换器件,其具有数字量的输入锁存功能,DAC0832芯片的输出通过放大器OP07,即可用示波器观察。100KΩ的电位器在+5V和0V电压间为DAC0832提供参考电压。D/A转换电路的原理图如图2.3所示:

图2.3 D/A转换电路的原理图

2.5  程序设计

mif文件生成

使用C程序:

#include

#include "math.h"

main()

{int i;float s;

for(i=0;i<1024;i++)

    { s = sin(atan(1)*8*i/1024);

      printf("%d : %d;\\n",i,(int)((s+1)*1023/2));

    }

}

生成该mif文件后需要创建该rom对应的eda程序,即创建对应的.vhd文件,创建完成后要注意程序内访问rom文件的地址是否正确。同时对这vhd文件另存为一个新的工程,再编译,生成对应的bsf。

2.5.1 锯齿波产生程序设计及仿真

锯齿波模块

锯齿波生成程序如下:

Q <= SUB_WIRE0(9 DOWNTO 0);

    ALTSYNCRAM_COMPONENT : ALTSYNCRAM

    GENERIC MAP (

    PORT MAP (

     CLOCK0 => CLOCK,

     ADDRESS_A => ADDRESS,

     Q_A => SUB_WIRE0

    );

END SYN;

程序详见附录

仿真图形如图2.4.1:

图2.4.1

2.5.2 三角波产生程序设计及仿真

三角波模块

三角波产生程序如下:

    PORT MAP (

     CLOCK0 => CLOCK,

     ADDRESS_A => ADDRESS,

     Q_A => SUB_WIRE0

    );

END SYN;

程序详见附录

仿真图形如图2.4.2:

图2.4.2

2.5.3 正弦波产生程序设计及仿真

正弦波模块

正弦波程序如下:

BEGIN

Q <= SUB_WIRE0(9 DOWNTO 0);

    ALTSYNCRAM_COMPONENT : ALTSYNCRAM

    GENERIC MAP (

     CLOCK_ENABLE_INPUT_A => "BYPASS

        CLOCK_ENABLE_OUTPUT_A => "BYPASS"

程序详见附录

    仿真图形如图2.4.3:

图2.4.3

2.5.4 顶层程序设计及仿真

(1) 程序的功能

整合所有的子程序,产生所需要的波形

(2) 结构图或实体图

(3) 顶层程序(输出方案)

U1:ADDER32B PORT MAP(A=>F32B,B=>D32B,S=>DIN32B);

U2:REG32B PORT MAP(DOUT=>D32B,DIN=>DIN32B,LOAD=>CLK1);

U3:ADDER10B PORT MAP(A=>P10B,B=>D32B(31 DOWNTO 22),S=>LIN10B);

U4:REG10B PORT MAP(DOUT=>SIN10B,DIN=>LIN10B,LOAD=>CLK1);

U5:SIN_ROM PORT MAP(ADDRESS=>SIN10B,Q=>V1,CLOCK=>CLK1);

U6:SJBROM PORT MAP(ADDRESS=>SIN10B,Q=>V2,CLOCK=>CLK1);

U7:JCBROM PORT MAP(ADDRESS=>SIN10B,Q=>V3,CLOCK=>CLK1);

U8:XZQ PORT MAP(SEL1=>SEL,D1=>V1,D2=>V2,D3=>V3,Q=>FOUT);

U9:FPQ PORT MAP(INCLK=>CLK,OUTCLK=>CLK1);

END ;

程序详见附录

(4) 仿真波形及分析

2.5.5 分频程序及作用

(1)程序

LIBRARY IEEE;

USE IEEE.STD_LOGIC_11.ALL;

ENTITY ONEMHZ IS

PORT( CLKIN:IN STD_LOGIC; --时钟信号输入

CLKOUT:OUT STD_LOGIC); --时钟信号输出

END ONEMHZ;

ARCHITECTURE  ONEMHZ OF ONEMHZ IS

SIGNAL DATA:INTEGER RANGE 0 TO 149;

SIGNAL Q:STD_LOGIC;

BEGIN

PROCESS(CLKIN)

BEGIN

IF RISING_EDGE(CLKIN) THEN

IF(DATA=50) THEN --此句为你想要的分频比,DATA=0,1,2,3,4.......9的分频比为1,2,3,,10

DATA<=0;

Q<=NOT Q;

ELSE

DATA<=DATA+1;

END IF;

END IF;

CLKOUT<=Q;

END PROCESS;

END ONEMHZ;

程序详见附录

(2)作用

由于FPGA提供的频率为50MHz,在不加处理的情况下,DAC无法分辨,且调频无法实现。

(3)频率区间

先对其500分频,故而为50MHz/500

由于有公式: DAC内N=10;

故;在

所能产生的各个频率包括

97.65*(000001B~111111B)Hz

2.5 硬件测试及结果分析

通过杜邦线接高低电平于FPGA,频率控制与相位控制接0上电,进行调试。

可以产生正弦、锯齿、三角波,但是在放大后,图形不光滑,有许多尖刺出现。接上滤波后,大为缓解。

3设计分析与总结

3.1 故障分析

设计过程中出现的故障分析

故障一:

(1)现象:只能产生一种波形

原因分析:FPGA芯片烧录错误、引脚使用错误。

(2)现象:波形不光滑。

      原因分析:没有接滤波,波形为直接合成,接上滤波后大为缓解。

3.2功能分析

采用杜邦线来选择波形,01是正弦波,10是三角波,11锯齿波。(1为高电平,0接地)

3.3 设计总结及感想

在这里感谢指导老师给我耐心的指导,在这次设计期间,碰到许多专业方面的难题,都一一予以解答,特别在教学繁忙的情况下,还为我们提供了许多宝贵的资料和意见,对我们进行了详细的分析,使我们更加顺利地完成此次课程设计。通过这一个多月的时间,使我学到许多知识,明白了许多以前上课时无法理解的知识,还积累了一些较简单的问题解决方案。与此同时也感谢同组做课题设计的同学,在设计过程中,有许多东西我不懂,他们都耐心地给我讲解,给予我技术支援,帮助我解决了不少难题。

4 参考文献

[1]朱小斌.电子测量仪器.北京:电子工业出版社,1996

[2]Michael Lauterbach Artpin.任意波形发生器在通讯测试中的应用.电子产品世界,1997

[3]史海明.个人仪器多功能任意波形发生器的研制.仪表技术,1988

[4]林青.DDS在数字调制中的应用.无线电工程,2001

[5]张开增,张迎新,王尚忠.高分辨率高稳度宽带函数发生器的研制.华北工学院学报

[6]华清远见嵌入式培训中心.FPGA应用开发入门与典型实例.北京:人民邮电出版社,2008

[7]薛刚.基于DDS技术的任意信号发生器.自动化与仪器仪表,1995

[8]陈冠百.锁相与频率合成.北京:电子工业出版社,1995

[9]赵新民.智能化仪器设计基础.哈尔滨:哈尔滨工业大学出版社,1999

[10]M.S.高西,K.R.赖克.现代滤波器设计.北京:科学出版社,19

5 附录 

硬件原理图

实验波形图。

最低值

理论值

三个频率分别为

97.65Hz 97.60Hz 97.63Hz,相对误差为:-0.027%

理论输出

三个频率分别为

488.30Hz 488.23Hz 488.36Hz,相对误差为:+0.0102%

理论输出

三个频率分别为

683.51Hz、 683.51Hz、 683.58Hz,相对误差为:-0.0072%

均在范围,十分精确。

详细程序

主程序

LIBRARY IEEE;

USE IEEE.STD_LOGIC_11.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY DDS IS

PORT(CLK:IN STD_LOGIC;

     SEL:IN STD_LOGIC_VECTOR(1 DOWNTO 0);

     FWORD:IN STD_LOGIC_VECTOR(7 DOWNTO 0);

     PWORD:IN STD_LOGIC_VECTOR(7 DOWNTO 0);

     FOUT:OUT STD_LOGIC_VECTOR(9 DOWNTO 0));

END ENTITY;

ARCHITECTURE ONE OF DDS IS

COMPONENT REG32B

  PORT (LOAD:IN STD_LOGIC;

        DIN: IN STD_LOGIC_VECTOR(31 DOWNTO 0);

        DOUT:OUT STD_LOGIC_VECTOR(31 DOWNTO 0));

END COMPONENT;

COMPONENT REG10B

  PORT (LOAD:IN STD_LOGIC;

        DIN: IN STD_LOGIC_VECTOR(9 DOWNTO 0);

        DOUT:OUT STD_LOGIC_VECTOR(9 DOWNTO 0));

END COMPONENT;

COMPONENT ADDER32B

PORT(A:IN STD_LOGIC_VECTOR(31 DOWNTO 0);

     B:IN STD_LOGIC_VECTOR(31 DOWNTO 0);

     S: OUT STD_LOGIC_VECTOR(31 DOWNTO 0));

END COMPONENT;

COMPONENT ADDER10B

PORT(A:IN STD_LOGIC_VECTOR(9 DOWNTO 0);

     B:IN STD_LOGIC_VECTOR(9 DOWNTO 0);

     S: OUT STD_LOGIC_VECTOR(9 DOWNTO 0));

END COMPONENT;

COMPONENT SIN_ROM

PORT(ADDRESS: IN STD_LOGIC_VECTOR (9 DOWNTO 0);

     CLOCK: IN STD_LOGIC ;

     Q: OUT STD_LOGIC_VECTOR (9 DOWNTO 0));

END COMPONENT;

COMPONENT SJBROM

PORT(ADDRESS: IN STD_LOGIC_VECTOR (9 DOWNTO 0);

     CLOCK: IN STD_LOGIC ;

     Q: OUT STD_LOGIC_VECTOR (9 DOWNTO 0));

END COMPONENT;

COMPONENT JCBROM

PORT(ADDRESS: IN STD_LOGIC_VECTOR (9 DOWNTO 0);

     CLOCK: IN STD_LOGIC ;

     Q: OUT STD_LOGIC_VECTOR (9 DOWNTO 0));

END COMPONENT;

COMPONENT XZQ

PORT(SEL1:IN STD_LOGIC_VECTOR(1 DOWNTO 0);

     D1,D2,D3:IN STD_LOGIC_VECTOR(9 DOWNTO 0);

     Q:OUT STD_LOGIC_VECTOR(9 DOWNTO 0));

END COMPONENT;

COMPONENT FPQ

PORT(INCLK:IN STD_LOGIC;

     OUTCLK:OUT STD_LOGIC);

END COMPONENT;

SIGNAL F32B,D32B,DIN32B:STD_LOGIC_VECTOR(31 DOWNTO 0);

SIGNAL P10B,LIN10B,SIN10B:STD_LOGIC_VECTOR(9 DOWNTO 0);

SIGNAL V1,V2,V3:STD_LOGIC_VECTOR(9 DOWNTO 0);

SIGNAL CLK1:STD_LOGIC;

BEGIN

F32B(27 DOWNTO 20)<=FWORD; F32B(31 DOWNTO 28)<="0000";

F32B(19 DOWNTO 0)<="00000000000000000000";

P10B(9 DOWNTO 2)<=PWORD;

P10B(1 DOWNTO 0)<="00";

U1:ADDER32B PORT MAP(A=>F32B,B=>D32B,S=>DIN32B);

U2:REG32B PORT MAP(DOUT=>D32B,DIN=>DIN32B,LOAD=>CLK1);

U3:ADDER10B PORT MAP(A=>P10B,B=>D32B(31 DOWNTO 22),S=>LIN10B);

U4:REG10B PORT MAP(DOUT=>SIN10B,DIN=>LIN10B,LOAD=>CLK1);

U5:SIN_ROM PORT MAP(ADDRESS=>SIN10B,Q=>V1,CLOCK=>CLK1);

U6:SJBROM PORT MAP(ADDRESS=>SIN10B,Q=>V2,CLOCK=>CLK1);

U7:JCBROM PORT MAP(ADDRESS=>SIN10B,Q=>V3,CLOCK=>CLK1);

U8:XZQ PORT MAP(SEL1=>SEL,D1=>V1,D2=>V2,D3=>V3,Q=>FOUT);

U9:FPQ PORT MAP(INCLK=>CLK,OUTCLK=>CLK1);

END ;

三角波

LIBRARY IEEE;

USE IEEE.STD_LOGIC_11.ALL;

LIBRARY ALTERA_MF;

USE ALTERA_MF.ALL;

ENTITY SJBROM IS

    PORT

    (

        ADDRESS        : IN STD_LOGIC_VECTOR (9 DOWNTO 0);

        CLOCK        : IN STD_LOGIC ;

        Q        : OUT STD_LOGIC_VECTOR (9 DOWNTO 0)

    );

END SJBROM;

ARCHITECTURE SYN OF SJBROM IS

    SIGNAL SUB_WIRE0    : STD_LOGIC_VECTOR (9 DOWNTO 0);

    COMPONENT ALTSYNCRAM

    GENERIC (

        CLOCK_ENABLE_INPUT_A        : STRING;

        CLOCK_ENABLE_OUTPUT_A        : STRING;

        INIT_FILE        : STRING;

        INTENDED_DEVICE_FAMILY        : STRING;

        LPM_HINT        : STRING;

        LPM_TYPE        : STRING;

        NUMWORDS_A        : NATURAL;

        OPERATION_MODE        : STRING;

        OUTDATA_ACLR_A        : STRING;

        OUTDATA_REG_A        : STRING;

        WIDTHAD_A        : NATURAL;

        WIDTH_A        : NATURAL;

        WIDTH_BYTEENA_A        : NATURAL

    );

    PORT (

            CLOCK0    : IN STD_LOGIC ;

            ADDRESS_A    : IN STD_LOGIC_VECTOR (9 DOWNTO 0);

            Q_A    : OUT STD_LOGIC_VECTOR (9 DOWNTO 0)

    );

    END COMPONENT;

BEGIN

Q <= SUB_WIRE0(9 DOWNTO 0);

    ALTSYNCRAM_COMPONENT : ALTSYNCRAM

    GENERIC MAP (

     CLOCK_ENABLE_INPUT_A => "BYPASS

     CLOCK_ENABLE_OUTPUT_A => "BYPASS

     INIT_FILE => "C:\\USERS\\ADMINISTRATOR\\DESKTOP\\DDS\\SANJIAO.MIF

     INTENDED_DEVICE_FAMILY => "CYCLONE II

     LPM_HINT => "ENABLE_RUNTIME_MOD=NO

     LPM_TYPE => "ALTSYNCRAM

     NUMWORDS_A => 1024,

     OPERATION_MODE => "ROM

     OUTDATA_ACLR_A => "NONE

     OUTDATA_REG_A => "UNREGISTERED

     WIDTHAD_A => 10,

     WIDTH_A => 10,

     WIDTH_BYTEENA_A => 1

    )

    PORT MAP (

     CLOCK0 => CLOCK,

     ADDRESS_A => ADDRESS,

     Q_A => SUB_WIRE0

    );

END SYN;

正弦波

LIBRARY IEEE;

USE IEEE.STD_LOGIC_11.ALL;

LIBRARY ALTERA_MF;

USE ALTERA_MF.ALL;

ENTITY SIN_ROM IS

    PORT

    (

        ADDRESS        : IN STD_LOGIC_VECTOR (9 DOWNTO 0);

        CLOCK        : IN STD_LOGIC ;

        Q        : OUT STD_LOGIC_VECTOR (9 DOWNTO 0)

    );

END SIN_ROM;

ARCHITECTURE SYN OF SIN_ROM IS

    SIGNAL SUB_WIRE0    : STD_LOGIC_VECTOR (9 DOWNTO 0);

    COMPONENT ALTSYNCRAM

    GENERIC (

        CLOCK_ENABLE_INPUT_A        : STRING;

        CLOCK_ENABLE_OUTPUT_A        : STRING;

        INIT_FILE        : STRING;

        INTENDED_DEVICE_FAMILY        : STRING;

        LPM_HINT        : STRING;

        LPM_TYPE        : STRING;

        NUMWORDS_A        : NATURAL;

        OPERATION_MODE        : STRING;

        OUTDATA_ACLR_A        : STRING;

        OUTDATA_REG_A        : STRING;

        WIDTHAD_A        : NATURAL;

        WIDTH_A        : NATURAL;

        WIDTH_BYTEENA_A        : NATURAL

    );

    PORT (

            CLOCK0    : IN STD_LOGIC ;

            ADDRESS_A    : IN STD_LOGIC_VECTOR (9 DOWNTO 0);

            Q_A    : OUT STD_LOGIC_VECTOR (9 DOWNTO 0)

    );

    END COMPONENT;

BEGIN

Q <= SUB_WIRE0(9 DOWNTO 0);

    ALTSYNCRAM_COMPONENT : ALTSYNCRAM

    GENERIC MAP (

     CLOCK_ENABLE_INPUT_A => "BYPASS

     CLOCK_ENABLE_OUTPUT_A => "BYPASS

     INIT_FILE => "C:\\USERS\\ADMINISTRATOR\\DESKTOP\\DDS\\SIN.MIF

     INTENDED_DEVICE_FAMILY => "CYCLONE II

     LPM_HINT => "ENABLE_RUNTIME_MOD=NO

     LPM_TYPE => "ALTSYNCRAM

     NUMWORDS_A => 1024,

     OPERATION_MODE => "ROM

     OUTDATA_ACLR_A => "NONE

     OUTDATA_REG_A => "UNREGISTERED

     WIDTHAD_A => 10,

     WIDTH_A => 10,

     WIDTH_BYTEENA_A => 1

    )

    PORT MAP (

     CLOCK0 => CLOCK,

     ADDRESS_A => ADDRESS,

     Q_A => SUB_WIRE0

    );

END SYN;

锯齿波

LIBRARY IEEE;

USE IEEE.STD_LOGIC_11.ALL;

LIBRARY ALTERA_MF;

USE ALTERA_MF.ALL;

ENTITY JUCHI IS

    PORT

    (

        ADDRESS        : IN STD_LOGIC_VECTOR (9 DOWNTO 0);

        CLOCK        : IN STD_LOGIC ;

        Q        : OUT STD_LOGIC_VECTOR (9 DOWNTO 0)

    );

END JUCHI;

ARCHITECTURE SYN OF JUCHI IS

    SIGNAL SUB_WIRE0    : STD_LOGIC_VECTOR (9 DOWNTO 0);

    COMPONENT ALTSYNCRAM

    GENERIC (

        CLOCK_ENABLE_INPUT_A        : STRING;

        CLOCK_ENABLE_OUTPUT_A        : STRING;

        INIT_FILE        : STRING;

        INTENDED_DEVICE_FAMILY        : STRING;

        LPM_HINT        : STRING;

        LPM_TYPE        : STRING;

        NUMWORDS_A        : NATURAL;

        OPERATION_MODE        : STRING;

        OUTDATA_ACLR_A        : STRING;

        OUTDATA_REG_A        : STRING;

        WIDTHAD_A        : NATURAL;

        WIDTH_A        : NATURAL;

        WIDTH_BYTEENA_A        : NATURAL

    );

    PORT (

            CLOCK0    : IN STD_LOGIC ;

            ADDRESS_A    : IN STD_LOGIC_VECTOR (9 DOWNTO 0);

            Q_A    : OUT STD_LOGIC_VECTOR (9 DOWNTO 0)

    );

    END COMPONENT;

BEGIN

Q <= SUB_WIRE0(9 DOWNTO 0);

    ALTSYNCRAM_COMPONENT : ALTSYNCRAM

    GENERIC MAP (

     CLOCK_ENABLE_INPUT_A => "BYPASS

     CLOCK_ENABLE_OUTPUT_A => "BYPASS

     INIT_FILE => "JUCHI.MIF

     INTENDED_DEVICE_FAMILY => "CYCLONE II

     LPM_HINT => "ENABLE_RUNTIME_MOD=NO

     LPM_TYPE => "ALTSYNCRAM

     NUMWORDS_A => 1024,

     OPERATION_MODE => "ROM

     OUTDATA_ACLR_A => "NONE

     OUTDATA_REG_A => "UNREGISTERED

     WIDTHAD_A => 10,

     WIDTH_A => 10,

     WIDTH_BYTEENA_A => 1

    )

    PORT MAP (

     CLOCK0 => CLOCK,

     ADDRESS_A => ADDRESS,

     Q_A => SUB_WIRE0

    );

END SYN;

分频,频率控制

LIBRARY IEEE;

USE IEEE.STD_LOGIC_11.ALL;

ENTITY ONEMHZ IS

PORT( CLKIN:IN STD_LOGIC; --时钟信号输入

CLKOUT:OUT STD_LOGIC); --时钟信号输出

END ONEMHZ;

ARCHITECTURE  ONEMHZ OF ONEMHZ IS

SIGNAL DATA:INTEGER RANGE 0 TO 149;

SIGNAL Q:STD_LOGIC;

BEGIN

PROCESS(CLKIN)

BEGIN

IF RISING_EDGE(CLKIN) THEN

IF(DATA=50) THEN --此句为你想要的分频比,DATA=0,1,2,3,4.......9的分频比为1,2,3,,10

DATA<=0;

Q<=NOT Q;

ELSE

DATA<=DATA+1;

END IF;

END IF;

CLKOUT<=Q;

END PROCESS;

END ONEMHZ;

文档

FPGA波形发生器实训报告

JIANGSUUNIVERSITYOFTECHNOLOGYFPGA综合训练报告题目:基于FPGA的波形生成器专业:电子信息工程__班级:11电子2姓名:小龙人学号:12311222_指导教师:___陈海忠_____时间:2015年9月__1基于DDS技术的信号发生器设计--------------------------------------------------------21.1功能要求--------------------------------------------------
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top