[an error occurred while processing this directive]

Chapter start ] [ Previous page ] [ Next page ]


Free 100 MB email now available on DACafe! Click here to sign up
Buy ASICs... the book today at Amazon!
Search This Book:

15.6  FPGA Partitioning

In Section 15.3 we saw how many different issues have to be considered when partitioning a complex system into custom ASICs. There are no commercial tools that can help us with all of these issues—a spreadsheet is the best tool in this case. Things are a little easier if we limit ourselves to partitioning a group of logic cells into FPGAs—and restrict the FPGAs to be all of the same type.

15.6.1 ATM Simulator

In this section we shall examine a hardware simulator for Asynchronous Transfer Mode ( ATM ). ATM is a signaling protocol for many different types of traffic including constant bit rates (voice signals) as well as variable bit rates (compressed video). The ATM Connection Simulator is a card that is connected to a computer. Under computer control the card monitors and corrupts the ATM signals to simulate the effects of real networks. An example would be to test different video compression algorithms. Compressed video is very bursty (brief periods of very high activity), has very strict delay constraints, and is susceptible to errors. ATM is based on ATM cells (packets). Each ATM cell has 53 bytes: a 5-byte header and a 48-byte payload; Figure 15.4 shows the format of the ATM packet. The ATM Connection Simulator looks at the entire header as an address.

 

FIGURE 15.4  The asynchronous transfer mode (ATM) cell format. The ATM protocol uses 53-byte cells or packets of information with a data payload and header information for routing and error control.

Figure 15.5 shows the system block diagram of the ATM simulator designed by Craig Fujikami at the University of Hawaii. Now produced by AdTech, the simulator emulates the characteristics of a single connection in an ATM network and models ATM traffic policing, ATM cell delays, and ATM cell errors. The simulator is partitioned into the three major blocks, shown in Figure 15.5 , and connected to an IBM-compatible PC through an Intel 80186 controller board together with an interface board. These three blocks are

 

FIGURE 15.5  An asynchronous transfer mode (ATM) connection simulator.

The error generator performs the following operations on ATM cells:

  1. Payload bit error ratio generation. The user specifies the Bernoulli probability, p BER , of the payload bit error ratio.
  2. Random-variable generation for ATM cell loss, misinsertion, reordering, and deletion.

The delay generator delays, misinserts, and reorders the target ATM cells. Finally, the traffic policer performs the following operations:

  1. Performs header screening and remapping.
  2. Checks ATM cell conformance.
  3. Deletes selected ATM cells.

Table 15.7 shows the partitioning of the ATM board into 12 Lattice Logic FPGAs (ispLSI 1048) corresponding to the 12 blocks shown in Figure 15.5 . The Lattice Logic ispLSI 1048 has 48 GLBs (generic logic blocks) on each chip. This system was partitioned by hand—with difficulty. Tools for automatic partitioning of systems like this will become increasingly important. In Section 15.6.2 we shall briefly look at some examples of such tools, before examining the partitioning methods that are used in Section 15.7 .

TABLE 15.7  Partitioning of the ATM board using Lattice Logic ispLSI 1048 FPGAs. Each FPGA contains 48 generic logic blocks (GLBs).

Chip #

Size

Chip #

 

 

Size

1

42 GLBs

7

 

 

36 GLBs

2

64 k-bit ¥ 8 SRAM

8

 

 

22 GLBs

3

38 GLBs

9

 

 

256 k-bit ¥ 16 SRAM

4

38 GLBs

10

 

 

43 GLBs

5

42 GLBs

11

 

 

40 GLBs

6

64 k-bit ¥ 16 SRAM

12

 

 

30 GLBs

15.6.2  Automatic Partitioning with FPGAs

Some vendors of programmable ASICs provide partitioning software. For example, Altera uses its own software system for design. You can perform design entry using an HDL, schematic entry, or using the Altera hardware design language (AHDL)—similar to PALASM or ABEL. In AHDL you can direct the partitioner to automatically partition logic into chips within the same family, using the AUTO keyword:

DEVICE top_level IS AUTO; % the partitioner assign logic

You can use the CLIQUE keyword to keep logic together (this is not quite the same as a clique in a graph—more on this in Section 15.7.3 ):

CLIQUE fast_logic

BEGIN

|shift_register: MACRO; % keep this in one device

END;

An additional option, to reserve space on a device, is very useful for making last minute additions or changes.


Chapter start ] [ Previous page ] [ Next page ]

Copyright 1997 by Addison Wesley Longman, Inc. No part of this book may be printed, reproduced, stored, or transmitted without the prior written permission of the publisher.
[an error occurred while processing this directive]