Subtype-Range verwirrend eingeschränkt

Gast #2678754
Lesenswert?
• ▲
▼
Hi Leute,
ich bin gerade mit meinem Latein bezüglich Subtyping ziemlich am Ende. 
Folgender Code:
1
type state_ram_t is (WRITE1, WRITE0,IDLE, READ1, READ0);
2
subtype state_ram_w_t is state_ram_t range WRITE1 to IDLE;
3
subtype state_ram_r_t is state_ram_t range IDLE to READ0;
4

5
signal state_ram : state_ram_t:=IDLE;
6
signal state_ram_w : state_ram_w_t:=IDLE;
7
signal state_ram_r : state_ram_r_t:=IDLE;

state_ram_w macht seine Aufgabe einwandfrei, da kann ich Zustände 
wechseln wie ich lustig bin, aber state_ram_w ist permanent auf read0 - 
selbst das initiale IDLE wird in der Simulation nicht angezeigt. Ändere 
ich die Reihenfolge der READ-Zustände in state_ram_t, also erst READ0 
und dann READ1, dann wird permanent READ1 ausgegeben. Weise ich 
state_ram_r in meinem Code ein IDLE zu, dann gibt die Simulation ein 
hochrotes ? aus, schätze also mal, dass der Zustand dann überhaupt nicht 
im Range enthalten ist.

Benutze die Xilinx ISE 13.4, falls das hilft.
Gast #2678846
Lesenswert?
• ▲
▼
Subtype bzgl. selbstdef. Types hab ich auch noch nicht
gemacht, bei mir (einfaches Beispiel, nur Signale
definiert, keine Zuweisungen!) ist

state_ram   = IDLE
state_ram_w = IDLE
state_ram_r = READ0

(Types/Subtypes wie bei dir).

Btw.:
1.Man kann auch DOWNTO verwenden. Führt bei deinen SUBTYPES
aber zu leeren Typemengen, d.h. an intern vergebenen Indices
liegts uU auch nicht?
2. Bei mir in der Simulation (ISim 14.1) kommt keine
Fehlermeldung oder "?".

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