Академический Документы
Профессиональный Документы
Культура Документы
fdoucet,vsinha,rguptag@ics.uci.edu
EX
EX fwd ALU
Figure1(a), we see that the top level component T is split
horizontally into subcomponents A and B, through a verti- from ID
clk
to MEM
cal cut. Subcomponent B is split vertically into subcompo- BShift & fwd
nents E and F through a horizontal cut. The slicing tree on
clk
Figure1(b) shows the top node and the child nodes. Com- clk
clk
posite nodes (the nodes that are split) are decorated with the
cut type, valued horizontal or vertical. The location of input
and output ports is specified on the sides of a component, Figure 2. Vertical split and port locations for
but it does not appear on this tree. EX stage
4. ICSP Structure Extensions Figure 2 shows the usage of an icsp module to group
sub-modules together with signal placement. This is a
Modeling structure in our project, involves describing grouping of two functional units, themselves ICSP module
two different kinds of things: the subdividing of a compo- class. This is the ICSP equivalent of the SystemC module.
nent into sub-components with relative placement, and the The module is an EX pipeline stage and the sub-module are
mapping of a component’s ports onto locations around the two functional units, ALU and BShift, laid out vertically
periphery of that component. For the implementation of the within the module. The three incoming signals are located
classes, we choose to start with the SystemC [11] C++ class on the left side low, middle and high areas of the EX mod-
interfaces. ule’s periphery. These signals are then split and passed into
While SystemC provides the concept of hierarchical con- the sub-modules. All classes include signal placement. This
tainment, missing are the concepts of relative placement of figure corresponds to the source code of “struct stage ex”.
modules and the attachment or placement of ports with re- The code below shows how the partitioning and port at-
spect to their components. In addition, ICSP introduces tachments shown in Figure 2 are described in an ICSP class.
component and port classes to support the representation of The syntactic elements beginning “icsp ” refer to ICSP li-
placement on par with the module class. brary parts. The functional units are called alu1 and bsh1.
struct stage_ex : public icsp_module { 4.2. Leaf Nodes
alu alu1; // sub-modules: both EX stage functional
BShift bsh1; The code fragments defining the sub-module classes, alu
icsp_inport< bool > clk
and bsu, look similar to this icsp module with the exception
icsp_inport< t_id_ex_reg > id_ex_in; that it is a leaf component in the slicing tree: it does not
icsp_inport< t_ex_mem_reg > ex_mem_in;
icsp_ouport< t_ex_mem_reg > ex_mem_out; have sub-components. For example, the alu code, shown
below, inherits from icsp leaf module
// constructor.
stage_ex( const char * NAME ) struct alu : public icsp_leaf_module {
icsp_inport< bool > clk;
// Initialize base module: icsp_inport< t_id_ex_reg > id_ex_in;
// 1. rectangle partition icsp_inport< t_ex_mem_reg > ex_mem_in;
: icsp_module( name, icsp_ouport< t_ex_mem_reg > ex_mem_out;
ICSP_SPLIT_VERTICALLY,
icsp_corder( icsp_comp( alu1 ), //Constructor
icsp_comp( bsh1 ) ), alu( const char *NAME )
: icsp_sync(NAME,
// 2. Port placement. icsp_porder(
icsp_porder( icsp_ppair( clk, ICSP_LOWER_LEFT ),
icsp_ppair( clk, ICSP_LOWER_LEFT ), icsp_ppair( id_ex_in, ICSP_UPPER_LEFT ),
icsp_ppair( id_ex_in, ICSP_UPPER_LEFT ), icsp_ppair( ex_mem_in, ICSP_MID_LEFT ),
icsp_ppair( ex_mem_in, ICSP_MID_LEFT ), icsp_ppair( ex_mem_out, ICSP_UPPER_RIGHT ))
icsp_ppair( ex_mem_out, ICSP_UPPER_RIGHT )) )
) ...
...
IF ID MEM WB
[5] T. Kam, S. Rawat, D. Kirkpatrick, R. Roy, G. S. Spirakis,
clk
N. Sherwani, and C. Peterson. Eda challenges facing future
clk clk
BShift
clk clk microprocessor design. IEEE Transactions on Computer-
clk Aided Design of Integrated Circuits and Systems, December
clk clk 2000.
D-Mem
[6] D. Sylvester and K. Keutzer. Getting to the bottom of deep
I-Mem
submicron. In International Conference on Computer-Aided
Reg File
Design, 1998.
[7] S. Tarafdar and M. Lesser. A data-centri approach to high-
Figure 3. Horizontal split and port locations level synthesis. IEEE Transactions on Computer-Aided De-
for DLX pipeline sign of Integrated Circuits and Systems, November 2000.
[8] K. Wakabayashi and T. Okamoto. C-based soc design flow
and eda tools: An asic and system vendor perspective. IEEE
Transactions on Computer-Aided Design of Integrated Cir-
cuits and Systems, December 2000.
5. Conclusion [9] Accelera C/C++ Class Library Standardization Working
Group home page: http://www.eda.org/alc-wgp.
In this paper, we first highlighted the importance of [10] IEEE/DATC C++ Modeling Standardization Effort home
structural information in high level models. Then, we gave page: http://www.ics.uci.edu/ rgupta/datc/.
an overview of what structural information is capturable in [11] SystemC home page: http://www.systemc.org.
currently available languages. Then, we defined a set of [12] The Superlog Language home page:
http://www.superlog.org/.
semantics to capture the structural information for layout
composition. Finally, we described an implementation of
these semantics in the ICSP class library.
This information can be useful on the multiple levels of
floorplanning activity: overall chip layout, optimization of
individual cores and critical path optimization. The primary
use of the ICSP library is in definition of structure to aid
the design and synthesis of structural blocks, for data flow
or structurally regular datapath designs [1]. Future work is
to use the ICSP class interfaces to characterize RTL class
libraries to do datapath composition and to add cell size and
wire length attributes.
6. Acknowledgments
References
[1] A. Chowdhary, S. Kale, P. K. Saripella, N. K. Sehgal, and
R. K. Gupta. Extraction of functional regularity in datapath