基于FPGA的正弦信号发生器的设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
综合课程设计实验
正弦信号发生器的设计
1.实验目的
学习QUARTUS2中LPM的使用
学习使用FPGA控制DA,实现数模转换
2.实验过程
●Singt程序:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity singt is
port (clk : in std_logic;
dout : out std_logic_vector(7 downto 0));
end singt;
architecture dacc of singt is
component data_rom
port (address : in std_logic_vector(5 downto 0);
inclock :in std_logic;
q :out std_logic_vector(7 downto 0));
end component;
signal q1 : std_logic_vector (5 downto 0);
begin
process (clk)
begin
if clk'event and clk='1' then
q1<=q1+1;
end if;
end process;
u1: data_rom port map (address=>q1,q=>dout,inclock=>clk);
end dacc;
●LPM程序:
library ieee;
use ieee.std_logic_1164.all;
library altera_mf;
use altera_mf.altera_mf_components.all;
entity data_rom is
port (address : in std_logic_vector(5 downto 0);
inclock : in std_logic;
q : out std_logic_vector(7 downto 0));
end data_rom;
architecture syn of data_rom is
signal sub_wire0 : std_logic_vector(7 downto 0);
component altsyncram
generic (intended_device_family : string;
width_a,widthad_a,numwords_a : natural;
operation_mode : string;
outdata_reg_a,address_aclr_a,outdata_aclr_a : string;
width_byteena_a : natural;
init_file,lpm_hint,lpm_type : string);
port (clock0 : in std_logic;
address_a : in std_logic_vector (5 downto 0);
q_a : out std_logic_vector(7 downto 0));
end component;
begin
q<=sub_wire0(7 downto 0);
altsyncram_component :altsyncram
generic map (intended_device_family =>"cyclone",
width_a=>8,widthad_a=>6,numwords_a=>64,
operation_mode=>"rom",
outdata_reg_a=>"unregistered",
address_aclr_a=>"none",outdata_aclr_a=>"none",
width_byteena_a=>1,
init_file=>"D:\singt\data.mif",
lpm_hint=>"enable_runtime_mod=yes,instance_name=rom1",
lpm_type=>"altsyncram")
port map (clock0=>inclock,address_a=>address,q_a=>sub_wire0);
end syn;
运行结果:
数字示波器正常显示正弦波
使用in-system memory content editor修改后波形发生变化,不再是完整的正弦波。
3.实验心得:
本次试验的设计思路是通过使用一个小程序生成所需正弦波的MIF文件,再通过与DA TA_ROM文件关联形成一个ROM。利用FPGA控制实验箱上的DA实现数模转换,最终在示波器上显示出正弦波的波形。通过此次试验,充分体现出FPGA和Quartus强大的在线调试和修改能力,为系统的开发和调试提供巨大便利。