User manual

DSM tutorials
macro proc RAMWrite (Address, Data)
{
par
{
seq
{
par
{
RAMAddress = Address;
RAMDataOut = Data;
}
seq(i = 0; i++; i != Time2Cycles (15))
{
par
{
RAMAddress = Address;
RAMDataOut = Data;
NRAMWE = 0;
}
}
par
{
RAMAddress = Address;
RAMDataOut = Data;
}
}
seq(i = 0; i++; i != Time2Cycles (25))
{
delay;
}
}
}
Flash memory device driver
The operation of flash memory is more complicated than asynchronous RAM. It is organized into blocks
of data. An entire block must be erased before any locations within it can be programmed.
This PSL tutorial example is based on the Intel flash memory part 28F640J3A, which is used on the
Celoxica RC100 board. This part has a capacity of 64 Mbits, organized as 64 blocks. You can obtain the
data sheet for this part from
http://developer.intel.com.
The source code for the example is provided in the PSL tutorial workspace. To open the workspace in
DK select
Start>Programs>Celoxica>Platform Developer's Kit>PSL>PSL Tutorial Workspace.
The 28F640J3A has an internal state machine that you must program to perform device operations. The
device has the following connections:
23 bit address bus (input)
16 bit data bus (bi-directional)
chip enable pins (input)
reset pin (input)
output enable pin (input)
www.celoxica.com
Page 38