| Preface |
|
xi | |
|
Chapter 1 Language Basics |
|
|
1 | (13) |
|
|
|
1 | (1) |
|
|
|
2 | (2) |
|
|
|
4 | (1) |
|
|
|
5 | (1) |
|
|
|
6 | (4) |
|
|
|
10 | (1) |
|
|
|
10 | (1) |
|
|
|
11 | (2) |
|
Chapter 2 Synthesis Basics |
|
|
13 | (20) |
|
|
|
14 | (1) |
|
2.2 Synthesis in a design process |
|
|
15 | (2) |
|
2.3 Value holders for hardware modeling |
|
|
17 | (3) |
|
|
|
20 | (1) |
|
|
|
21 | (10) |
|
|
|
21 | (1) |
|
|
|
22 | (1) |
|
|
|
23 | (2) |
|
2.5.4 Encoding metalogical values |
|
|
25 | (4) |
|
|
|
29 | (1) |
|
2.5.6 Signed and unsigned types |
|
|
29 | (2) |
|
|
|
31 | (2) |
|
Chapter 3 Mapping Statements to Gates |
|
|
33 | (64) |
|
|
|
34 | (2) |
|
|
|
36 | (2) |
|
|
|
38 | (3) |
|
3.3.1 Unsigned arithmetic |
|
|
38 | (1) |
|
|
|
39 | (1) |
|
3.3.3 Computing result size |
|
|
40 | (1) |
|
|
|
40 | (1) |
|
|
|
41 | (1) |
|
|
|
41 | (4) |
|
|
|
42 | (2) |
|
|
|
43 | (2) |
|
|
|
45 | (3) |
|
|
|
48 | (6) |
|
3.7.1. Inferring latches from if statements |
|
|
49 | (4) |
|
|
|
53 | (5) |
|
3.8.1 Inferring latches from case statements |
|
|
56 | (2) |
|
|
|
58 | (1) |
|
|
|
59 | (1) |
|
|
|
59 | (4) |
|
|
|
63 | (10) |
|
|
|
66 | (1) |
|
3.12.2. Multi-phase clocks |
|
|
67 | (1) |
|
3.12.3. With asynchronous preset and clear |
|
|
68 | (3) |
|
3.12.4. With synchronous preset and clear |
|
|
71 | (2) |
|
|
|
73 | (1) |
|
3.14 Other forms of signal assignment |
|
|
74 | (5) |
|
3.14.1. Conditional signal assignment statement |
|
|
74 | (2) |
|
3.14.2. Selected signal assignment statement |
|
|
76 | (1) |
|
3.14.3. Sequential signal assignment statement |
|
|
77 | (2) |
|
|
|
79 | (2) |
|
|
|
81 | (3) |
|
|
|
84 | (1) |
|
|
|
85 | (2) |
|
3.19. Using metalogical values |
|
|
87 | (2) |
|
3.19.1. The don't-care value (D) |
|
|
87 | (1) |
|
3.19.2. The unknown value (U) |
|
|
88 | (1) |
|
3.19.3. The high-impedance value (Z) |
|
|
88 | (1) |
|
3.20. Component instantiation statement |
|
|
89 | (1) |
|
3.21. Using predefined blocks |
|
|
90 | (2) |
|
|
|
92 | (3) |
|
|
|
95 | (2) |
|
Chapter 4 Model Optimizations |
|
|
97 | (18) |
|
|
|
98 | (3) |
|
4.2. Conversion functions |
|
|
101 | (1) |
|
|
|
102 | (1) |
|
4.4. Common subexpressions |
|
|
103 | (1) |
|
|
|
104 | (1) |
|
|
|
105 | (1) |
|
4.7. Commutativity and associativity |
|
|
106 | (1) |
|
|
|
107 | (1) |
|
4.9. Flip-flop and latch optimizations |
|
|
108 | (2) |
|
4.9.1. Avoiding flip-flops |
|
|
108 | (1) |
|
|
|
109 | (1) |
|
|
|
110 | (1) |
|
|
|
111 | (1) |
|
4.12. Building with predefined blocks |
|
|
112 | (3) |
|
|
|
115 | (20) |
|
|
|
116 | (1) |
|
|
|
117 | (4) |
|
5.3. Delays in assignment statements |
|
|
121 | (1) |
|
|
|
122 | (2) |
|
5.5. Signals vs. variables |
|
|
124 | (1) |
|
5.6. Inertial and transport delays |
|
|
125 | (1) |
|
|
|
126 | (1) |
|
5.8. Built-in types and functions |
|
|
127 | (1) |
|
|
|
127 | (2) |
|
|
|
129 | (4) |
|
5.11. Using attribute ENUM_TYPE_ENCODING |
|
|
133 | (2) |
|
Chapter 6 Modeling Hardware Elements for Synthesis |
|
|
135 | (72) |
|
|
|
136 | (2) |
|
6.2. Modeling combinational logic |
|
|
138 | (1) |
|
6.3. Modeling synchronous logic |
|
|
139 | (2) |
|
6.4. Modeling a flip-flop |
|
|
141 | (2) |
|
|
|
141 | (1) |
|
|
|
142 | (1) |
|
6.5 Flip-flop with asynchronous preset and clear |
|
|
143 | (2) |
|
6.6. Flip-flop with synchronous preset and clear |
|
|
145 | (2) |
|
|
|
147 | (2) |
|
6.8. Latch with asynchronous preset and clear |
|
|
149 | (2) |
|
|
|
151 | (1) |
|
6.10. Using a pre-built component |
|
|
152 | (1) |
|
6.11. Writing boolean equations |
|
|
153 | (2) |
|
6.12. Modeling a finite state machine |
|
|
155 | (8) |
|
|
|
155 | (2) |
|
|
|
157 | (2) |
|
|
|
159 | (4) |
|
6.13. Modeling an universal shift register |
|
|
163 | (1) |
|
|
|
164 | (5) |
|
|
|
164 | (3) |
|
|
|
167 | (2) |
|
|
|
169 | (6) |
|
|
|
169 | (1) |
|
|
|
170 | (2) |
|
|
|
172 | (1) |
|
|
|
173 | (2) |
|
6.16. Modeling a generic adder |
|
|
175 | (1) |
|
6.17. Modeling a generic comparator |
|
|
176 | (1) |
|
6.18. Modeling a generic decoder |
|
|
177 | (4) |
|
|
|
177 | (2) |
|
|
|
179 | (1) |
|
|
|
180 | (1) |
|
6.19. Modeling a multiplexer |
|
|
181 | (4) |
|
6.19.1. A simple multiplexer |
|
|
181 | (2) |
|
6.19.2. A generic multiplexer |
|
|
183 | (2) |
|
6.20. Modeling a generic parity circuit |
|
|
185 | (1) |
|
6.21. Modeling a tri-state gate |
|
|
186 | (1) |
|
6.22. A count three 1's model |
|
|
187 | (4) |
|
|
|
191 | (2) |
|
|
|
193 | (10) |
|
|
|
203 | (4) |
| Appendix A Synthesizable Constructs |
|
207 | (10) |
| Appendix B An Arithmetic Package |
|
217 | (6) |
| Appendix C A Generic Library |
|
223 | (8) |
| Bibliography |
|
231 | (4) |
| Index |
|
235 | |