Forum: FPGA, VHDL & Co. Subtype-Range verwirrend eingeschränkt


von Rian (Gast)


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.

von Rian (Gast)


Lesenswert?

Ich vermute langsam, dass der Fehler rein an iSim liegt, weil das 
Programm trotz ? in der Simulation funktioniert.

von Sigi (Gast)


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

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.