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.