unsigned ganzzahl sqrt()

Gast #752132
Lesenswert?
• ▲
▼
Hi!

Ich möchte auf einem fpga die wurzel einer ganzen zahl berechnen.

Ich brauche 1 Berechnung pro Taktzyklus (~50mhz), Latenz ist egal (bis 
100 takte oder so ist ok).
Das ganze soll in einem Spartan3E/500 laufen, nebenbei kommt noch 
einiger anderer kram mit rein.

Am liebsten wären mir 48bit als Eingabe. Zur not gehen aber auch 32Bit.
Ist das machbar ? wieviel logik braucht sowas ?
Ich wollte den cordic3 aus dem Xilinx Coregen nehmen (oder was andres ?)

Hat da jemand Erfahrungswerte was noch machbar ist und was nicht ?
Ich kann nicht einschätzen wie komplex so eine sqrt berechnung ist :-\

Thnx
Gast #752658
Lesenswert?
• ▲
▼
Hm, der CORDIC sieht mir ganz schön groß aus wenn du nur sqrt berechnen 
willst. Kannst ihn ja trotzdem erstmal probieren, aber wenn der zu groß 
ist, meld dich nochmal, da kann man sicher mehr rausholen.
Gast #752714
Lesenswert?
• ▲
▼
Ich weis es nur für den Cyclone auswendig: 32Bit bei 50MHz erfordern 
etwa 12 Takte Latenz. Ich schätze mal, Du brauchts 20. Da das viel 
unnötige Logik kostet, wären einige parallele sicher besser.
Gast #753424
Lesenswert?
• ▲
▼
so habs mal getestet. scheint wirklich pro takt einen wert zu liefern.
komischerweise bleibt die simulation manchmal haengen, je nachdem wie
ich die eingabewerte anlege (timing) wird der ausgang nicht mehr 
geupdatet...
komisch :-\

Hier mal meine getesteten einstellungen (XC3S500E)

32bit, no  pipelining -> latency=2  ->  13 Mhz /  4% dev usage
32bit, opt pipelining -> latency=10 ->  90 Mhz /  5% dev usage
32bit, max pipelining -> latency=17 -> 154 Mhz /  6% dev usage

48bit, no  pipelining -> latency=2  ->   7 Mhz /  8% dev usage
48bit, opt pipelining -> latency=14 ->  78 Mhz / 10% dev usage
48bit, max pipelining -> latency=25 -> 145 Mhz / 13% dev usage

(webpack 8.2 / cordic core v3.0)

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.