Re: CPLDs/FPGAs toolchain

From: Mark McDougall <>
Date: Sun, 24 Apr 2016 20:48:48 +1000
Message-ID: <>
On 24/04/2016 6:27 PM, Ingo Korb wrote:

>>> I don't have that much experience with Altera Quartus as I have with
>>> ISE, but it seems to suck less than ISE in some regards (less crashes)
>>> but more in others (no pre-inizialized inferred RAM, no command line
>>> data2mem-like utility).
>> Incorrect on both points.
> Interesting, please elaborate.

In VHDL, one of the generics passed through to the RAM block is the name 
of a .mif or .hex (much preferred) file.

For data2mem-like utility from the command line, you can:

quartus_cdb --update_mif <project name>
quartus_asm <project name>

> The last time I tried, Quartus silently ignored my attempts to
> initialize an inferred RAM directly from VHDL (assignment from an impure
> function that reads a data file) and the only way I found to change the
> contents of a memory block in the final bitstream was via the GUI, which
> isn't that useful for a makefile.

If you're _inferring_ RAM in VHDL, rather than explicitly instantiating 
a memory block from the library, then perhaps you're right, I'm not 
exactly sure how to do it. But I'd be surprised if you couldn't from the 
command-line; you can pretty much do _everything_ you can do in the 
Quartus GUI, from the command-line.

Found this with a quick Google:

type mem_t is array(0 to 255) of unsigned(7 downto 0);
signal ram : mem_t;
attribute ram_init_file : string;
attribute ram_init_file of ram :
signal is "my_init_file.mif";


|              Mark McDougall              | "Electrical Engineers do it
|  <> |   with less resistance!"

       Message was sent through the cbm-hackers mailing list
Received on 2016-04-24 11:00:02

Archive generated by hypermail 2.2.0.