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 6. LAYOUT CASE STUDIES 138 new value delays insert previous state locater compactor next state midelem median value Figure 6.5: Block diagram for the median filter simply insert a value into the correct position in an already sorted list. 6.3.1 Circuit Design Our design is loosely based on a state-machine based design previously described in Ruby [26], however our realisation differs substantially and, we would suggest, is made much simpler by using the full features of Quartz rather than basic Ruby relations 2 . Figure 6.5 shows the basic architecture of our filter, with several blocks that operate on a current state and produce a next state. This is essentially the state transition and output logic of a state machine and this circuit can be composed with appropriate registers using the loop combinator. The two inputs to this filter core are the previous state (a set of sorted values) and a single new value. This new value is inserted into the sorted list by the insert block which implements one stage of an insertion sort. If the state contains n elements then the output of the insert block contains n + 1 elements, one of which (the oldest) must now be removed. As well as being connected to the insert block the new value is also fed into an n-element shift register, which is used to determine the value to remove to make the new state. The locater carries this out, matching the value from n cycles ago with the values in the state until the first match is found. The locater is composed of a row of lct cells, which are shown in Figure 6.6(a). These cells 2 The Ruby design was however refined into a bit-level version, while we will concentrate on the word-level circuit.
CHAPTER 6. LAYOUT CASE STUDIES 139 s a a2 f eq or2 d f2 (a) lct cell (b) del cell in through mode (c) del cell in compact mode Figure 6.6: Cells making up various filter blocks output an array of boolean values (d) which control the operation of the compactor block. The value a is the value the locater is “looking for”, s is one of the elements in the state, f is a boolean indicating whether the value has been located yet. Each lct cell compares its state value with the a value and outputs d and f2 values which control the compactor. The compactor is made up of a row of cells which use multiplexers controlled by the d output of the corresponding lct cell. This mode signal configures the dell cell block into one of two configurations: through mode (Figure 6.6(b)) and compact mode (Figure 6.6(c)). The locater configures all compactor cells to the right of the first detected match to the correct value (the same value could be within the current state multiple times) into through mode. This has the effect of routing the detected value to the right, while the other values are routed straight through. The value that appears on the rightmost output of the compactor is discarded. The compactor outputs the correct n elements of the next state. The midelem block is a simple wiring block which outputs the median value by extracting the middle value from the sorted list. 6.3.2 Layout We arrange the insert, locater and compactor blocks vertically roughly as shown in Figure 6.5. lct cell is formed from an equality checker, composed of a column of and3 gates on top of an or2 gate. del cell is implemented by two multiplexers arranged in adjacent columns. The insert insertion-sort block is built from a row of min2 and max2 sorters, with each bit implemented as a comparator function unit and another function unit operating as a
- 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 and 134: CHAPTER 5. SPECIALISATION 123 a fas
- Page 135 and 136: CHAPTER 5. SPECIALISATION 125 block
- 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: CHAPTER 6. LAYOUT CASE STUDIES 137
- 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
- Page 185 and 186: Bibliography [1] A. Aggoun and N. B
- Page 187 and 188: BIBLIOGRAPHY 177 [19] H. Gelernter.
- Page 189 and 190: BIBLIOGRAPHY 179 [41] Y. Li and M.
- Page 191 and 192: BIBLIOGRAPHY 181 [60] L. C. Paulson
- Page 193 and 194: BIBLIOGRAPHY 183 [83] J. Voeten. On
- Page 195 and 196: APPENDIX A. QUARTZ LANGUAGE GRAMMAR
- Page 197 and 198: Appendix B Theoretical Basis for La
CHAPTER 6. LAYOUT CASE STUDIES 139<br />
s<br />
a a2<br />
f<br />
eq<br />
or2<br />
d<br />
f2<br />
(a) lct cell (b) del cell in<br />
through mode<br />
(c) del cell in<br />
compact mode<br />
Figure 6.6: Cells making up various filter blocks<br />
output an array <strong>of</strong> boolean values (d) which control the operation <strong>of</strong> the compactor block.<br />
The value a is the value the locater is “looking for”, s is one <strong>of</strong> the elements in the state, f<br />
is a boolean indicating whether the value has been located yet. Each lct cell compares its<br />
state value <strong>with</strong> the a value and outputs d and f2 values which control the compactor.<br />
The compactor is made up <strong>of</strong> a row <strong>of</strong> cells which use multiplexers controlled by the d output<br />
<strong>of</strong> the corresponding lct cell. This mode signal configures the dell cell block into one <strong>of</strong> two<br />
configurations: through mode (Figure 6.6(b)) and compact mode (Figure 6.6(c)).<br />
The locater configures all compactor cells to the right <strong>of</strong> the first detected match to the<br />
correct value (the same value could be <strong>with</strong>in the current state multiple times) into through<br />
mode. This has the effect <strong>of</strong> routing the detected value to the right, while the other values are<br />
routed straight through. The value that appears on the rightmost output <strong>of</strong> the compactor<br />
is discarded. The compactor outputs the correct n elements <strong>of</strong> the next state.<br />
The midelem block is a simple wiring block which outputs the median value by extracting<br />
the middle value from the sorted list.<br />
6.3.2 <strong>Layout</strong><br />
We arrange the insert, locater and compactor blocks vertically roughly as shown in Figure 6.5.<br />
lct cell is formed from an equality checker, composed <strong>of</strong> a column <strong>of</strong> and3 gates on top <strong>of</strong><br />
an or2 gate. del cell is implemented by two multiplexers arranged in adjacent columns.<br />
The insert insertion-sort block is built from a row <strong>of</strong> min2 and max2 sorters, <strong>with</strong> each<br />
bit implemented as a comparator function unit and another function unit operating as a