These files are used to initialize two ROMS in a Cyclone III. I do not understand that when I simulate it Modelsim does only display the absolute value of the samples (I select decimal data radix). The VHDL that uses the ROMs is as easy as this:
Where all the ports in the ROM (generated with the Megawizard) are std_logic_vector and the output is signed. Can you see what's going on with this code?
Have you checked that the signed decimal data is correctly stored in the chirp_rom_50k memory array? As you are using decimal in the MIF and the array is probably an array of slv, I'm wondering if that is the source of the problem. I normally use hexadecimal or binary data for mif files, I've never tried loading them with signed decimal, so I can't say for sure if that would be a problem or not.
I am looking at o_chirp50k in the simulator. Actually , the memory array in Modelsim displays already incorrect values (is there any other way to check the stored values, for instance in Quartus?)
By the way, i have been reading online. Looks like Quartus does not support .MIF with signed data values. Simply goes ahead, without issuing a warning.
I´ll try tomorrow defining the MATLAB output file as raw binary.
I normally always use binary or hexadecimal without issues. So once you update the .MIF file to binary data values it should work fine. You can also format the .MIF data as hexadecimal data, I find that easier to read.