OpenBus Tutorial - Placing Components into the System

Frozen Content

The starting point for any OpenBus System document is the placement of the required devices that will consitute the system. These OpenBus components, as they are called, are placed from the OpenBus Palette panel. Open this panel from the menu associated with the OpenBus panel access button, to the bottom-right of the main design window.

The panel contains graphical representations of devices available for FPGA design in Altium Designer, grouped by function:

  • Connectors
  • Processors
  • Memories
  • Peripherals.

Table 1 identifies the devices used in the original schematic-based design, and the corresponding OpenBus components that we must place in the OpenBus System document.

Table 1. Required OpenBus components.

Schematic component
OpenBus component

TSK3000A (32-bit RISC processor)

TSK300A

WB_FPU (floating point unit)

IEEE754 Floating Point

VGA32_TFT (VGA controller with TFT interface)

VGA 32-Bit TFT Controller

SPI_W (serial peripheral interface controller, byte addressing)

SPI

WB_PRTIO (parallel port unit)

Port IO

WB_MEM_CTRL (memory controller, configured as SRAM controller)

SRAM Controller

2x WB_INTERCON (Wishbone interconnect)

2x Interconnect

WB_MULTIMASTER (Wishbone multimaster)

Arbiter

Placement of OpenBus components is simply a case of clicking the required entry in the OpenBus Palette panel and then placing at the desired location in the workspace. Familiar schematic placement controls, such as flipping and rotating allow for fine tuning as needed.

Go ahead and place the components as shown in Figure 1. Change the designator text for each component, as shown, to make the description of the system more readable. For the peripherals and memory controller we will use the same names as those specified when configuring the WB_INTERCON devices in the original design. In this way, we will not have to change identifiers used in the associated embedded software code.


Figure 1. All OpenBus components placed in the workspace.

You will notice little red and green 'bubbles' attached to each component. These are referred to as OpenBus ports and represent the master (red) and/or slave (green) bus interfaces of the component.

Adding ports to the I/O Interconnect

The Interconnect component that will be used to connect the bank of slave peripheral I/O devices to the processor has only a single master port when initially placed – m0 (hover the cursor over a port to view it's designation). As our system has four peripheral I/O devices, we need to add another three master ports to the component.

To add a port, simply click on the button on the OpenBus toolbar (or use the Place » Add OpenBus Port command). A dimmed port shape will appear floating on the cursor. As you move the shape next to the perimeter of a component, it will become solid – darker gray with a blue outline (Figure 2). Position the new port as required and click to effect placement.


Figure 2. Adding a port to an Interconnect component.

Note: Ports can be added in clustered groups around an Interconnect component. To add a new port to an existing group, ensure you place the port directly next to the existing port.

Go ahead and add three more master ports – m1, m2 and m3. Rotate the Interconnect component and cluster ports m1 and m2 together at the bottom of the component, as per Figure 3. Ports can be arranged after they have been added by clicking and dragging to the required position around the component.


Figure 3. Component INTERCON_IO made ready with additional master ports.

You are reporting an issue with the following selected text and/or image within the active document: