I/O Devices

 

This page describes the included I/O Device components. These components are used to allow your processor to interact with the outside world in useful ways.

Module: IOController

    This module routes signals to the various I/O Devices based on the address that it is given. Bits 6 and 7 of the address are used to determine which IO Device gets the routed signal and its output routed back to the system.

Port Description:

 
Name Dir Width Description
IOAddress In 32 Address that determines which I/O Device recieves the routed WE signal and has its response routed back to the processor. Bits 6 and 7 are used for this purpose.
IODev1Input In 32 I/O Device 1 sends its results back to this port
IODev2Input In 32 I/O Device 2 sends its results back to this port
IODev3Input In 32 I/O Device 3 sends its results back to this port
IODev4Input In 32 I/O Device 4 sends its results back to this port
IODev1WE Out 2 WriteEnable for I/O Device 1. Each I/O Device may use the WE signal in a different way.
IODev2WE Out 2 WriteEnable for I/O Device 2. Each I/O Device may use the WE signal in a different way.
IODev3WE Out 2 WriteEnable for I/O Device 3. Each I/O Device may use the WE signal in a different way.
IODev4WE Out 2 WriteEnable for I/O Device 4. Each I/O Device may use the WE signal in a different way.
IOCtlOutput Out 32 The data that is returned by the I/O Device. This data is picked from one of the 4 devices based on the address passed in.

Symbol:

 

None

Module: MemoryMappedSerial

    This module allows the processor to communicate with a PC to recieve programs via the RS232 serial port. The BIOS for the processor has been configured to recieve an entire program, then launch it by jumping to the program's start point. You can also use the serial port to send data back to the PC, where it will be displayed if you are running the bootloader software or some other serial terminal software. It is meant to be used in conjunction with Memory_Toplevel or some other memory management unit.

To use the serial controller, use the following addresses:

The pins with names starting with "RS232" should be connected to output pins with the same names on your top level design.

Port Description:

 
Name Dir Width Description
CLK In 1 Clock that the processor is running on
SerialClock In 1 Clock at the speed that the serial device runs at (50 Mhz)
Reset In 1 Resets the Serial I/O Component. Must be used once to prepare for recieving data.
RS232_RX_DATA In 1 Incoming data from another serial device
RS232_RTS_IN In 1 RS232 flow control pin
SerialIOAddress In 6 Address to access - controls the functionality of the component
SerialIOData In 32 The data to send back to another serial device
SerialIOWE In 2 Write enable. Use SW with address 3 to get next data, 4 to clear for new data/send, 6 to send word back to connected serial device
RS232_TX_DATA Out 1 Outgoing data to another serial device
RS232_CTS_OUT Out 1 RS232 flow control pin
DataOut Out 32 Data retrieved from the Serial I/O Component
 

Symbol:

 

Module: MemoryMappedBoardIO

    This module countrols the LEDs and gets signals from the buttons on the board. If you store a number to the LEDs, the lowest 4 bits will be represented on the LEDs. You can load data from this location to determine if a button has been pushed.

The addresses to use with this module are as follows:

Port Description:

 
Name Dir Width Description
CLK In 1 Clock pin
IOAddress In 6 The address to determine which functionality to poll/write to.
IOData In 32 The data to write to the device. Only the lower 4 bits are used, and only when storing to address 0.
IOWE In 2 Write Enable signal for the LEDs. Only used when address provided is 0.
Reset In 1 Resets the registers in this module
IODataOut Out 32 Data returned by the module. It corresponds to the button's status or the status of the LEDs depending on the address provided.
nLEDBus Out 4 The signals for the LEDs. These have already been inverted, so if a bit is set to 1, the LED will light up.

Symbol: