R

Chapter 7

Instruction Storage Configurations

The PicoBlaze™ microcontroller executes code from memory resources embedded within the FPGA. Figure 7-1shows that the PicoBlaze microcontroller actually consists of two subfunctions. The KCPSM3 module contains the PicoBlaze ALU, register file, scratchpad RAM, etc. Some form of internal memory, typically a block RAM, provides the PicoBlaze instruction store. To effective create an on-chip ROM, the block RAM’s write enable pin, WE, is held Low, disabling any potential write operations.

However, the PicoBlaze microcontroller supports other implementations that have advantages for specific applications as described below. Many of these alternate implementations leverage the extra port provided by the dual-port block RAM on Spartan®-3, Virtex®-II, and Virtex-II Pro FPGAs.

 

 

 

 

 

KCPSM3

Instruction ROM

 

 

 

IN_PORT[7:0]

OUT_PORT[7:0]

 

 

 

 

 

 

INTERRUPT

PORT_ID[7:0]

 

 

 

(Block RAM)

 

 

 

RESET

READ_STROBE

 

 

 

 

WE

OUT[17:0]

INSTRUCTION[17:0]

WRITE_STROBE

ADDR[9:0]

 

18

INTERRUPT_ACK

 

 

 

 

 

ADDRESS[9:0]

 

 

10

UG129_c7_01_051504

 

 

 

Figure 7-1:Standard Implementation using a Single 1Kx18 Block RAM as the Instruction Store

Standard Configuration – Single 1Kx18 Block RAM

In most applications, PicoBlaze instructions are stored in a single FPGA block RAM, configured as a 1Kx18 ROM shown in Figure 7-2. The application code is assembled and ultimately compiled as part of the FPGA design. The instruction store is automatically loaded into the attached block RAM during the FPGA configuration process.

PicoBlaze 8-bit Embedded Microcontroller

www.xilinx.com

59

UG129 (v1.1.2) June 24, 2008

Page 59
Image 59
Xilinx UG129 manual Instruction Storage Configurations, Standard Configuration Single 1Kx18 Block RAM