Forum: FPGA, VHDL & Co. FSL Control Abfrage


von XilMi (Gast)


Lesenswert?

Hallo,

ich habe ein System mit zwei Microblazes realisiert. Diese kommunizieren 
über einen FSL Kanal. Die Daten möchte ich mit dem Controlbit aus dem 
FSL Bus kennzeichnen. Ich schicke z. B. drei mal mit 
putfslx(data,0,FSL_DEFAULT) und einmal mit putfslx(data,0,FSL_CONTROL) 
Daten zum anderen Microblaze.
Dieser liest (egal ob das control bit gesetzt ist oder nicht) die Daten 
mit getfslx(read, 0, FSL_Default) aus.

Wenn ich das richtig verstanden habe, kann ich mit fsl_iserror() 
überprüfen ob das Controlbit gesetzt war oder nicht.

Sobald ich aber einmal ein gesetztes Controlbit detektiert habe, gibt 
mir fsl_iserror() dauerhaft aus, dass es gesetzt ist.

Muss ich das Controlbit aktiv wieder auf Low setzen, damit ich es nicht 
mehr detektiere?

von XilMi (Gast)


Lesenswert?

Also wenn ich das richtig verstehe, macht der Prozessor folgendes beim 
Lesen der Daten:

Pseudocode aus Reference Guide für die Funktion get:
if MSR[UM] == 1 then
    ESR[EC]←00111
else
    (rD)←FSLx
if (n = 1) then
    MSR[Carry]←not (FSLx Exists bit)
if (FSLx Control bit≠c) then
    MSR[FSL_Error]←1
if (e = 1) then
    ESR[EC]←00000
    ESR[ESS]←instruction bits [28:31]
    EDR←FSLx

Wenn ich das richtig verstehe, wird, wenn das control bit gesetzt ist, 
bei einem Leseaufruf mit getfsl() MSR[FSL_Error] gesetzt.

Der Wert scheint dann nicht mehr rückgängig gemacht zu werden... und 
daher wird mit fsl_iserror() immer ein gesetztes controlbit erkannt.
Das kann doch nicht sein oder?
Kann ich nicht das Register selber wieder auf den vorherigen Wert 
setzen?

von XilMi (Gast)


Lesenswert?

ah habe es gefunden. Mit

mtmsr(0);

kann ich den Wert aus dem Register löschen und beim nächsten Auslesen 
der Datei, kann ich auch das Controlbit wieder lesen.

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
Noch kein Account? Hier anmelden.