基于FPGA的正弦信号发生器的设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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强大的在线调试和修改能力,为系统的开发和调试提供巨大便利。

相关文档
最新文档