|
|
|||||||||||||||||||||||||||||||||
|
Generating LEB Netlists In order to verify that our upgrades to VPR were correct, we needed to generate a set of benchmark circuits which contained LEBs. One elegant solution to this was to convert a random sample of CLBs to LEBs in existing VPR netlists. Assuming LEBs represent large blocks such as RAMs, this conversion method was reasonable since combinational logic can be implemented within RAMs. Assuming that the current CLB does not contain any registers, CLBs can be packed into RAMs or, in our case, LEBs. General MethodCLBs are chosen at random and are either joined in pairs to form a large LEB or single CLBs are directly converted a LEB. After a percentage of CLBs are converted into LEBs, where the percentage is user defined, the conversion ends. Implementation DetailsWe modified t-vpack [Betz1997] to generate our LEB netlist. t-vpack is part of the University of Toronto FPGA Place and Route CAD suite that is responsible for converting a LUT-based technology mapped netlist into CLBs for placement on an FPGA. In order to generate LEBs from CLBs, we added a post-processing step after clustering in t-vpack. This post-processing step randomly selects a percentage of clusters to be converted into LEBs. Clusters could either be joined in pairs to form an LEB or be directly converted into an LEB. Once the conversion is completed, the final converted netlist is printed out to a ".net" file which is read in by VPR.
The ".net" file has basic syntax for describing blocks as follows:
When directly converting a .clb into a .leb, the subblock:
fields are removed and the type field is converted from .clb to .leb.
The following is an example of converting clb_a into leb_simp.
When converting a clb pair into a single LEB, the same steps as the
singular conversion are followed; however, the clb pins of the clb pair
are combined where the clb inputs are placed at the front of the LEB
pinlist, followed by the clb outputs, and ending with the clock pins.
Thus, the leb with have twice as many pins as a single clb. The following
shows an example of converting clb_a and clb_b into a single
leb. Program Usage
Please contact Andrew Ling if you wish to have a copy of the LEB
generator. The program accepts all of
the original t-vpack flags and runs as a basic clusterer if no LEB specific flags
are used. The following table lists the LEB specific flags and how to
use them. The Default description describes the behaviour of
t-vpack when the associated flag is omitted.
Last updated Dec 2005 |