ITADN
jeras/ELAU
jeras/ELAU · 文件
文件最后提交记录最后更新时间
README.md

Library of Arithmetic Units

SystemVerilog Edition!

Based on the VHDL library written by Reto Zimmermann.

The library contains various arithmetic operations with multiple architectural choices for different speed requirements. All operations are parametrized in width and performance grade.

Disclaimer

This project is still under active development; some parts may not yet be fully functional, and existing interfaces, toolflows, and conventions may be broken without prior notice. We target a stable release as soon as possible.

License

All code checked into this repository is licensed under the permissive Solderpad Hardware License 0.51 (See LICENSE).

Available Operations

Adders

NameDescriptionunsignedsignedslowmediumfast
AddAdderXXSMF
AddCAdder with carry-in, carry-outXSMF
AddCfastAdder with fast carry-in, carry-outXSMF
AddVAdder with carry-in, 2’s compl. overflow flagXSMF
AddMod2Nm1Adder modulo 2^n - 1 (double zero representation)XSMF
AddMod2Nm1s0Adder modulo 2^n - 1 (single zero representation)XSMF
AddMod2Np1Adder modulo 2^n + 1XSMF
AddCsvCarry-save adder (3 operands)XXF
AddMopMulti-operand adderXXSMF
AddMopCsvCarry-save multi-operand adderXXSF

Subtractors, Complementers

NameDescriptionunsignedsignedslowmediumfast
SubSubtractorXXSMF
SubCSubtractor with carry-in, carry-outXSMF
SubCZSubtractor with carry-in, carry-out, zero flagXSMF
SubVSubtractor with carry-in, 2’s compl. overflow flagXSMF
SubVZSubtractor with carry-in, 2’s compl. ovl. & zero flagXSMF
Neg2’s complementer (negation)XSMF
NegC2’s complementer, conditionalXSMF
AbsValAbsolute value for 2’s complement numbersXSMF

Adder-Subtractors

NameDescriptionunsignedsignedslowmediumfast
AddSubAdder-subtractorXXSMF
AddSubCAdder-subtractor with carry-in, carry-outXSMF
AddSubVAdder-subtractor with carry-in, 2’s compl. ovl. flagXSMF

Incrementers, Decrementers

NameDescriptionunsignedsignedslowmediumfast
IncIncrementerXXSMF
IncCIncrementer with carry-in, carry-outXSMF
DecDecrementerXXSMF
DecCDecrementer with carry-in, carry-outXSMF
IncDecIncrementer-decrementerXXSMF
IncDecCIncrementer-decrementer with carry-in, carry-outXSMF

Comparators

NameDescriptionunsignedsignedslowmediumfast
CmpEQEquality comparatorXXF
CmpGEMagnitude comparatorXSMF
CmpEQGEEquality and magnitude comparatorXXSMF

Multipliers

NameDescriptionunsignedsignedslowmediumfast
MulSgnSigned multiplierXSMF
MulUnsUnsigned multiplierXSMF
MulAddSgnSigned multiplier-adderXSMF
MulAddUnsUnsigned multiplier-adderXSMF
AddMulSgnSigned adder-multiplierXSMF
AddMulUnsUnsigned adder-multiplierXSMF
MulCsvSgnSigned carry-save multiplierXSF
MulCsvUnsUnsigned carry-save multiplierXSF
SqrSgnSigned squarerXSMF
SqrUnsUnsigned squarerXSMF

Dividers, Square-Root Extractors

NameDescriptionunsignedsignedslowmediumfast
DivArrSgnSigned array dividerXS
DivArrUnsUnsigned array dividerXS
SqrtArrUnsUnsigned array square-root extractorXS

Detectors

NameDescriptionunsignedsignedslowmediumfast
AllZeroDetAll-zeroes detectorF
AllOneDetAll-ones detectorF
SumZeroDetUnsigned array square-root extractorXXF
LeadZeroDetLeading-zeroes detector (LZD)XSMF
LeadOneDetLeading-ones detector (LOD)XSMF
LeadSignDetLeading-signs detector (LSD)XSMF
Log2Integer logarithm (base 2)XSMF

Encoders, Decoders, Gray

NameDescriptionslowmediumfast
DecodeDecoderF
EncodeEncoderF
Bin2GrayBinary-to-Gray converterF
Gray2BinGray-to-binary converterSMF
IncGrayGray incrementerSMF
IncGrayCGray incrementer with carry-inSMF

Miscellaneous

NameDescriptionslowmediumfast
Cnt(m,k)-counterSF
Cpr(m,2)-compressorSF
RedAndReduce-ANDF
RedOrReduce-ORF
RedXorReduce-XORF
PrefixAndPrefix-ANDSMF
PrefixOrPrefix-ORSMF
PrefixAndOrPrefix-AND-ORSMF
PrefixXorPrefix-XORSMF