IOP16 Front Panel interface
Jump to navigation
Jump to search
Front Panel
This is a standalone application of the Land Boards Front Panel card that uses the IOP16B CPU.
VHDL Code
- VHDL code to "autonomously" talk to Land Boards FrontPanel-01 card
- Great for FPGA Retro-computers
- Converts pushbuttons into raw, debounced, and toggled outputs
- Uses IOP16 small CPU core
- Example: 6800 running MIKBUG using the Front Panel - Run/Halt the CPU, Read SRAM, ROM, etc, Write to SRAM
- Reads 32 pushbuttons
- i_FPLEDs, Out to LEDs (32)
- o_PBRaw, Raw version of the Pushbuttons (32)
- o_PBLatched, Latched version of the Pushbuttons (32)
- o_PBToggled, Toggle version of the Pushbuttons (32)
- Writes 32 LEDs
VHDL Entity
-- ------------------------------------------------------------------------------------------------------- -- Front Panel starts here fp01 : work.FrontPanel01 port map ( -- Clock and reset i_CLOCK_50 => i_CLOCK_50, -- Clock (50 MHz) i_n_reset => w_resetClean_n, -- Reset -- 32 outs, 32 ins i_FPLEDs => w_LEDsOut, -- Out to LEDs (32) o_PBRaw => w_PBsRaw, -- Raw version of the Pushbuttons (32) o_PBLatched => w_PBLatched, -- Latched version of the Pushbuttons (32) o_PBToggled => w_PBsToggled, -- Toggle version of the Pushbuttons (32) -- I2C interface io_I2C_SCL => io_I2C_SCL, -- I2C clock to Front Panel card io_I2C_SDA => io_I2C_SDA, -- I2C data to/from Front Panel card i_I2C_INTn => i_I2C_INTn -- Interrupt input - active low ); -- Front Panel ends here -- -------------------------------------------------------------------------------------------------------
I/O Processor - Memory Map
- Address, R/W, Descr
- x00, R, Pushbuttons(31..24)
- x01, R, Pushbuttons(23..16)
- x02, R, Pushbuttons(15..8)
- x03, R, Pushbuttons(7..0)
- x04-x5, R, I2C I/F
- x04 - I2C Read Data
- x05 - I2C Status
- 0x06. R, I2C Interript
- x00, W, LEDs(31..24)
- x01, W, LEDs(23..16)
- x02, W, LEDs(15..8)
- x03, W, LEDs(7..0)
- x04-x5, W, I2C I/F
- x04 - I2C Write Data
- x05 - I2C Command