Recently, it has been shown that unused on-chip memories can be valuable when they are used to implement logic.This paper explores how different memory architecture parameters affect its ability to implement logic in dual-mode FPGA Embedded System Blocks. It is shown that the optimum memory architecture has a depth of 32 or 64 words, and that each word should contain 16 bits.
IntroductionTraditionally, applications of field-programmable gate arrays (FPGAs) have been limited to small glue-logic subcircuits. As the logic capacity and speed of FPGAs increase, however, FF'GAs are becoming the technology of choice for implementing large systems. The requirements of larger systems differ from smaller systems, since larger system typically require access to memory. As a result, most modem FPGAs now contain large embedded RAM arrays [ 1, 21. These arrays provide dense implementations of storage, but require the FPGA vendor partition the chip into logic and storage regions when the FPGA is designed. Since circuits have widely varying requirements for memory resources, this "average case" partitioning may result in poor device utilization in logic-intensive applications. More specifically, if memory is not used completely or not at all, the chip area devoted to memory is wasted.However, this area need not be wasted, if unused memory arrays are used to implement logic. Unused memories can be configured as large ROM multiple-input, multiple-output lookup tables. Wilton's SMAP [3] and Cong and Xu's EMBPack [4] are two existing algorithms for mapping logic to unused memory arrays.These algorithms work well if there are only a small number of memory arrays, but as the number of arrays increase, the efficiency of the memories when implementing logic decreases [3]. To improve the logic density when there are a large number of arrays, the APEX20k architecture has enhanced memory arrays called Embedded System Blocks (ESB) [5]. Each ESB can be configured in one of two modes: it can act as a conventional memory, which can be used for storage or logic, or it can act as a programmable array logic (PAL) block for implementing functions as a sum of products. An algorithm, pMapster, which maps circuits to this dual-mode architecture, was presented in [6].While the amount of logic that can be packed into each ESB depends on the quality of the CAD algorithm used to perform the packing [6], the architecture of the ESB can have a very dramatic effect on the achievable packing density. A memory that is too small will result in a small amount of logic being packed into it, while a memory that is too large will result in underutilization. In this paper, we seek to find the optimum width and depth for these ESBs.
Comparison to Previous WorkAn FPGA with dual-mode embedded system blocks is essentially a type of hybrid FPGA as described in [7] in that it contains both lookup-tables (the logic resources) and product-term blocks (the ESBs configured in product-term mode). In [7], the optimum architecture for such an FPGA is sought. Our focus differs ...