Hallo Ich habe eine Custom Instruction programmiert und eingebunden, Sie braucht lediglich 5 Takte, aber wenn ich die Zeit Messe in der Nios II Umgebung, braucht er 30 Takte, bis er den Befehl abgearbeitet hat. Wo kommen die anderen 25 Takte her, er wird ja wohl nicht soviel für die Variablen Übergabe und Zurückgabe brauchen? kann man das noch optimieren, bzw. mal sehen wo er so verdammt lange braucht? Wenn ich eine CI ausführe die nur 1 Tick benötigt, dauert es fast eben solang... Quartus 2 9.0 mit sp2 Nios II 9.0 SOPC Builder 9.0 Prozessor: EP1S10F780C6 danke
Haste mal ne Hardware / Software Co-Simulation mit dem Modelsim gemacht? Da siehste das dann genau. VG, /th.
ich toggle ein ausgang und messe mit ein osci, die zeit fürs toggeln muss dann natürlich abgezogen werden
ich weis jetzt nicht, was Du genau gemacht hast, aber: 1. Für Variablen-Übergabe brauchst Du schon ein Paar Takte 2. NIOS Muss ja auch noch eigene Befehle von irgendwo holen (z.B. SDRAM) 3. Wenn Du irgendwann mal auch eine Schleife hast, musst Du das auch berücksichtigen 30 Takte ist zwar viel, aber wenn man genau überlegt, dann auch wiederrum nicht Probier mal mit Signal Tap, da siehst Du dann sofort alles Grüße, Kest
Versuch doch mal das ganze mit Performance Countern zu messen, dann kriegst du den Overhead deiner Messung los.
Falls du die Geschichte in C betreibst wirst du mit dem Perfromance Counter ebenefalls den Overhead sehen. Wie schon Kest erwähnte passiert ja eigentlich viel mehr als ein einzelner Aufruf und somit sind die 'Extra' Zyklen auch nicht weiter verwunderlich. Wenn ich mich recht erinnere löscht zudem ein Custom Instruction Aufruf die Pipeline des Prozessors, eine Sache an die man Denken sollte, falls vorhanden. Schreibe dein Testprogramm in Assembler, nutze den Performance Counter und strukturiere den Code so, dass nichts böses passiert ;-) Gruss, Sören
im user guide, von den custom instruction, werden beispiele, von 300 ns gezeigt, die eine ci zum abarbeiten braucht, ich komme ja nicht mal mit einer ein tick ci in die nähe dieser zeit... also muss ich irgendwas falsch machen, der prozessor läuft mit 50 Mhz...
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.