[source]

Architecture rtl of dstruct_stack

Types

Name

Description

ctrl_t

ctrl signal for stackpointer operations

state

Processes

process @(got or stackpointer or put or current_state)
SEMPTY SEMPTY NOTFULL NOTFULL SFULL SFULL WAITING WAITING 1 [(put = '1')] 2 [((got = '1' and put = '0') and (stackpointer = 1))] 3 [(not (got = '1' and put = '0') and (got = '0' and put = '1') and (stackpointer = MIN_DEPTH - 1))] 4 [(got = '1')] 5 [EMPTY]
FSM Transitions for current_state

#

Current State

Next State

Condition

Comment

1

SEMPTY

NOTFULL

[(put = '1')]

2

NOTFULL

SEMPTY

[((got = '1' and put = '0') and (stackpointer = 1))]

3

NOTFULL

SFULL

[(not (got = '1' and put = '0') and (got = '0' and put = '1') and (stackpointer = MIN_DEPTH - 1))]

4

SFULL

NOTFULL

[(got = '1')]

5

WAITING

SEMPTY

[EMPTY]