集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 2899|回复: 4

基于FPGA/CPLD的函数信号发生器,找人代做,有酬劳

[复制链接]
txgc4060814 发表于 2010-5-29 22:44:43 | 显示全部楼层 |阅读模式
想找个人带做一下。我做毕业论文的。
系统可以产生方波,三角波,锯齿波,正选拨,频率和幅度可以连续调节。
论文,我可以自己写,主要是这个课题的波形仿真部分,不会做。
有诚意可以加我Q184201668,有酬劳。
 楼主| txgc4060814 发表于 2010-5-30 11:40:19 | 显示全部楼层
已经找到人,做出来了,谢谢大家关注
vvt 发表于 2010-5-31 08:02:47 | 显示全部楼层
函数信号发生器是各种测试和实验过程中不可缺少的工具,在通信、测量、雷达、控制、教学等领域应用十分广泛。不论是在生产、科研还是教学上,信号发生器都是电子工程师信号仿真实验的最佳工具,而且,信号发生器的设计方法多,设计技术也越来越先进。随着我国经济和科技的发展,对相应的测试仪器和测试手段也提出了更高的要求,信号发生器己成为测试仪器中至关重要的一类,因此开发信号发生器具有重大意义。传统的信号发生器大多采用专用芯片或单片机或模拟电路,成本高或控制方式不灵活或波形种类较少等不能满足要求。
本课题的目的是研究函数信号发生器的设计方法,克服传统方法的缺点,以更好的方法设计出比较复杂的调频、调幅功能的信号发生器。本文采用直接数字合成(DDS)技术,以现场可编程门阵列(FPGA)作为硬件基础,设计函数信号发生器,直接数字频率合成(DDS)就是先将所需要产生的信号波形的一个周期的若干个样点的的二进制信息存储在波形存储器中,再通过硬件电路依次从波形存储器中读取出来。经数/模转换以及滤波后得到所需信号的波形,它的查表合成波形的方法可以满足产生任意波形的要求。
本文在设计中,运用了Altera公司的FPIC6Q240C8芯片作为波形产生的主芯片。以及利用它的实际工具,如QuartusII6.0、MATLAB7.0/DSP Builder6.0并结合VHDL语言,为多种波形信号发生器的设计提供了一种比较简单的方法。根据各种波形产生的基本原理,利用MATLAB/DSP Builder建立数学模型,然后利用Altera公司提供的SignalCompiler工具对其进行编译,产生QuartusII能够识别的VHDL源程序,利用该VHDL源程序结合一些附加控制程序,给出了函数信号发生器的顶层原理图,经过波形仿真后,下载到目标器件中。通过实验表明,该函数信号发生器可产生可调幅波、正弦波、方波、三角波、锯齿波、调频波等多种波形,而且各波形的频率和幅度可调,可根据用户需要进行现场可编程,达到了预定的要求。
vvt 发表于 2010-5-31 08:06:23 | 显示全部楼层
已经找到人,做出来了,谢谢大家关注
txgc4060814 发表于 2010-5-30 11:40



    这么快?
lscjp 发表于 2010-9-9 14:35:07 | 显示全部楼层
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
USE IEEE.STD_LOGIC_ARITH.ALL ;
LIBRARY LPM;
USE LPM.LPMCOMPONENTS.ALL;
ENTITY ddsc IS
GENERIC(
freq_width: INTEGER :=32;
phase_width : INTEGER :=12;
adder_width : INTEGER :=32;
romad_width : INTEGER :=10;
rom_d_width : INTEGER :=10
);
PORT(
clk : IN STD_LOGIC;
freqin : IN STD_LOGIC_VECTOR(freq_width-1 DOWNTO 0) ;
ddsout : OUT STD_LOGIC_VECTOR(rom_d_width-1 DOWNTO 0));
END ENTITY ddsc;
ARCHITECTURE behave OF ddsc IS
SIGNAL acc:STD_LOGIC_VECTOR(adder_width-1 DOWNTO 0);
SIGNAL romaddr :STD_LOGIC_VECTOR(romad_width-1 DOWNTO 0) ;
BEGIN
process (clk)
BEGIN
IF (clk'event and clk ='1') THEN
acc<=acc+freqin;
END IF;
END PROCESS;
romaddr<=acc(phase_width-1 downto phase_width-romad_width) ;
i_rom :lpm_rom
GENERIC MAP (
Lpm_width=>rom_d_width,
Lpm_widthad=>romad_width,
Lpm_addreaa_control=>"NREGISTERED",
Lpm_outdata=>"EGISTERED",
Lpm_file=>"sin_rom.mif")
PORT MAP(
outclock=>clk,
ddress=>romaddr,
q=>ddsout);
END ARCHITECTURE behave;
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2024-12-25 13:46 , Processed in 0.061521 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表