High-Level Model of c7552
Statistics: 207 inputs; 108 outputs; 3512 gates
Function: 34-bit adder and magnitude comparator with input parity checking
This benchmark circuit contains a 34-bit adder (M5), a 34-bit magnitude comparator (M8) using another 34-bit adder, and a parity checker (M9). Each of the XA, YA, and YB buses is fed by a set of 2:1 multiplexers controlled by the Sel input. Bits 31-22 of XA and YB can be set to logic 0 with the Mask input. The two adders M5 and M8 are identical, and are of carry select type, as are those of c5315. They consist of alternating 4- and 5-bit blocks, with the last block being 2 bits. The comparator (M8) of this benchmark is similar to that of c2670. It performs the comparison YB>XB (if Sel=0) or YB>!YA1 (if Sel=1) by calculating YB+!XB (if Sel=0) or YB+!YA1 (if Sel=1) (Note: the input bus YA1 is assumed to be inverted). The comparator has an output (CoutY) for the whole 34-bit inputs as well as an output (CoutY_17) for the 17-bit portion of its inputs. Module M7 calculates the parity for the following four parts of the adder output SumX: SumX[8:0], SumX[17:9], SumX[26:18], SumX[33:27]. Module M9 appears to be a type of sanity checker that calculates the AND of the parities of all its inputs.
Inputs/Outputs vs. Netlist numbers
Models:
- I. Original ISCAS gate-level netlist
- II. Verilog hierarchical netlist (functionally equivalent to I)
- III. Verilog flat netlist (flat version of II; functionally equivalent to I, but with minor structural differences)
Detailed bus definitions:
- XA:
- XA[21:0] = XA0[21:0] if Sel=0, XA1[21:0] if Sel=1
- XA[31:22] = XA0[21:0].Mask if Sel=0, XA1[21:0].Mask if Sel=1
- XA[32] = XA[33] = XYAext
- NotXB:
- NotXB[0] = ! XB[0] if Sel=1, logic 0 if Sel=0
- NotXB[31:1] = ! XB[31:1]
- NotXB[33:32] = ! ( XB[33:32]. XYBext )
- YA:
- YA[0] = logic 1 if Sel=0, YA1[0] if Sel=1
- YA[31:1] = NotXB[31:1] if Sel=0, YA1[31:1] if Sel=1
- YA[32] = YA[33] = XYAext.
- YB:
- YB[21:0] = YB0[21:0] if Sel=0, XA1[21:0] if Sel=1
- YB[31:22] = YB0[21:0].Mask if Sel=0, XA1[21:0].Mask if Sel=1
- YB[33:32] = YB0[33:32] + ! XYBext
Output |
Netlist numbers |
---|---|
SumX[33:0] |
469, 471, 327, 330, 333, 336, 324, 298, 301, 304, 307, 310, 313, 316, 319, 295, 347, 350, 353, 356, 359, 362, 365, 368, 344, 376, 379, 382, 385, 388, 391, 394, 397, 373 |
!SumPar[3:0] |
338, 321, 370, 399 |
CoutX1, CoutX2 |
|
CoutY1, CoutY2 |
(258, 264) * , 249 |
CoutY_17 |
252 |
ParCheck[3:0] |
416, 414, 412, 418 |
XBbuf[33:0] |
440, 438, 442, 444, 446, 448, 436, 480, 482, 484, 486, 488, 490, 492, 494, 478, 524, 526, 528, 530, 532, 534, 536, 538, 522, 544, 546, 548, 550, 552, 554, 556, 558, 542 |
StrbOut |
410, 408. 406, 404 |
PCYA0buf[3:0] |
450, 496, 540, 560 |
MiscOut[5:0] |
402, 289, 292, 279, 278, 2 |