Hi! Also es geht um folgendes beispiel: signal U : signed( 9 downto 0); --10bit breit signal V : signed( 4 downto 0); -- 5bit breit signal W : signed(50 downto 0); --51bit breit ... W <= (U*V)*2; ---> ERROR: resultierende breite ist 100bit (klar, er macht 50x50bit mult intern) ich hab mir jetzt geholfen indem ich es so umschreibe: variable UV_tmp : signed(49 downto 0); .. UV_tmp := U*V; --ist jetzt 5*10 = 50 bit W <= UV_TMP & '0'; --und jetzt 51 bit Da ich variablen aber nicht mag und es bloed zu lesen ist such ich nach ner möglichkeit dem synthesizer zu sagen dass ich da keine 50x50 mult brauche. Jemand ne Idee ? Die zahlen sind nur ein beispiel, konkret geht es zb auch um *1024 oder so. Das muss doch auch anders gehen... Achja, ist Xilinx Webpack 8.2i Gruss, vhdl_noob
Wofür brauchst du die 51 Bits? Um das Ergebnis einer 10-Bit-x-5-Bit-Multiplikation zu speichern, reichen doch 15 Bit! (Worst Case 1023 * 31 = 31713)
mist sorry hab beim beispiel aufschreiben murks gebaut, neuer versuch signal U : signed(24 downto 0); --25bit breit signal V : signed(24 downto 0); --25bit breit signal W : signed(50 downto 0); --51bit breit ... W <= (U*V)*2; ---> ERROR: resultierende breite ist 100bit (klar, er macht 50x50bit mult intern) ich hab mir jetzt geholfen indem ich es so umschreibe: variable UV_tmp : signed(49 downto 0); .. UV_tmp := U*V; --ist jetzt 25+25 = 50 bit W <= UV_TMP & '0'; --und jetzt 51 bit so, hoffe jetzt stimmts... Der originalcode ist zu kompliziert um ihn zu posten (matrizenrechnungen)
Mir ist noch nicht ganz klar, was Du willst, aber vielleicht sowas:
1 | W <= (U * V) & '0' |
stimmt das geht ja direkt so .. d'oh... Naja hat sich eh erledigt mittlerweile, die berechnungen wurden zu gross am ende (>50bit integers). Nun hab ich es ganz nach float (24bit) umgeschrieben. Ist zwar nen ganz schönes gemurkse mit dem coregen und per hand "verkabeln" aber dafür läuft es laut PAR jetzt mit bis zu 88MHz und belegt momentan "nur" 80% des fpgas. Hoffe ich bekomm den rest noch rein g thnx
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.