Design of Floating-Point Multiplication and Division Circuits using SystemVerilog
Creators: name: Αυγουστίδης, Αναστάσιος Γεωργίου
Publisher: name: Aristotle University of Thessaloniki
Year: 2023
Subjects: Ψηφιακή σχεδίαση
Αριθμοί κινητής υποδιαστολής
Ψηφιακά κυκλώματα
Digital Design
Floating-Point Numbers
Digital Circuits

description: In this thesis, the development, verification and synthesis of two floating-point units, a multiplier and a divider are presented. The design of the multiplier includes the implementation of three multiplication blocks, an Array multiplier, a Booth multiplier and a Behavioral implementation using the multiplication operator. For the division, the circuit designed implements the Sweeney, Robertson and Tocher algorithm (SRT), the predominant implementation used in the industry today. All designed presented are compatible with the IEEE 754 floating point number standard, support 6 rounding modes and include parametrizable pipelining with 0, 1, 2 or 3 stages. Denormals and NaN (Not a Number) values are not supported. The designed were formally verified using the Cadence JasperGold tool, and functionally with the use of a testbench comparing results with reference designs supplied by Cadence. Logic Equivalence Check was also performed, to ensure that synthesis did not affect functionality. Synthesis was performed with the Cadence Genus tool and provided results for all pipeline stages for three different number formats, Single Precision, Half Precision and Bfloat16. Performance comparisons were conducted with the corresponding designs by Cadence. Finally, using the Cadence Joules tool, power graphs were extracted and compared with the equivalent Cadence circuits.
description: Στην παρούσα διπλωματική εργασία παρουσιάζεται η ανάπτυξη, η επαλήθευση λειτουργίας και η υλοποίηση δύο κυκλωμάτων υπολογισμού αριθμών κινητής υποδιαστολής, ενός πολλαπλασιαστή και ενός διαιρέτη. Κατά την ανάπτυξη του πολλαπλασιαστή σχεδιάστηκαν τρία διαφορετικά κυκλώματα δυαδικού πολλαπλασιασμού, ώστε να συγκριθούν αργότερα μεταξύ τους. Οι τρεις υλοποιήσεις που δημιουργήθηκαν είναι: πολλαπλασιαστής πίνακα (array multiplier), ένας πολλαπλασιαστής Booth, και μία συμπεριφορική υλοποίηση με την χρήση του τελεστή πολλαπλασιασμού. Για την διαίρεση, σχεδιάστηκε κύκλωμα βασισμένο στον αλγόριθμο Sweeney, Robertson and Tocher (SRT), την επικρατούσα υλοποίηση στη βιομηχανία σήμερα. Τα κυκλώματα που σχεδιάστηκαν είναι συμβατά με το πρότυπο IEEE 754 των αριθμών κινητής υποδιαστολής, υποστηρίζουν 6 λειτουργίες στρογγυλοποίησης, και διαθέτουν παραμετροποιήσιμη λειτουργία διοχέτευσης, με 0, 1, 2 και 3 στάδια. Δεν υποστηρίζουν μη κανονικοποιημένους (denormals) και μη έγκυρους αριθμούς (NaNs). Τα κυκλώματα επαληθεύτηκαν τυπικά με τη χρήση του λογισμικού Cadence Jaspergold, και λειτουργικά με τη χρήση δοκιμών και συγκρίσεων με αντίστοιχα κυκλώματα αναφοράς της Cadence. Επίσης, πραγματοποιήθηκε έλεγχος λογικής ισοδυναμίας, ώστε να επιβεβαιωθεί, ότι η διαδικασία της σύνθεσης δεν επηρέασε την λογική λειτουργία τους. Κατά τη σύνθεση με το εργαλείο Cadence Genus παρήχθησαν αποτελέσματα επιδόσεων και έκτασης για τρία αριθμητικά πρότυπα: Μονής ακρίβειας, μισής ακρίβειας και bfloat16. Οι επιδόσεις των σχεδιασμένων κυκλωμάτων συγκρίθηκαν με τις επιδόσεις των αντίστοιχων κυκλωμάτων που παρέχονται από την Cadence. Επίσης, μέσω του εργαλείου Joules δημιουργήθηκαν και παραστάσεις κατανάλωσης ενέργειας των κυκλωμάτων και συγκρίθηκαν με τους αντίστοιχους αριθμούς που δόθηκαν από το Genus.