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
Was genau machst du mit dieser Tabelle? Ist es ein Register-Satz mit Reset? Zeig doch mal die Beschreibung.
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); ...
Liegt vielleicht dann am getaktetem Auslesen. Wenn man bei Xilinx das Lesen taktet, kommt ein BlockRAM raus, ungetaktet ein Distributed RAM.
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.
Lattice User schrieb: > 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"; |
3 | >
|
> > andere Werte als registers siehe die Synplifyhilfe. Auf types ist das attribute nicht anwendbar. Geht nur mit signals oder instance names.
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.
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
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.