> Hi,
>
> I am trying to use a PMI ROM memory block in Lattice Diamond/VHDL:
>
> decoder_rom0 : pmi_rom generic map (
>
> pmi_addr_width => 3,
> pmi_data_width => decoder_rom_data'length,
> pmi_regmode => "noreg",
> pmi_gsr => "disable",
> pmi_resetmode => "sync",
> pmi_optimization => "area",
> pmi_init_file => "i2c_decoder_rom.mem",
> pmi_init_file_format => "binary"
>
> ) port map (
>
> Address => std_logic_vector(decoder_rom_address),
> OutClock => clk,
> OutClockEn => trigger,
> Reset => reset,
> Q => decoder_rom_data
> );
>
> At a later stage the compiler fails with:
>
> Loading NGO design
> 'lngotmp/pmi_romebi2c_decoder_romasdn43512db0f16b.ngo'...
> ERROR - Pin mismatch between block
> 'i2c0/pmi_romECbinaryi2c_decoder_rom.memareasyncdisablenoreg43512',
> TYPE='pmi_romEbi2c_decoder_romasdn43512db0f16b', and file
> 'lngotmp/pmi_romebi2c_decoder_romasdn43512db0f16b.ngo' at pin
> 'Address[2:0](2)'.
> Done: error code 2
>
> Synplify synthesizes the bitstream without a warning, so the issue must
> be related to the LSE. What can I do with it?
>
> Best regards, Piotr
I assume you are running the latest version of Diamond and have checked
the port mapping. The first thing I would do is to log an issue with
Lattice. Next start modifying the code to see if you can make it work, I
would start by changing the 'length attribute on your generic.
Good luck,
Hans.
www.ht-lab.com
Reply by Piotr Wyderski●March 11, 20212021-03-11
Hi,
I am trying to use a PMI ROM memory block in Lattice Diamond/VHDL:
decoder_rom0 : pmi_rom generic map (
pmi_addr_width => 3,
pmi_data_width => decoder_rom_data'length,
pmi_regmode => "noreg",
pmi_gsr => "disable",
pmi_resetmode => "sync",
pmi_optimization => "area",
pmi_init_file => "i2c_decoder_rom.mem",
pmi_init_file_format => "binary"
) port map (
Address => std_logic_vector(decoder_rom_address),
OutClock => clk,
OutClockEn => trigger,
Reset => reset,
Q => decoder_rom_data
);
At a later stage the compiler fails with:
Loading NGO design 'lngotmp/pmi_romebi2c_decoder_romasdn43512db0f16b.ngo'...
ERROR - Pin mismatch between block
'i2c0/pmi_romECbinaryi2c_decoder_rom.memareasyncdisablenoreg43512',
TYPE='pmi_romEbi2c_decoder_romasdn43512db0f16b', and file
'lngotmp/pmi_romebi2c_decoder_romasdn43512db0f16b.ngo' at pin
'Address[2:0](2)'.
Done: error code 2
Synplify synthesizes the bitstream without a warning, so the issue must
be related to the LSE. What can I do with it?
Best regards, Piotr