Pipelining σε Verilog

A

Aymen

Guest
Έχω γραπτή τον κώδικα αυτό για να εκτελεί πολύπλοκα πολλαπλασιασμό των 2 αριθμών με την συζευτικό από τη δεύτερη σειρά:
Κωδικός:ενότητα PipedCompMultConj (CLK, DR1, di1, dr2, di2, drout, diout)?

εισροών [3:0] DR1, di1, dr2, di2?

εισροών CLK?

εξόδου [7:0] drout, diout?

wire [7:0] R1, R2, R3, R4, R5, R6?reg [15:0] IR?

reg [31:0] PR1?

reg [31:0] PR2?

reg [15:0] OR?αντιστοιχίσετε drout = Ή [7:0]?

αντιστοιχίσετε diout = Ή [15:8]?mult_pipe m1 (IR [3:0], IR [7:4], r1)?

mult_pipe m2 (IR [11:8], IR [15:12], r2)?

mult_pipe m3 (PR1 [23:20], PR1 [27:24], r3)?

mult_pipe m4 (PR1 [19:16], PR1 [31:28], R4)?cla8_adder γ1 (R5, PR2 [7:0], PR2 [15:8])? / / πραγματικό μέρος

cla8_sub c2 (R6, PR2 [23:16], PR2 [31:24])? / / φανταστικό μέροςπάντα @ (negedge CLK)

αρχίζω

IR <= (di2, di1, dr2, DR1)?

PR1 <= (IR, r2, r1)?

PR2 <= (R4, R3, PR1 [15:0])?

Ή <= (R6, R5)?

τέλοςendmodule

 
Γεια Aymen ,

Νομίζω ότι η εφαρμογή είναι εντάξει.Μπορείτε, επίσης, τη σύνθεση που να δείτε τι έχετε.

 
u ευχαριστήσω πολύ wadaye,
έχω συνθέτω αυτόν τον κώδικα χρησιμοποιώντας Xilinx με και χωρίς pipelining.Η μέγιστη συχνότητα που λαμβάνεται με pipelining είναι μικρότερη από την υπόθεση χωρίς pipelining.
!!!???

 
Με Xilinx FPGA όπως Spartan-3 και Virtex-II, πρέπει να είστε προσεκτικοί όταν επιπλέον pipelining πολλαπλασιαστές.Απαιτεί περισσότερα από τα μητρώα θα κάνατε κανονικά να αναμένουν.Να εξετάσει προσεκτικά τη σύνθεση των αποτελεσμάτων και χρονοδιάγραμμα για να δείτε τι συμβαίνει.

Είμαι σίγουρος ASIC τεχνικές είναι διαφορετικές.

Με Xilinx εργαλεία, μπορείτε να χρησιμοποιήσετε απλούς * - Verilog φορείς αντί των instantiating αριθμητική ενότητες.Νομίζω ότι κάνει τον κώδικα πιο εύκολο να το διαβάσετε.

Με την ευκαιρία, μπορείτε να κάνετε ένα πολύπλοκο πολλαπλασιασμό με 3 πολλαπλασιαστές και 5 προσθήκες.

 
Απόσπασμα:

Με την ευκαιρία, μπορείτε να κάνετε ένα πολύπλοκο πολλαπλασιασμό με 3 πολλαπλασιαστές και 5 προσθήκες.
 
για παράδειγμα
x =
a bi
y = c di
πραγματική = AC-BD
im = (α β) (γ δ)-ac-bd
το λόγο ίσως η μέγιστη καθυστέρηση μεταξύ στάδια είναι το ίδιο, ότι δεν αλλάζουν αν έχετε προσθέσει ένα επιπλέον στάδιο
σε σύγκριση με unpipeline δομή, αγωγός strucure excute την ίδια δραστηριότητα σε περισσότερες κύκλων, τόσο η συχνότητα μπορεί να είναι ταχύτερη,
όπως και για τον κώδικα σας, αν έχετε προσθέσει ένα επιπλέον στάδιο, αλλά το λειτουργούν με τη μέγιστη διαδρομή dont μείωση

 
Τι είδους Xilinx FPGA χρησιμοποιείτε;

Τι είναι αυτά mult_piped και cla8 ενότητες;Η Xilinx εργαλεία δεν περιλαμβάνουν αυτές τις ενότητες.Δύο λεπτά αργότερα ...Oh my gosh, χρησιμοποιείτε αυτό;
http://www.pldworld.com/_hdl/1/www.doulos.co.uk/models/model_9901.htm

Δεν έχω σπουδάσει ότι κώδικα, αλλά σε πρώτη ματιά φαίνεται πολύ περίπλοκο, και για ένα λάθος pipelining Xilinx FPGA.

Πιστεύετε πραγματικά ανάγκη μόνο 4-bit πολλαπλασιασμό;Πιστεύω ότι ένα πολλαπλασιαστικό Xilinx μπλοκ μπορεί να κάνει δύο μικρά πολλαπλασιασμών ταυτόχρονα.

 
από τον τρόπο που μόνο αν με 4 δυφία για πολλαπλασιαστικό
το κόστος του υλικού της 3ης πολλαπλασιαστές και 5 αθροιστές
ίσως δεν καλύτερη από το 4 πολλαπλασιαστές και 2 αθροιστές

 
Απόσπασμα:Πιστεύετε πραγματικά ανάγκη μόνο 4-bit πολλαπλασιασμό;
Πιστεύω ότι ένα πολλαπλασιαστικό Xilinx μπλοκ μπορεί να κάνει δύο μικρά πολλαπλασιασμών ταυτόχρονα.

 
Βλέπε σημείωση app 467, σελίδα 6, "Δύο πολλαπλασιαστές σε μια ενιαία πρωτόγονη".Δεν το έχω δοκιμάσει.
http://direct.xilinx.com/bvdocs/appnotes/xapp467.pdf

 

Welcome to EDABoard.com

Sponsor

Back
Top