我要做一个基于FPGA的AD转换程序设计 请问那个高手能帮忙指点一下啊不胜感激
意法半导体(中国)投资有限公司
2023-06-12 广告
2023-06-12 广告
要入门STM32单片机,可以按照以下步骤进行学习:1. 首先学习51单片机,了解其基本结构和特点。2. 学习STM32的内部架构,了解其核心部件如何与外设连接。3. 学习STM32的寄存器和总线结构,理解如何使用寄存器来控制外设。4. 编写...
点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
展开全部
FPGA是不能实现DA转换的,它内部处理的都是数字信号,不能输出模拟信号。一般是用FPGA控制系统工作流程,产生控制信号,DSP输出数字信号处理后得到的数字信号,经专门的DA芯片,如PCM1798、1794、AD1955、CS4398、AK4396、AK4399等等,FPGA只能实现特定类型的脉冲,如下:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
entity dac_ds is
port(reset :in std_logic;
clk :in std_logic;
din :in std_logic_vector(7 downto 0);--Signed integer
dout :out std_logic);
end dac_ds;
architecture arch_dac_ds of dac_ds is
signal error :std_logic_vector(9 downto 0);--Error accumulator is 2 bits larger
constant zeros:std_logic_vector(7 downto 0):=(others=>'0');
begin
process(reset,clk,din)
variable val :std_logic_vector(9 downto 0);
begin
if reset='1'then
error<=(others=>'0');
dout<='0';
elsif clk'event and clk='1' then
--val:=din+error;din is sign extended to nbits+2
val:=(din(din'high)&din(din'high)&din)+error;
if val(val'high)='0'then
dout<='1';
error<=val+("11"& zeros);
else
dout<='0';
error<=val+("01"&zeros);
end if;
end if;
end process;
end arch_dac_ds
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
entity dac_ds is
port(reset :in std_logic;
clk :in std_logic;
din :in std_logic_vector(7 downto 0);--Signed integer
dout :out std_logic);
end dac_ds;
architecture arch_dac_ds of dac_ds is
signal error :std_logic_vector(9 downto 0);--Error accumulator is 2 bits larger
constant zeros:std_logic_vector(7 downto 0):=(others=>'0');
begin
process(reset,clk,din)
variable val :std_logic_vector(9 downto 0);
begin
if reset='1'then
error<=(others=>'0');
dout<='0';
elsif clk'event and clk='1' then
--val:=din+error;din is sign extended to nbits+2
val:=(din(din'high)&din(din'high)&din)+error;
if val(val'high)='0'then
dout<='1';
error<=val+("11"& zeros);
else
dout<='0';
error<=val+("01"&zeros);
end if;
end if;
end process;
end arch_dac_ds
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一般的fpga没有模拟输入接口,恐怕做不了AD转化,需要外接AD芯片,你用的什么型号的fpga?
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询