Forum Discussion

Altera_Forum's avatar
Altera_Forum
Icon for Honored Contributor rankHonored Contributor
14 years ago

real variable data type values

Hi Everybody,

I am designing pre_emphasis filter for speech recognition system, when I simulate the module in ModelSim it work and give the right output, but I couldn't compile it in Quartus II because real variable data type values are not supported in verilog Quartus II.

This is the pre_emphasis filter code, I appreciate any suggestions to solve this problem.

======================================================

`define pre_emph_factor 0.975

module pre_emphasis ( in_samples, out_samples, clock, reset);

input clock, reset;

input [31:0]in_samples;

output [31:0]out_samples;

reg [31:0]prev_samples;

reg [31:0]out_samples;

always @(posedge clock or posedge reset)

begin

if(reset)

begin

out_samples <= 32'd0;

prev_samples<=32'd0;

end

else

begin

out_samples = in_samples -`pre_emph_factor * prev_samples;

prev_samples = in_samples;

end

end

endmodule

2 Replies

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    I always use truncation myself instead of tool's support.

    For .975 multiply by 31949 (.975 *2^15 and rounded to nearest integer) then discard 15 bits off result.