Verification of Parameterised FPGA Circuit Descriptions with Layout ...
Verification of Parameterised FPGA Circuit Descriptions with Layout ... Verification of Parameterised FPGA Circuit Descriptions with Layout ...
CHAPTER 5. SPECIALISATION 124 Yin ACCin Qin y x Figure 5.11: Virtex-II cell configuration to create a parallel multiplier ACCout Yin Pout SLICE LOGIC Xin Xout Qin Pin Xin (a) Standard cell design Yout SUMout Yin Pout ACCin Pin ACCout Qin SUMout (b) Specialised X=0 Figure 5.12: Functional cells for parallel multiplier block multcell ((wire acc in, wire y in), (wire acc out, wire p out, wire x out)) ∼ ((wire q in, wire p in, wire x in), (wire sum out, wire y out)) attributes { height = 1. width = 1. }{ wire xored sig. y out = y in. x out = x in. acc out = acc in. (x in, y in, q in) ; mult lut ; xored sig at (0,0). (p in, xored sig) ; xorcy ; sum out at (0,0). ((x in, y in), p in) ; fst mult and ;muxcy xored sig ;p out at (0,0). } Figure 5.13: Quartz description of the multiplier cell Yout SUMout
CHAPTER 5. SPECIALISATION 125 block mult (int n) (wire y[n], wire x[n]) ∼ (wire z[n]) { wire zeros[n]. int j. for j = 0..n−1 { zeros[j] = false. } . (zeros, y) ; zip 2 ; rev n ; converse (pi1) ; grid (n, n, multcell) ; [converse (zip 3), map (n, pi1) ; rev n] ; ((zeros, zeros, x), z) at (0,0). } Figure 5.14: Quartz description of the multiplier grid designed specifically for a real circuit architecture and thus has different data-flow. When the value of the x input is known the circuit can be specialised. When x = 0, the individual cell can be replaced by the arrangement shown in Figure 5.12(b). Because the x bit value is common to the entire column the entire column can be eliminated and replaced with an iterative wiring arrangement that directly connects the sum out outputs of the previous column to the sum out output of the current column displaced vertically by one cell. This is described in a spec multcol block which produces a specialised multiplier with unnecessary rows eliminated. Rather than using the grid combinator, we describe a multiplier with column-level special- isation using irow and this spec multcol block. spec multcol is parameterised by a boolean array of the bit values of static signal x and the index parameterisation of irow is used to extract the correct value for each column. This is just one way of describing this behaviour, an alternative would be to zip the boolean vector with the other column inputs and use the standard row combinator. The general and specialised multipliers can be overloaded so that the correct instance of mult is selected depending on whether a static or dynamic x value is specified. 5.5.2 Results We expect the performance of the specialised multiplier to depend on the precise value of the x input, since 0s in the x value do not require any computation at all. Therefore we synthe-
- Page 83 and 84: CHAPTER 4. VERIFYING CIRCUIT LAYOUT
- Page 85 and 86: CHAPTER 4. VERIFYING CIRCUIT LAYOUT
- Page 87 and 88: CHAPTER 4. VERIFYING CIRCUIT LAYOUT
- Page 89 and 90: CHAPTER 4. VERIFYING CIRCUIT LAYOUT
- Page 91 and 92: CHAPTER 4. VERIFYING CIRCUIT LAYOUT
- Page 93 and 94: CHAPTER 4. VERIFYING CIRCUIT LAYOUT
- Page 95 and 96: CHAPTER 4. VERIFYING CIRCUIT LAYOUT
- Page 97 and 98: CHAPTER 4. VERIFYING CIRCUIT LAYOUT
- Page 99 and 100: CHAPTER 4. VERIFYING CIRCUIT LAYOUT
- Page 101 and 102: CHAPTER 4. VERIFYING CIRCUIT LAYOUT
- Page 103 and 104: CHAPTER 4. VERIFYING CIRCUIT LAYOUT
- Page 105 and 106: CHAPTER 4. VERIFYING CIRCUIT LAYOUT
- Page 107 and 108: CHAPTER 4. VERIFYING CIRCUIT LAYOUT
- Page 109 and 110: CHAPTER 4. VERIFYING CIRCUIT LAYOUT
- Page 111 and 112: CHAPTER 4. VERIFYING CIRCUIT LAYOUT
- Page 113 and 114: CHAPTER 4. VERIFYING CIRCUIT LAYOUT
- Page 115 and 116: CHAPTER 4. VERIFYING CIRCUIT LAYOUT
- Page 117 and 118: Chapter 5 Specialisation In this ch
- Page 119 and 120: CHAPTER 5. SPECIALISATION 109 opera
- Page 121 and 122: CHAPTER 5. SPECIALISATION 111 // Ha
- Page 123 and 124: CHAPTER 5. SPECIALISATION 113 circu
- Page 125 and 126: CHAPTER 5. SPECIALISATION 115 const
- Page 127 and 128: CHAPTER 5. SPECIALISATION 117 block
- Page 129 and 130: CHAPTER 5. SPECIALISATION 119 Modif
- Page 131 and 132: CHAPTER 5. SPECIALISATION 121 Buffe
- Page 133: CHAPTER 5. SPECIALISATION 123 a fas
- Page 137 and 138: CHAPTER 5. SPECIALISATION 127 y y y
- Page 139 and 140: CHAPTER 5. SPECIALISATION 129 with
- Page 141 and 142: CHAPTER 6. LAYOUT CASE STUDIES 131
- Page 143 and 144: CHAPTER 6. LAYOUT CASE STUDIES 133
- Page 145 and 146: CHAPTER 6. LAYOUT CASE STUDIES 135
- Page 147 and 148: CHAPTER 6. LAYOUT CASE STUDIES 137
- Page 149 and 150: CHAPTER 6. LAYOUT CASE STUDIES 139
- Page 151 and 152: CHAPTER 6. LAYOUT CASE STUDIES 141
- Page 153 and 154: CHAPTER 6. LAYOUT CASE STUDIES 143
- Page 155 and 156: CHAPTER 6. LAYOUT CASE STUDIES 145
- Page 157 and 158: CHAPTER 6. LAYOUT CASE STUDIES 147
- Page 159 and 160: CHAPTER 6. LAYOUT CASE STUDIES 149
- Page 161 and 162: CHAPTER 6. LAYOUT CASE STUDIES 151
- Page 163 and 164: CHAPTER 6. LAYOUT CASE STUDIES 153
- Page 165 and 166: CHAPTER 6. LAYOUT CASE STUDIES 155
- Page 167 and 168: CHAPTER 6. LAYOUT CASE STUDIES 157
- Page 169 and 170: CHAPTER 6. LAYOUT CASE STUDIES 159
- Page 171 and 172: CHAPTER 6. LAYOUT CASE STUDIES 161
- Page 173 and 174: CHAPTER 6. LAYOUT CASE STUDIES 163
- Page 175 and 176: CHAPTER 7. CONCLUSION AND FUTURE WO
- Page 177 and 178: CHAPTER 7. CONCLUSION AND FUTURE WO
- Page 179 and 180: CHAPTER 7. CONCLUSION AND FUTURE WO
- Page 181 and 182: CHAPTER 7. CONCLUSION AND FUTURE WO
- Page 183 and 184: CHAPTER 7. CONCLUSION AND FUTURE WO
CHAPTER 5. SPECIALISATION 124<br />
Yin<br />
ACCin<br />
Qin<br />
y<br />
x<br />
Figure 5.11: Virtex-II cell configuration to create a parallel multiplier<br />
ACCout<br />
Yin<br />
Pout<br />
SLICE LOGIC<br />
Xin<br />
Xout<br />
Qin Pin<br />
Xin<br />
(a) Standard cell design<br />
Yout<br />
SUMout<br />
Yin<br />
Pout<br />
ACCin<br />
Pin<br />
ACCout<br />
Qin<br />
SUMout<br />
(b) Specialised X=0<br />
Figure 5.12: Functional cells for parallel multiplier<br />
block multcell ((wire acc in, wire y in), (wire acc out, wire p out, wire x out)) ∼<br />
((wire q in, wire p in, wire x in), (wire sum out, wire y out))<br />
attributes { height = 1. width = 1. }{<br />
wire xored sig.<br />
y out = y in.<br />
x out = x in.<br />
acc out = acc in.<br />
(x in, y in, q in) ; mult lut ; xored sig at (0,0).<br />
(p in, xored sig) ; xorcy ; sum out at (0,0).<br />
((x in, y in), p in) ; fst mult and ;muxcy xored sig ;p out at (0,0).<br />
}<br />
Figure 5.13: Quartz description <strong>of</strong> the multiplier cell<br />
Yout<br />
SUMout