基于FPGA的DAAD转换接口怎么设计?

基于FPGA的DAAD转换接口怎么设计?,第1张

FPGA与D/A的接口属于,芯片与芯片之间的接口念坦笑,接口总线

1内部总线

(I2C

SPI)是芯片与芯片之间的接口

2系统总线

PCI

是板子仔含与板子之间的接口

3外部总线

RS232

是通信设备之间的接口

所以你要多看看

SPI的知识。

然后用quartus写个具体的SPI程序(verilog

VHDL)或者调用一个信仔IP核

自己修改。

AD

DA转换芯片的性能指标参数差别大,因此接口格式无法统一。基本上

有标准接口和特殊接口(高速的AD

DA采用LVDS差分信号电平标准)。

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+errordin 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


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12555858.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存