How to add Gaussian noise or any other noise to a sine wave (using VHDL)?
Depending on the purpose of the noise there are different possibilities. I have already used one that consists in adding a percentage of randomness to your generated waveform.

First you need to add the library IEEE.MATH_REAL.ALL.
Then use the Uniform procedure:

procedure UNIFORM (variable Seed1,Seed2:inout integer; variable X:out real);
    -- returns a pseudo-random number with uniform distribution in the 
    -- interval (0.0, 1.0).
    -- Before the first call to UNIFORM, the seed values (Seed1, Seed2) must
    -- be initialized to values in the range [1, 2147483562] and 
    -- [1, 2147483398] respectively.  The seed values are modified after 
    -- each call to UNIFORM.
    -- This random number generator is portable for 32-bit computers, and
    -- it has period ~2.30584*(10**18) for each set of seed values.


For example you can create your behavioral process like this :

---------------------------------------
-- generates rdm numbers to simulate 
-- noise on the line
---------------------------------------
rdm : PROCESS
    VARIABLE seed1, seed2: positive;            
    VARIABLE rand: real;  
    VARIABLE rdm_rng : real := 419430.0; 
    VARIABLE rand_num_i : integer := 0;
BEGIN
    uniform(seed1, seed2, rand);
    rand_num_i  := integer(rand*rdm_rng) - 104858; -- rescaling
    rand_num &lt;= to_signed(rand_num_i, 24);
    WAIT FOR tempo;
END PROCESS;


Finally you just need to add rand_num to your signal.