30 lines
731 B
VHDL
30 lines
731 B
VHDL
|
ARCHITECTURE masterVersion OF DAC IS
|
||
|
|
||
|
signal parallelIn1: unsigned(parallelIn'range);
|
||
|
signal integrator: unsigned(parallelIn'high+1 downto 0);
|
||
|
signal quantized: std_ulogic;
|
||
|
|
||
|
BEGIN
|
||
|
|
||
|
-- parallelIn1 <= parallelIn;
|
||
|
parallelIn1 <= parallelIn/2 + 2**(parallelIn'length-2);
|
||
|
|
||
|
integrate: process(reset, clock)
|
||
|
begin
|
||
|
if reset = '1' then
|
||
|
integrator <= (others => '0');
|
||
|
elsif rising_edge(clock) then
|
||
|
if quantized = '0' then
|
||
|
integrator <= integrator + parallelIn1;
|
||
|
else
|
||
|
integrator <= integrator + parallelIn1 - 2**parallelIn'length;
|
||
|
end if;
|
||
|
end if;
|
||
|
end process integrate;
|
||
|
|
||
|
quantized <= integrator(integrator'high);
|
||
|
|
||
|
serialOut <= quantized;
|
||
|
|
||
|
END ARCHITECTURE masterVersion;
|