



















































































Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
A step-by-step tutorial on implementing the self-reconfigurable gate array (srga-ut) design, which is capable of switching context and performing memory access operations in a single clock cycle. The memory cell, switch structure, pe structure, synthesis process, and implementation of logic cells, memory cells, and switches in an 8x8 array. It also includes figures and a list of acronyms for reference.
Typology: Papers
1 / 91
This page cannot be seen from the preview
Don't miss anything!




















































































To the Graduate Council:
I am submitting herewith a thesis written by Gabriel Cozmin Chereches entitled
and content and recommend that it be accepted in partial fulfillment of the requirement for the degree of Master of Science, with a major in Electrical Engineering.
Dr. Don Bouldin Major Professor
We have read this thesis and recommend its acceptance:
Dr. Gregory Peterson
Dr. Itamar Elhanany
Accepted for the Council:
Anne Mayhew Vice Chancellor and Dean of Graduate Studies
(Original signatures are on file with official student records.)
Design and Verification o a Reusable Self-Reconfigurable
Gate Array Architecture
f
December 2005
Abstract
This thesis presents the design and verification of a Self-Reconfigurable Gate
step tutorial and comprehensive documentation.
The original SRGA [1], created at the University of Southern California, is an innovative architecture for a reconfigurable device that allows single cycle context switching and single cycle random access to a unified on-chip configuration/data memory. The key architecture that enables the above two features is the use of a mesh of trees based interconnect with logic cells and memory blocks at the leaf nodes and identical switches at the parent nodes.
design, to be implemented using the available University of Tennessee electronic design automation tools. An 8x8 array of PEs (Processing Elements) was synthesized and routed targeting a standard cell library for a 0.18 μm process. The synthesized design can store eight configuration contexts in each PE (this number can be modified by editing the Verilog files). The place and route generated a core-chip size of 5,413,300 μm^2 , and contains 354,053 number of
capable to switch context and perform memory access operations in a single clock cycle.
ModelSim tools were used for verification and simulation at all levels, Design Compiler executed the synthesis and created the netlist design, and First Encounter SoC performed the place and route and created the delay constraints.
iii
SoC – System on Chip SRGA – Self-Reconfigurable Gate Array
SRR – Source Row Register
ix
Chapter 1: Introduction
1.1 Thesis Goals
The objective of this thesis was to use the open code of the Self- Reconfigurable Gate Array (SRGA) architecture, created by the Department of EE-Systems at University of Southern California and the Department of Mathematics at the University of Trento (Italy), and make the minimum adjustments necessary to adapt and implement using the available EDA (electronic design automation) tools at the Department of ECE at the University
for reuse, accessible with a step-by-step tutorial and comprehensive documentation.
was required. The first step was to examine the RTL (register transfer level) design, make the appropriate adjustments and pass the pre-synthesis verification stage. The second challenge was to synthesize the RTL design, create the netlist and pass the synthesis verification stage. And the last step was to generate the place and route from the netlist design, produce the timing delay files, and test the final design for proper functionality.
The EDA tools used to implement the SRGA were: ModelSim for verification and simulation at all stages, Design Compiler for synthesis and creating the netlist, and First Encounter for performing the place and route and creating the delay files.
The fifth chapter shows the implementation of the 8x8 array sub-blocks in the same manner as the tutorial. Some blocks were small enough to be proven just by verifying the pre-synthesis RTL step.
followed by the conclusion remarks and suggestions for future possibilities. The overall thesis provides a detailed documentation for a reusable design.
Chapter 2: Background
2.1 Reconfigurable Technology
Reconfigurability denotes the potential of a system to dynamically change its behavior usually in response to changes in its environment. In the computing world, the Field Programmable Gate Arrays (FPGAs) are the most popular means of accomplishing reconfigurability. An FPGA consists of an array of programmable logic elements and programmable interconnects. The logic elements can be logic gates (AND, OR, XOR, Invert), lookup tables (memory usually RAM), or flip-flops [2]. The interconnects allow the logic elements to be connected as needed by the design.
The logic elements and interconnects can be programmed by the customer so that the FPGA can perform a certain functionality. This functionality can be reconfigured to suit new application requirements desired by the customer by writing appropriate bits into the configuration memory. The challenges with most FPGAs however, whether they are reconfigured at compile time or runtime, is that they require an external source to execute the reconfiguration.
A device, that is capable to generate configuration bits at runtime and use them to modify its own configuration, exhibits self-reconfiguration. A self- reconfigurable device needs to be able to store multiple contexts of configuration information and context switch between them. The configured logic should be able to access any of the contexts of information stored and perform self- reconfiguration by modifying the contents of the information stored. When the configured logic has made the modifications to the configuration information, the device should be able to switch context to any of the contexts of configuration stored. For an efficient self-reconfiguration to occur, the device should be able 4
Figure 2.2.1: Design for Reuse Diagram [5]
number of sub-designs, given that each module has the same complexity. During development with planned design reuse, the designer will spend more time in creating a reusable block by providing comprehensive documentation and more adaptable interface.
The design for reuse techniques are closely studied in today’s SoC development. A basic combination of such reusable features is known as a platform. The platform used to implement a SoC greatly impacts all of the issues and is the fundamental decision the hardware designers must make at the start of each new project. By 2010 the percentage of IP contained in a System-on-Chip application is predicted to grow to 95% [6].
accessible with a step-by-step tutorial and comprehensive documentation.
The original Self-Reconfigurable Gate Array Architecture [1] is an open core design implemented by the Department of EE-Systems at University of Southern California and the Department of Mathematics at the University of Trento (Italy).
6
The reconfigurable device allows single cycle context switching and single cycle random access to the unified on-chip memory which stores the configuration data. Both features are necessary for efficient self-reconfiguration. The context switching feature permits arbitrary regions of the chip to selectively switch context. The memory access feature allows data transfer between logic cells and memory locations as well as between memory locations. A mesh of trees based interconnects with logic cells and memory blocks at the leaf nodes and identical switches at the other nodes make it possible to perform the above features. Figure 2.3.1 shows the basic SRGA architecture of a 4x4 array of PEs.
The architecture can be of any N x N array of PEs. The PE sits at the leaf node of the mesh of trees interconnects and is composed of a logic cell, memory block, and memory interface. Each switch is identical except that some switches are connected in a column mesh network and some are connected in a row mesh network. Each PE is connected to a row switch and a column switch.
Figure 2.3.1: SRGA Architecture 7
The memory interface generates the proper inputs to the memory block and to some extent to the logic cell by taking the register signals and combining them through basic logic gates to create the appropriate signals.
Chapter 3: Component Background
3.1 Components Overview
This chapter will describe in details the structure of each component of the
The changes, which will be pointed out throughout the next three chapters, were necessary for the design to be adapted and able to implement using the
but was mostly adjusted to be able to pass the verification stages of pre- synthesis, synthesis and place and route.
at the leaf node of the mesh of trees interconnects and is composed of a logic cell, memory block, and memory interface (described later in this chapter). Each switch is identical except that some switches are connected in a column mesh network and some are connected in a row mesh network. Each PE is connected to a row switch and a column switch.
The N x N array of PEs is configured by inputting configuration contexts (described in section 3.3) into the memory array of each PE – which can store
switch context and perform memory operations in a single clock cycle. This is done through a number of global and periphery registers.
3.2 Registers
The memory, interface, module takes signals from the registers and creates the
10