Array soll Slices anstatt Block-RAM benutzen

OP #2786056
Lesenswert?
• ▲
▼
Hallo zusammen,

Ich habe eine kleine Tabelle als Array innerhalb einer Funktion 
erstellt. Soll in einen Lattice ECP2 implementiert werden. Leider will 
Diamond da immer Block-RAM dafür benutzen (deshalb Abbruch beim Mapping) 
Synthese erfolgte mit Synplify Pro.

Ich möchte das aber als Logik implementiert haben, da keine Block-RAM 
Resourcen mehr zur Verfügung stehen. Die Benutzung des syn_ramstyle 
attributes brachte nicht den gewünschten Erfolg. Was gibt es noch für 
Möglichkeiten?

danke
OP #2786280
Lesenswert?
• ▲
▼
Im Prinzip sieht die ganze Beschreibung wie folgt aus:

type t_u8tab is array(natural range <>) of integer range 0 to 255;

function func (
  din : unsigned(7 downto 0)
) return unsigned is
  constant tab  : t_u8tab(0 to 255) := (10,23,42 ...); -- 256 Werte
  variable dout : unsigned(7 downto 0);
begin
  dout := to_unsigned(tab(to_integer(din)),8);
  return dout;
end func;

...

signal s_in, s_out : unsigned(7 downto 0);
attribute syn_ramstyle : string;
attribute syn_ramstyle of s_out  : signal is "registers";

...
process begin
  wait until clk = '1';
  s_out <= func(s_in);
...
Gast #2786457
Lesenswert?
• ▲
▼
Man kann mit dem syn_ramstyle Attribute beeinflussen was Synplfy macht
1
attribute syn_ramstyle : string;
2
attribute syn_ramstyle of t_u8tab : signal is "registers";

andere Werte als registers siehe die Synplifyhilfe.
OP #2786807
Lesenswert?
• ▲
▼
Lattice User schrieb:
> Thomas Wendt schrieb:
>> Auf types ist das attribute nicht anwendbar. Geht nur mit signals oder
>> instance names.
>
> Ich hatte übersehen dass du syn_ramstyle schon probiert hattest.
>
> Deine Beschreibung ist kein RAM sondern ein ROM. Versuchs mal mit
> syn_romstyle.

Da wäre ich im Leben nicht drauf gekommen, dass es dafür noch ein extra 
attribute gibt. Damit geht es jetzt.

Danke

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren