www.mikrocontroller.net

Forum: FPGA, VHDL & Co. Laufzeit einer Komponente


Autor: matzunami (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Ich führe in VHDL eine Berechnung durch, erst eine addition und dann 
eine multiplikation. Der Addierer und der Multiplizierer sind beide in 
ISE erstellte IP Cores rein kombinatorisch. Diese habe ich nun in meiner 
Komponente in reihe geschalten. Mein Board Takt lauft mit 100MHz und ich 
sehe in der Post-Route Simulation, dass die Berechnung (addition + 
multiplikation) in einem Takt durchgeführt wird. Also soweit 
funktioniert alles wie gewollt (vom übernommenen Einganssignal bis zum 
Ausgangssignal vergehen ca. 7ns).
Nun meine Frage: Kann man dieses Zeitverhalten irgendwie in einem 
Constraint fixieren, d.h. sowas wie

  INST "*/component_calc" TNM = "calc";
  TIMESPEC "TS_calc" = FROM "Input" TO "Output" 7.0 ns;

so dass ich mir sicher sein kann, das dies später in dem Projekt, wo 
dieser Teil eingesetzt wird, auch noch funktioniert?

Oder kann ich die Zwei IP Cores irgendwie in eine StateMachine packen, 
wo ich sie dann in reihe schalte? Ich weiß nicht ganz wie das aussehen 
soll, da ich dort schreiben würde x = a + b und y = x * c, wobei ich 
hier ja nicht meine Cores verwende, was ich aber gerne machen würde.

Ich hoffe ich konnte mein Problem etwas verständlich erklären.
Wäre schön, wenn mir jemand weiterhelfen könnte.

MfG
matzunami

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gib doch einfach einen Constraint auf die 100MHz an.
Wenn deine Komponente zwischen 2 FFs hängt, muß sie die Zeit 10ns 
einhalten.

> Der Addierer und der Multiplizierer sind beide in
> ISE erstellte IP Cores rein kombinatorisch.
Warum erzeugst du solche Standardkomponenten als IP-Core?

> da ich dort schreiben würde x = a + b und y = x * c,
So würde ich das machen.

> wobei ich hier ja nicht meine Cores verwende
Es sind doch sowieso nicht deine Cores, sondern die von Xilinx. Und 
das sind die selben, ob du sie manuell erzeugst, oder der Synthesizer 
automatisch...

Autor: matzunami (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also erstmal danke für die Antwort.

Ein Constraint auf den Takt hab ich schon und die die Cores möchte ich 
verwenden, weil die genau aauf meine Aplikation passt (zb. Addierer 
erster Wert unsigned 14 bit zweiter wert signed 16 bit ergebniss 18 
bit).
Wenn ich x = a + b  schreibe, wie kann ich dann sagen das ein wert 
signed und der andere unsigned ist? -> zu Integer Convergieren einmal 
mit to_signed und einmal mit to_unsigned?

Wie genau sieht das aus (in VHDL), wenn ich die Cores zwischen 2 FF 
häng?

Autor: matzunami (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wenn ich soetwas schreibe (nur beispielhaft):

component adder
 port (
   b in
   b in
   c out
 );
end compo..

Inst : adder
port map (
 a => a
 b => b
 c => c
);

State Machine
when 1 =>
   a <= x;
   b <= y;
   next state

ist der adder dann in der StateMachine eingebunden und somit im 
TimingConstraint der StateMachine ?

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Klar. Die Geschwindigkeit der SM ist ja durchaus von der Komponente 
adder abhängig, die Tools erkennen das.

>>>>> FROM "Input" TO "Output" 7.0 ns;
Damit ist der Inputpin bzw. Outputpin des FPGAs gemeint.

Autor: matzunami (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ok danke...

>>>>> FROM "Input" TO "Output" 7.0 ns;
>>Damit ist der Inputpin bzw. Outputpin des FPGAs gemeint.

sowas hab ich mir schon gedacht

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.
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.

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