You may know this already, but if you have a signal in Vivado's simulator you can right-click on it, and change it's "waveform style" to "analog". This might save you needing a DAC at all! (see attached picture)
Excessive power will be due to not having a clock constraint. To add one, add an 'XDC' file to your project and add a line like this:
create_clock -add -name sys_clk_pin -period 10.0 -waveform {0 5.0} [get_ports clk]
That adds a 100MHz clock to the pin called 'clk'. Just change the period (in nanoseconds) to be what you want.
If your DAC needs are modest, you can implement a single bit DAC using just a pin!
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.NUMERIC_STD.ALL;
entity easy_dac is
Port ( clk : in STD_LOGIC;
d_in : in STD_LOGIC_VECTOR(7 downto 0);
pulses_out : out STD_LOGIC);
end easy_dac;
architecture Behavioral of easy_dac is
signal total : unsigned(8 downto 0) := (others => '0');
begin
pulses_out <= total(8);
process(clk)
begin
if rising_edge(clk) then
total <= ("0"&total(7 downto 0)) + unsigned(d_in);
end if;
end process;
end Behavioral;
When d_in is 0x20, pulses_out will have a duty cycle of 32/256, at about 1/8th the clock speed
When d_in is 0x80, pulses_out will have a duty cycle of 128/256 at about 1/2th the clock speed
Follow it up with a simple low pass filter (a 200 ohm series resistor followed with an appropriately sized capacitor) and you have your DAC.