mikrocontroller.net

Forum: FPGA, VHDL & Co. Xilinx HLS Dividierer


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
Autor: Combinator (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo, da ich RTL nicht mehr sehen kann, habe mal Xilinx HLS angeworfen.
Es scheint mir als würde der aber einfach keinen kombinatorischen 
Dividierer einbauen wollen. Mit Multiplizierern klappt es wunderbar.
Braucht man dafür irgendwie irgendwo eine IP Lizenz?
Alternativ sollte ich mir den Divisionsalgorithmus ja auch als 
kombinatorische C++ Funktion zusammenbasteln können. Allerdings möchte 
ich möglichst high level bleiben.
#include "systemc.h"

SC_MODULE(tempc) {
  sc_in< sc_uint <32> > a,b;
  sc_out< sc_uint <32> > y;

  SC_CTOR(tempc) {
    SC_METHOD(func);
  sensitive <<a <<b;
    }

void func() {
        y = a.read() / b.read();
}
};

Autor: Duke Scarring (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Combinator schrieb:
> Hallo, da ich RTL nicht mehr sehen kann, habe mal Xilinx HLS angeworfen.
> Es scheint mir als würde der aber einfach keinen kombinatorischen
> Dividierer einbauen wollen.
32 Bit / 32 Bit?
Hast Du Dir mal überlegt, wie groß die Logik wird?
Kannst ja mal mit 4 Bit / 4 Bit testen.

Ich dividiere i.d.R. mit einer FSM, ähnlich der von Lothar:
http://www.lothar-miller.de/s9y/archives/29-Division-in-VHDL.html

> Braucht man dafür irgendwie irgendwo eine IP Lizenz?
Nimm es mir nicht übel, Du brauchst eine Lizenz für die Grundlagen.
HLS ist nicht das Allheilmittel...

Duke

Autor: Lothar M. (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Combinator schrieb:
> Es scheint mir als würde der aber einfach keinen kombinatorischen
> Dividierer einbauen wollen.
Und was meint er zum Thema? Was macht er stattdessen? Und wie stellst du 
das fest?

Duke Scarring schrieb:
> 32 Bit / 32 Bit?
> Hast Du Dir mal überlegt, wie groß die Logik wird?
Und langsam erst...

Autor: Combinator (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Lothar M. schrieb:
> Und was meint er zum Thema? Was macht er stattdessen? Und wie stellst du
> das fest?

stattdessen wird eine getaktete Logik erzeugt. Die Synthese baut selber 
einen Clock und Reset Pin ein. Diese sieht man im Top-Level und bei 
einer (Behavioral) Simulation werden Taktzyklus gebraucht.

Addition, Subtraktion und Multiplikation können rein kombinatorisch 
erzeugt werden. Seltsam, dass sich die Software bei der Division quer 
stellt.

Grüße

Autor: Combinator (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bitte entschuldigt den Doppel-Post. Eine 4 Bit Version ist ebenfalls 
getaktet.

Autor: Lothar M. (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Combinator schrieb:
> Seltsam, dass sich die Software bei der Division quer stellt
Sagt der Laie...
Was steht denn zum Kapitel "Division" im Handbuch des Compilers?

Aber wenn das dein ganzer Code ist und irgendwer da einen Takt rein 
bastelt, dann bin ich froh, dass ich VHDL mache  😉

Autor: Schlumpf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Lothar M. schrieb:
> Aber wenn das dein ganzer Code ist und irgendwer da einen Takt rein
> bastelt, dann bin ich froh, dass ich VHDL mache  😉

Ich auch... :-)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.