Digital Computer Arithmetic Datapath Design Using Verilog HDL

Front Cover
Springer Science & Business Media, 2004 - Computers - 180 pages
This text presents basic implementation strategies forarithmetic datapath designs and methodologies utilized in the digitalsystem. The author implements various datapath designs for addition, subtraction, multiplication, and division. Theory is presented toillustrate and explain why certain designs are chosen. Eachimplementation is discussed in terms of design choices and howparticular theory is invoked in the hardware.Along with the theory that emphasizes the design in question, Verilogmodules are presented for understanding the basic ideas that accompanyeach design. Structural models are implemented to guarantee correctsynthesis and for incorporation into VLSI schematic-capture programs.From the modules, the reader can easily add or modify existing code tostudy current areas of research in the area of computer arithmetic.The emphasis is on the arithmetic algorithm and not the circuit. Forany design, both algorithmic and circuit trade-offs should be adheredto when a design is under consideration. Therefore, the idea is toimplement each design at the RTL level so that it may be possiblyimplemented in many different ways (i.e. standard-cell orcustom-cell). Thus, professionals, researchers, students, and thosegenerally interested in computer arithmetic can understand howarithmetic datapath elements are designed and implemented.Also included is a CD-ROM which contains the files discussed in thebook. The CD-ROM includes additional files utilized in preparing thedesigns in Verilog including scripts to automatically generate Verilogcode for parallel carry-save and tree multipliers. Each Verilogdesign also contains each module including testbenches to facilitatetesting and verification.
 

Contents

MOTIVATION
1
Main Objective
2
13 Datapath Design
3
VERILOG AT THE RTL LEVEL
7
22 Naming Methodology
10
221 Gate Instances
11
222 Nets
12
224 Connection Rules
13
45 Truncated Multiplication
71
46 Twos Complement Multiplication
78
47 SignedDigit Numbers
82
48 Booths algorithm
86
481 Bitwise Operators
87
49 Radix4 Modified Booth Multipliers
89
491 Signed Radix4 Modified Booth Multiplication
91
410 Fractional Multiplication
92

225 Vectors
14
227 Nested Modules
15
the Test Bench
16
231 Test Benches
18
24 Other Odds and Ends within Verilog
19
242 Replication
21
For Whom the Bell Tolls
22
252 EventBased Timing
23
26 Synopsys Design Ware Intellectual Property IP
24
28 Summary
26
ADDITION
27
31 Half Adders
28
33 Ripple Carry Adders
30
34 Ripple Carry AdderSubtractor
31
341 Carry Lookahead Adders
34
3411 Block Carry Lookahead Generators
36
35 Carry Skip Adders
40
351 Optimizing the Block Size to Reduce Delay
42
36 Carry Select Adders
43
361 Optimizing the Block Size to Reduce Delay
46
37 Prefix Addition
47
38 Summary
52
MULTIPLICATION
55
41 Unsigned Binary Multiplication
56
43 CarrySave Array Multipliers CSAM
60
44 Tree Multipliers
61
442 Dadda Tree Multipliers
65
443 Reduced Area RA Multipliers
68
411 Summary
93
DIVISION USING RECURRENCE
103
51 Digit Recurrence
104
52 Quotient Digit Selection
105
521 Containment Condition
106
53 OntheFlyConversion
108
54 Radix 2 Division
112
55 Radix 4 Division with a 2 and Nonredundant Residual
115
551 Redundant Adder
118
56 Radix 4 Division with a 2 and CarrySave Adder
119
57 Radix 16 Division with Two Radix 4 Overlapped Stages
122
58 Summary
126
ELEMENTARY FUNCTIONS
129
61 Generic Table Lookup
131
62 Constant Approximations
133
63 Piecewise Constant Approximation
134
64 Linear Approximations
136
641 Round to Nearest Even
138
65 Bipartite Table Methods
141
651 SBTM and STAM
142
CORDIC
147
67 Summary
152
DIVISION USING MULTIPLICATIVEBASED METHODS
158
72 MultiplicativeDivide Using Convergence
163
73 Summary
165
References
168
Index
176
Copyright

Other editions - View all

Common terms and phrases