IOP-16 Stack
- Last-In, First-Out (LIFO)
- Sizes
- 0 (none)
- No JSRs or RTSs in code
- Can do JMPs
- 1 deep (does not need SRAM)
- 12-bit register
- Single deep calls
- Optionally deeper as build option (uses more registers)
Configuring Depth
- Set STACK_DEPTH_PASS to the max nesting depth of the subroutines in the top file
- The final internal LIFO capacity is equal to 2^STACK_DEPTH_PASS
IOP16: ENTITY work.cpu_001
-- Need to pass down instruction RAM and stack sizes
generic map (
INST_ROM_SIZE_PASS => 512, -- Small code size since program is "simple"
STACK_DEPTH_PASS => 4 -- Subroutine depth (not nested)
)
Resources