3 用VHDL语言编写的程序
library ieee;
use ieeestd_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; 4 芯片的选择和配置
选择MAX7000S系列可编程逻辑器件,编译后由MAX+PLUS II软件自动配置进EMP7032SLC44芯片,将生成的目标文件通过编程电缆对器件进行编程。
将该IP核实现的D/A转换器用于新型智能电阻炉温度控制仪中,因为调节炉温的信号不要求变化很快,因此DAC的输入二进制信号为缓变信号。对于这种低频应用,可以将RC时间常数取得较大,以减小噪声。这样,可综合的VHDL语言Delta-Sigma DAC模块配置进EMP7032芯片后,达到了预期的效果。
作者: 李小路 时间: 2021-6-27 16:04
谢谢分享!