delay mit XC2267 Controller

Gast #3154999
Lesenswert?

Guten Morgen,

für eine Applikation benötige ich eine delay Funktion. Die Verzögerung 
soll 100us betragen. Dafür setzte ich den NOP (Null Operation) Befehl 
ein.
Dieser Befehl benötigt 2 Bytes.

Im Datenblatt steht zu diesem Controller folgendes:
12.5 ns instruction cycle at 80 MHz CPU clock (single-cycle execution)

Die fsys Frequenz ist bei mir auf 40 Mhz eingestellt.

Wie länge benötigt somit ein NOP Befehl zur Verarbeitung ? Wie kommt man 
rechnerisch darauf ?
Moderator (Firma: Titel) Persönliche Seite #3155015
Lesenswert?

Leonhardt schrieb:
> für eine Applikation benötige ich eine delay Funktion. Die Verzögerung
> soll 100us betragen. Dafür setzte ich den NOP (Null Operation) Befehl
> ein.
Ist das eine Hausaufgabe?

> Dieser Befehl benötigt 2 Bytes.
Unnötige Information.

> Im Datenblatt steht zu diesem Controller folgendes:
> 12.5 ns instruction cycle at 80 MHz CPU clock (single-cycle execution)
> Die fsys Frequenz ist bei mir auf 40 Mhz eingestellt.
Wie lange dauert also ein Zyklus bei dir, wenn deine Taktfrequenz halb 
so schnell ist?

> Wie länge benötigt somit ein NOP Befehl zur Verarbeitung ?
Wie lange dauert also ein Zyklus bei dir, wenn deine Taktfrequenz halb 
so schnell ist? Wieviele Zyklen dauert ein NOP bei deinem Prozessor? 
Üblicherwese braucht ein NOP einen Maschinenzyklus.

> Wie kommt man rechnerisch darauf ?
Man nimmt die Anzahl der für einen NOP benötigten Zyklen mal die Zeit, 
die ein einziger Zyklus braucht.

So, und jetzt hast du die Zeit für 1 NOP, und du kannst rechnen 
100us/0,025us = 4000 Zyklen. Wenn du das jetzt aber mit einer Schleife 
abzählen willst, dann solltest du beachten, dass die Verwaltung dieser 
Schleife (Herunterzählen, Vergleichen, Springen) wesentlich mehr Zeit 
braucht, als das NOP...

BTW: Du plenkst.
Moderator (Firma: Titel) Persönliche Seite #3155040
Lesenswert?

Leonhardt schrieb:
> Ich weiss nur laut Datenblatt benötigt ein NOP Befehl 2 Byte.
Dann siehst du an der falschen Stelle nach. Dich interessiert nicht, 
wieviel Platz ein NOP verbraucht, sondern wie lange die Ausführung 
dauert.
Da steht dann auch im Datenblatt:
1
3.17 Instruction Set Summary
2
Table 10 lists the instructions of the XC226x.
3
The addressing modes that can be used with a specific instruction, 
4
the function of the instructions, parameters for conditional execution 
5
of instructions, and the opcodes for each instruction can be found in the
6

7
“Instruction Set Manual”

Na gut. Blöde nur, dass es sowas nicht gibt. Aber dafür findet sich ein
"C166S V2 Core User's Manual".  Und hoppla, da findet sich was ganz 
ausgefallenes:
1
1 to 31 cycles for ’multicycle’ NOP (opcode CC 000d:dddd)
Ein NOP bei diesem Prozessor braucht also 1..31 Zyklen.

> ...Operation ? Ich...
Vor einem Fragezeichen/Ausrufezeichen/Komma/Punkt oder sonstigen 
Interpunktionszeichen kommt kein Leerzeichen.
Gast #3156765
Lesenswert?

Normalerweise benötigt ein NOP einen Zyklus. Du kannst bei diesen
Controllern aber generell nicht die Dauer der Befehle bestimmen,
da diese von vielen Umständen abhängig sind, die vor allem mit
der Pipeline zusammenhängen. Andererseits haben sie massenweise
Timer, die man ruhig für definierte Delays benutzen darf.

Das Instruction-Set findet man in C166S-V2.pdf

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren