Σχεδίαση σε VHDL του mips2000

98
ΠΡΟΗΓΜΕΝΗ ΣΧΕΔΙΑΣΗ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ 2013   2014 ΚΑΘ. ΑΝΤΩΝΗΣ ΠΑΣΧΑΛΗΣ  ΥΛΟΠΟΙΗΣΗ RISC ΕΠΕΞΕΡΓΑΣΤΗ ΑΡΧΙΤΕΚΤΟΝΙΚΗ Σ MIPS R2000 ΜΕ ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΕΝΣΩΜΑΤΩΜΕΝΗΣ ΑΥΤΟΔΟΚΙΜΗΣ (Β IST) ΚΑΙ ΚΩΔΙΚΑ ΑΝΙΧΝΕΥΣΗΣ ΚΑΙ ΔΙΩΡΘΩΣΗΣ ΛΑΘΩΝ ( EDAC)  Α.Μ.: 2012518 ΕΠΩΝΥΜΟ: Φωτέας ΟΝΟΜΑ:  Ανδρέας 

Transcript of Σχεδίαση σε VHDL του mips2000

7/25/2019 Σχεδίαση σε VHDL του mips2000

http://slidepdf.com/reader/full/-vhdl-mips2000 1/98

ΠΡΟΗΓΜΕΝΗ ΣΧΕΔΙΑΣΗ ΨΗΦΙΑΚΩΝ

ΣΥΣΤΗΜΑΤΩΝ 

ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ 2013 –  2014

ΚΑΘ. ΑΝΤΩΝΗΣ ΠΑΣΧΑΛΗΣ 

 ΥΛΟΠΟΙΗΣΗ RISC ΕΠΕΞΕΡΓΑΣΤΗ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ MIPS R2000ΜΕ ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΕΝΣΩΜΑΤΩΜΕΝΗΣ ΑΥΤΟΔΟΚΙΜΗΣ (ΒIST)

ΚΑΙ ΚΩΔΙΚΑ ΑΝΙΧΝΕΥΣΗΣ ΚΑΙ ΔΙΩΡΘΩΣΗΣ ΛΑΘΩΝ (EDAC)

 Α.Μ.: 2012518

ΕΠΩΝΥΜΟ:  Φωτέας 

ΟΝΟΜΑ:  Ανδρέας 

7/25/2019 Σχεδίαση σε VHDL του mips2000

http://slidepdf.com/reader/full/-vhdl-mips2000 2/98

Περιεχόμενα 

1.Εισαγωγή.............................................................................................................................................. 4

1.1. Διατύπωση του προβλήματος ..................................................................................................... 4

1.2. Μεθοδολογία ............................................................................................................................... 6

2. Τεχνική Περιγραφή ........................................................................................................................... 10

2.1. Τεχνική περιγραφή όλων των entities του επεξεργαστή .......................................................... 10

2.1.1. ALU ...................................................................................................................................... 10

2.1.2 Α-L ........................................................................................................................................ 13

2.1.3 ΑL – MUX .............................................................................................................................. 16

2.1.4. INC ....................................................................................................................................... 16

2.1.5. PSD ...................................................................................................................................... 17

2.1.6. ΕΧΤ S/Z ................................................................................................................................ 18

2.1.7. REG_FILE ............................................................................................................................. 18

2.1.8. SEL ....................................................................................................................................... 20

2.1.9 Λοιπές μονάδες .................................................................................................................... 21

2.2 Τεχνική περιγραφή της διόδου δεδομένων ............................................................................... 21

2.3 Τεχνική περιγραφή μονάδας ελέγχου ........................................................................................ 31

2.3.1. Control_FSM ....................................................................................................................... 32

2.3.2. CNTR_comb ......................................................................................................................... 40

2.4. Τεχνική περιγραφή μνημών ....................................................................................................... 56

2.4.1 Μνήμη εντολών ................................................................................................................... 56

2.4.2 DM control ........................................................................................................................... 57

2.4.3 Μνήμη δεδομένων με κωδικοποίηση Hamming ................................................................. 62

2.5. Τεχνική περιγραφή όλου του επεξεργαστή (processor) ........................................................... 62

2.6 Τεχνική περιγραφή του πολλαπλασιαστή με τη χρήση τεχνικών αύξησης της

δοκιμαστικότητας ......................................................................................................................... 66

2.6.1. BIST ...................................................................................................................................... 66

2.6.2. Test Control ......................................................................................................................... 69

2.6.3 Σήματα εισόδου πολλαπλασιαστή ...................................................................................... 71

2.6.4 Συμπίεση εξόδου πολλαπλασιαστή ..................................................................................... 74

2.6.5. Λοιπές μονάδες BIST ........................................................................................................... 74

2.6.6 Software based self test ....................................................................................................... 77

2.7. Τεχνική περιγραφή της κωδικοποίησης και αποκωδικοποίησης της μνήμης δεδομένων ....... 80

2.7.1 Decoder ................................................................................................................................ 80

2.7.2 Encoder ................................................................................................................................ 85

3. Επαλήθευση της ορθής σχεδίασης με προσομοίωση ...................................................................... 91

7/25/2019 Σχεδίαση σε VHDL του mips2000

http://slidepdf.com/reader/full/-vhdl-mips2000 3/98

3.1 Επαλήθευση ολόκληρου του επεξεργαστή ................................................................................ 91

3.1.1 Behavioral Test ..................................................................................................................... 93

3.1.2 Post-Place & Route Model Test ........................................................................................... 95

4. Αποτελέσματα Υλοποίησης .............................................................................................................. 97

7/25/2019 Σχεδίαση σε VHDL του mips2000

http://slidepdf.com/reader/full/-vhdl-mips2000 4/98

1.Εισαγωγή 

1.1. Διατύπωση του προβλήματος 

Ο επεξεργαστής υλοποιεί τις ακόλουθες εντολές: 

  Εντολές Φόρτωσης & Αποθήκευσης (Τύπου Ι) 

LW $s1,100($s2) Load wordSW $s1,100($s2) Store word (W)LB $s1,100($s2) Load byte (με επέκταση πρόσημου) LBU $s1,100($s2) Load byte unsigned (με επέκταση μηδενός)LH $s1,100($s2) Load half-word (με επέκταση πρόσημου)LHU $s1,100($s2) Load half-word unsigned (με επέκταση μηδενός)SB $s1,100($s2) Store least significant byte (LSB)

SH $s1,100($s2) Store least significant half-word (LSH)

 Αριθμητικές και Λογικές Εντολές (Τύπου Ι) 

ΑDDI $t1,$s1,3 Addition immediate (με επέκταση πρόσημου)ΑDDIU $t1,$s1,3 Addition immediate (με επέκταση προσήμου)Α NDI $t1,$s1,3 AND immediate (με επέκταση μηδενός)ORI $t1,$s1,3 OR immediate (με επέκταση μηδενός)ΧΟRI $t1,$s1,3 XOR immediate (με επέκταση μηδενός) 

 Αριθμητικές και Λογικές Εντολές (Τύπου R) 

ΑDD $s1,$s2,$s3 Addition (προσημασμένοι αριθμοί - με υπερχείλιση)ΑDDU $s1,$s2,$s3 Addition (μη προσημ/νοι αριθμοί - χωρίς υπερχείλιση)SUB $s1,$s2,$s3 Subtract (προσημασμένοι αριθμοί - με υπερχείλιση)SUBU $s1,$s2,$s3 Subtract (μη προσημ/νοι αριθμοί - χωρίς υπερχείλιση)Α ND $s1,$s2,$s3 ANDOR $s1,$s2,$s3 OR

 NOR $s1,$s2,$s3 NORΧΟR $s1,$s2,$s3 XORMULT $s2,$s3 Multiply (προσημασμένοι αριθμοί) 

 Μεταφοράς Δεδομένων (Τύπου R)

MFHI $t1 Move from HiMFLO $t1 Move from LoMTHI $t1 Move to HiMTLO $t1 Move to Lo

7/25/2019 Σχεδίαση σε VHDL του mips2000

http://slidepdf.com/reader/full/-vhdl-mips2000 5/98

 Εντολές Ολίσθησης (Τύπου R) 

SLL $s1,$s2, 3 Shift left logical (σταθερός αριθμός ολισθήσεων) SRL $s1,$s2, 3 Shift right logical (σταθερός αριθμός ολισθήσεων) SRA $s1,$s2, 3 Shift right arithmetic (σταθερός αριθμός ολισθήσεων 

με επέκταση πρόσημου) SLLV $s1,$s2,$s3 Shift left logical variable (μεταβλητός αρ. ολισθήσεων) SRLV $s1,$s2,$s3 Shift right logical variable (μεταβλητός αρ. ολισθήσεων)SRAV $s1,$s2,$s3 Shift right arithmetic variable (μεταβλητός αριθμός ολισθήσεων με 

επέκταση πρόσημου) 

 Εντολές Διαχείρισης Σταθερών (Τύπου Ι) 

LUI $t1,100 Load upper immediate

 Εντολές Σύγκρισης - Set (Τύπου Ι)

SLTI $t0, $s0, 10 Set less than immediateIf Reg[s0] < 10 then Reg[t0]=1 else Reg[t0]=0Η σύγκριση γίνεται μεταξύ προσημασμένων αριθμών 

SLTIU $t0, $s0, 10 Set less than unsigned immediateIf Reg[s0] < 10 then Reg[t0]=1 else Reg[t0]=0Η σύγκριση γίνεται μεταξύ μη προσημασμένων αριθμών 

 Εντολές Σύγκρισης - Set (Τύπου R)

SLT $t0, $s0, $s1 Set less thanIf Reg[s0] < Reg[s1] then Reg[t0]=1 else Reg[t0]=0Η σύγκριση γίνεται μεταξύ προσημασμένων αριθμών 

SLTU $t0, $s0, $s1 Set less than unsignedIf Reg[s0] < Reg[s1] then Reg[t0]=1 else Reg[t0]=0Η σύγκριση γίνεται μεταξύ μη προσημασμένων αριθμών 

 Εντολές Διακλάδωσης (Τύπου Ι) 

BEQ $s1, $s2, label Branch on equal

If Reg[s1] = Reg[s2]then PC = PC + 4 + 4μ else PC = PC + 4  BNE $s1, $s2, label Branch on not equal If Reg[s1] ≠ Reg[s2] 

then PC = PC + 4 + 4μ else PC = PC + 4  

 Εντολές Μεταπήδησης (Τύπου R) 

JR $t0 Jump register, PC = Reg[t0]JALR $t0 Jump and link register, Reg[ra] = PC+4 & PC = Reg[t0]

 Άλλες Εντολές Διακλάδωσης (Τύπου Ι) 

7/25/2019 Σχεδίαση σε VHDL του mips2000

http://slidepdf.com/reader/full/-vhdl-mips2000 6/98

BLEZ $s1, label Branch on less than equal zeroIf Reg[s1] ≤ 0 then PC = PC + 4 + 4μ else PC = PC + 4

BGTZ $s1, label Branch on greater than zero If Reg[s1] > 0 then PC = PC + 4 + 4μ elsePC = PC + 4

BLTZ $s1, label Branch on less than zero If Reg[s1] < 0 then PC = PC + 4 + 4μ else

PC = PC + 4BGEZ $s1, label Branch on greater than equal zero

If Reg[s1] ≥ 0 then PC = PC + 4 + 4μ else PC = PC + 4

 Άλλες Εντολές Μεταπήδησης (Τύπου J)

J target Jump, PC = PC(4msb):target_address:00JAL target Jump and link,

Reg[ra] = PC+4 &PC = PC(4msb):target_address:00

1.2. Μεθοδολογία 

 Σχεδιαστικές και αρχιτεκτονικές επιλογές : 

Ο επεξεργαστής μας σχεδιάστηκε με τις με τις ρυθμίσεις του ακόλουθου πίνακα. 

7/25/2019 Σχεδίαση σε VHDL του mips2000

http://slidepdf.com/reader/full/-vhdl-mips2000 7/98

Με βάση την γενική μορφή της διόδου δεδομένων που φαίνεται στο ακόλουθο σχήμα

 Έγιναν οι ακόλουθες αλλαγές: 

Αφαιρέθηκε ο καταχωρητής IR μιας και η IM_SRAM βγάζει τα δεδομένα έτσι καιαλλιώς τον επόμενο κύκλο από αυτόν που δέχεται την διεύθυνση, και  άρα η ύπαρξή τουπροσθέτει στο σύστημα έξτρα περιττή καθυστέρηση. 

Αφαιρέθηκαν οι καταχωρητές Α και Β μιας και η μονάδα REG_FILE βγάζει ταδεδομένα έτσι και αλλιώς τον επόμενο κύκλο από αυτόν που δέχεται την διεύθυνση, και άραη ύπαρξή του προσθέτει στο σύστημα έξτρα περιττή καθυστέρηση, επίσης με την αφαίρεσήτους τα δεδομένα Β και Ι θα εισέρχονται πια ταυτόχρονα στη μονάδα A-L MUX.

Προστέθηκαν 3 επιπλέον καταχωρητές στο σύστημα, οι MDR_out_enc ,MDR_out_cor, MDR_in_enc ώστε να γίνεται δυνατή η υποστήριξη ανίχνευσης και διόρθωσηςλαθών (EDAC).

7/25/2019 Σχεδίαση σε VHDL του mips2000

http://slidepdf.com/reader/full/-vhdl-mips2000 8/98

7/25/2019 Σχεδίαση σε VHDL του mips2000

http://slidepdf.com/reader/full/-vhdl-mips2000 9/98

 

Επίσης έγιναν και τροποποιήσεις στη μονάδα CNTRL_FSM που θα αναλυθούν στα επόμενακεφάλαια. 

7/25/2019 Σχεδίαση σε VHDL του mips2000

http://slidepdf.com/reader/full/-vhdl-mips2000 10/98

2. Τεχνική Περιγραφή 

2.1. Τεχνική περιγραφή όλων των entities του επεξεργαστή 

2.1.1. ALU

 Γενική περιγραφή

Σε αυτή τη μονάδα εκτελούνται όλες οι αριθμητικές και λογικές πράξεις τουεπεξεργαστή με εξαίρεση τον πολλαπλασιασμό. Σχηματικά η δομή της φαίνεται στο ακόλουθοσχήμα : 

Block διάγραμμα: 

7/25/2019 Σχεδίαση σε VHDL του mips2000

http://slidepdf.com/reader/full/-vhdl-mips2000 11/98

 

VHDL κώδικας 

7/25/2019 Σχεδίαση σε VHDL του mips2000

http://slidepdf.com/reader/full/-vhdl-mips2000 12/98

 

7/25/2019 Σχεδίαση σε VHDL του mips2000

http://slidepdf.com/reader/full/-vhdl-mips2000 13/98

 

2.1.2 Α-L

 Γενική περιγραφή

Αυτή η μονάδα ενώνει την ALU με τον πολλαπλασιαστή, άρα είναι η μονάδα στηοποία εκτελούνται όλες οι λογικές και αριθμητικές πράξεις του επεξεργαστή.

7/25/2019 Σχεδίαση σε VHDL του mips2000

http://slidepdf.com/reader/full/-vhdl-mips2000 14/98

Block διάγραμμα: 

VHDL κώδικας 

7/25/2019 Σχεδίαση σε VHDL του mips2000

http://slidepdf.com/reader/full/-vhdl-mips2000 15/98

 

7/25/2019 Σχεδίαση σε VHDL του mips2000

http://slidepdf.com/reader/full/-vhdl-mips2000 16/98

2.1.3 ΑL – MUX

 Γενική περιγραφή

Επιλέγει την τιμή του Βus_B για το αν θα πάρει την τιμή του καταχωρητή Β η του Ι ανάλογα

με το σήμα ΒοrI

Block διάγραμμα: 

VHDL κώδικας 

2.1.4. INC

 Γενική περιγραφή

Αυξάνει την τιμή του μετρητή του προγράμματος PC κατά 4. 

Block διάγραμμα: 

7/25/2019 Σχεδίαση σε VHDL του mips2000

http://slidepdf.com/reader/full/-vhdl-mips2000 17/98

VHDL κώδικας 

2.1.5. PSD

 Γενική περιγραφή 

Υπολογίζει την επόμενη τιμή του PC σε εντολές τύπου jump εκτελώντας τη πράξη : 

D = P&IR[addr]]&00

Block διάγραμμα:

VHDL κώδικας 

7/25/2019 Σχεδίαση σε VHDL του mips2000

http://slidepdf.com/reader/full/-vhdl-mips2000 18/98

2.1.6. ΕΧΤ S/Z

 Γενική περιγραφή 

Εκτελεί sign_extend ή zero_extend στο πεδίο immediate ανάλογα με την τιμή του σήματος

ελέγχου SorZ.

Block διάγραμμα: 

VHDL κώδικας 

2.1.7. REG_FILE

 Γενική περιγραφή 

Μονάδα που περιέχει τους 32 καταχωρητές του επεξεργαστή και διαχειρίζεται την ενημέρωσητων τιμών τους. 

7/25/2019 Σχεδίαση σε VHDL του mips2000

http://slidepdf.com/reader/full/-vhdl-mips2000 19/98

Block διάγραμμα: 

VHDL κώδικας 

7/25/2019 Σχεδίαση σε VHDL του mips2000

http://slidepdf.com/reader/full/-vhdl-mips2000 20/98

2.1.8. SEL

 Γενική περιγραφή 

Επιλέγει ανάλογα με τις τιμές των Z και Νe αν θα εκτελεστεί η μεταπήδηση για κάθε μια από

τις εντολές τύπου Branch.

Block διάγραμμα: 

VHDL κώδικας 

7/25/2019 Σχεδίαση σε VHDL του mips2000

http://slidepdf.com/reader/full/-vhdl-mips2000 21/98

 

2.1.9 Λοιπές μονάδες 

Το datapath περιέχει και αρκετές ακόμα μικρότερες μονάδες, όπως 2 πολυπλέκτες, τους RFκαι NPC mux , 3 ακόμα πολυπλέκτες που δίνουν σταθερή τιμή στα σήματα rt rd και shamtανάλογα με τα αντιστοιχα σήματα ελέγχου, μια μονάδα που εκτελεί SLLκατά 2 για τον

 υπολογισμό της διεύθυνσης τις εντολές τύπου branch και αρκετούς καταχωρητές 32 και 39 bit.

2.2 Τεχνική περιγραφή της διόδου δεδομένων 

 Γενική περιγραφή 

Σε αυτή τη μονάδα εκτελούνται σχεδόν όλες οι λειτουργίες του επεξεργαστή με εξαίρεση τηνπαραγωγή των σημάτων ελέγχου για την κάθε εντολή. 

Block διάγραμμα: 

7/25/2019 Σχεδίαση σε VHDL του mips2000

http://slidepdf.com/reader/full/-vhdl-mips2000 22/98

 

VHDL κώδικας 

7/25/2019 Σχεδίαση σε VHDL του mips2000

http://slidepdf.com/reader/full/-vhdl-mips2000 23/98

 

7/25/2019 Σχεδίαση σε VHDL του mips2000

http://slidepdf.com/reader/full/-vhdl-mips2000 24/98

 

7/25/2019 Σχεδίαση σε VHDL του mips2000

http://slidepdf.com/reader/full/-vhdl-mips2000 25/98

 

7/25/2019 Σχεδίαση σε VHDL του mips2000

http://slidepdf.com/reader/full/-vhdl-mips2000 26/98

 

7/25/2019 Σχεδίαση σε VHDL του mips2000

http://slidepdf.com/reader/full/-vhdl-mips2000 27/98

 

7/25/2019 Σχεδίαση σε VHDL του mips2000

http://slidepdf.com/reader/full/-vhdl-mips2000 28/98

 

7/25/2019 Σχεδίαση σε VHDL του mips2000

http://slidepdf.com/reader/full/-vhdl-mips2000 29/98

 

7/25/2019 Σχεδίαση σε VHDL του mips2000

http://slidepdf.com/reader/full/-vhdl-mips2000 30/98

 

7/25/2019 Σχεδίαση σε VHDL του mips2000

http://slidepdf.com/reader/full/-vhdl-mips2000 31/98

 

2.3 Τεχνική περιγραφή μονάδας ελέγχου 

 Γενική περιγραφή

Για τον έλεγχο της λειτουργίας του επεξεργαστή έχουν κατασκευαστεί 2 μονάδες , Οι

CNTR_FSM και CNTR_comb. H πρώτη ελέγχει πόσους κύκλους ρολογιού θα εκτελείται κάθε

εντολή και πότε θα γίνεται εγγραφή του PC, του ΙR, των καταχωρητών του REG_FILE και της 

μνήμης δεδομένων. Επίσης σε περίπτωση EDAC mode δέχεται ανατροφοδότηση από τον

αποκωδικοποιητή και ρυθμίζει ανάλογα τα βήματα των εντολών Load. H δεύτερη μονάδα

απλά δίνει τιμές σε ένα σύνολο από 19 σήματα ελέγχου για κάθε εντολή. 

7/25/2019 Σχεδίαση σε VHDL του mips2000

http://slidepdf.com/reader/full/-vhdl-mips2000 32/98

2.3.1. Control_FSM

 Διάγραμμα καταστάσεων 

Σήματα ελέγχου για κάθε κατάσταση: 

S0 IR_Write = 1MAR_Write = 0DMEM_Write = 0REG_Write = 0PC_Write = 0

7/25/2019 Σχεδίαση σε VHDL του mips2000

http://slidepdf.com/reader/full/-vhdl-mips2000 33/98

S1 IR_Write = 0MAR_Write = 0DMEM_Write = 0REG_Write = 0PC_Write = 0

S2a IR_Write = 0MAR_Write = 1DMEM_Write = 0REG_Write = 0PC_Write = 0

S2b IR_Write = 0MAR_Write = 0DMEM_Write = 0REG_Write = 0

PC_Write = 0

S3a,b,c IR_Write = 0MAR_Write = 0DMEM_Write = 0REG_Write = 0PC_Write = 0

S4a IR_Write = 0MAR_Write = 0DMEM_Write = 0REG_Write = 1PC_Write = 1

S4b IR_Write = 0MAR_Write = 0DMEM_Write = 1REG_Write = 0PC_Write = 1

S4c IR_Write = 0

MAR_Write = 0DMEM_Write = 0REG_Write = 0PC_Write = 1

S4d IR_Write = 0MAR_Write = 0DMEM_Write = 1REG_Write = 1PC_Write = 1

7/25/2019 Σχεδίαση σε VHDL του mips2000

http://slidepdf.com/reader/full/-vhdl-mips2000 34/98

 Block Διάγραμμα 

7/25/2019 Σχεδίαση σε VHDL του mips2000

http://slidepdf.com/reader/full/-vhdl-mips2000 35/98

7/25/2019 Σχεδίαση σε VHDL του mips2000

http://slidepdf.com/reader/full/-vhdl-mips2000 36/98

 

7/25/2019 Σχεδίαση σε VHDL του mips2000

http://slidepdf.com/reader/full/-vhdl-mips2000 37/98

 

7/25/2019 Σχεδίαση σε VHDL του mips2000

http://slidepdf.com/reader/full/-vhdl-mips2000 38/98

 

7/25/2019 Σχεδίαση σε VHDL του mips2000

http://slidepdf.com/reader/full/-vhdl-mips2000 39/98

 

7/25/2019 Σχεδίαση σε VHDL του mips2000

http://slidepdf.com/reader/full/-vhdl-mips2000 40/98

2.3.2. CNTR_comb

 Πίνακας τιμών σημάτων ελέγχου 

7/25/2019 Σχεδίαση σε VHDL του mips2000

http://slidepdf.com/reader/full/-vhdl-mips2000 41/98

Block διάγραμμα: 

7/25/2019 Σχεδίαση σε VHDL του mips2000

http://slidepdf.com/reader/full/-vhdl-mips2000 42/98

7/25/2019 Σχεδίαση σε VHDL του mips2000

http://slidepdf.com/reader/full/-vhdl-mips2000 43/98

 

7/25/2019 Σχεδίαση σε VHDL του mips2000

http://slidepdf.com/reader/full/-vhdl-mips2000 44/98

 

7/25/2019 Σχεδίαση σε VHDL του mips2000

http://slidepdf.com/reader/full/-vhdl-mips2000 45/98

 

7/25/2019 Σχεδίαση σε VHDL του mips2000

http://slidepdf.com/reader/full/-vhdl-mips2000 46/98

 

7/25/2019 Σχεδίαση σε VHDL του mips2000

http://slidepdf.com/reader/full/-vhdl-mips2000 47/98

 

7/25/2019 Σχεδίαση σε VHDL του mips2000

http://slidepdf.com/reader/full/-vhdl-mips2000 48/98

 

7/25/2019 Σχεδίαση σε VHDL του mips2000

http://slidepdf.com/reader/full/-vhdl-mips2000 49/98

 

7/25/2019 Σχεδίαση σε VHDL του mips2000

http://slidepdf.com/reader/full/-vhdl-mips2000 50/98

 

7/25/2019 Σχεδίαση σε VHDL του mips2000

http://slidepdf.com/reader/full/-vhdl-mips2000 51/98

 

7/25/2019 Σχεδίαση σε VHDL του mips2000

http://slidepdf.com/reader/full/-vhdl-mips2000 52/98

 

7/25/2019 Σχεδίαση σε VHDL του mips2000

http://slidepdf.com/reader/full/-vhdl-mips2000 53/98

 

7/25/2019 Σχεδίαση σε VHDL του mips2000

http://slidepdf.com/reader/full/-vhdl-mips2000 54/98

 

7/25/2019 Σχεδίαση σε VHDL του mips2000

http://slidepdf.com/reader/full/-vhdl-mips2000 55/98

 

7/25/2019 Σχεδίαση σε VHDL του mips2000

http://slidepdf.com/reader/full/-vhdl-mips2000 56/98

 

2.4.

Τεχνική περιγραφή μνημών

 

2.4.1 Μνήμη εντολών 

7/25/2019 Σχεδίαση σε VHDL του mips2000

http://slidepdf.com/reader/full/-vhdl-mips2000 57/98

  Για τη μνήμη εντολών χρησιμοποιήθηκε ο έτοιμος κώδικας από το αρχείο imem.vhd.Για την αρχικοποίηση γεμίζουμε με εντολές τις μονάδες R1_0, R1_1,R1_2 και R1_3ξεκινώντας από την R1_0 όπως φαίνεται στο επόμενο σχήμα 

2.4.2 DM control

 Γενική περιγραφή 

Αυτή η μονάδα παράγει τα σήματα WE για την μνήμη δεδομένων και πραγματοποιείsign ή zero extend στις LH και LB. Επίσης ανάλογα με το αν βρισκόμαστε σε edac_mode ήκανονική λειτουργία χρησιμοποιεί τους καταχωρητές MDR_in, MDR_out, MDR_out_enc,MDR_out_cor και MDR_in_enc αντίστοιχα. 

 VHDL κώδικας 

7/25/2019 Σχεδίαση σε VHDL του mips2000

http://slidepdf.com/reader/full/-vhdl-mips2000 58/98

 

7/25/2019 Σχεδίαση σε VHDL του mips2000

http://slidepdf.com/reader/full/-vhdl-mips2000 59/98

 

7/25/2019 Σχεδίαση σε VHDL του mips2000

http://slidepdf.com/reader/full/-vhdl-mips2000 60/98

 

7/25/2019 Σχεδίαση σε VHDL του mips2000

http://slidepdf.com/reader/full/-vhdl-mips2000 61/98

 

7/25/2019 Σχεδίαση σε VHDL του mips2000

http://slidepdf.com/reader/full/-vhdl-mips2000 62/98

2.4.3 Μνήμη δεδομένων με κωδικοποίηση Hamming

 Γενική περιγραφή 

Για αυτή τη μνήμη δεδομένων χρησιμοποιήθηκε έτοιμο component που μας δινότανε, το

αρχείο dmem.vhd. Σε αυτό το αρχείο δεν υπήρχε υποστίρηξη κωδικοποίησης hamming οπότεέγινε μια μετατροπή και προστέθηκε μία ακομα μονάδα spdistram και αυξήθηκε το πεδίο weκατά 1 bit. Τώρα πια τα δεδομένα αποθηκεύονται στα πρώτα 32  bit της μνήμης και από τα

 υπόλοιπα 8 που περισσεύουν στα 7 αποθηκεύονται τα διανύσματα P και Ph όπως ορίζονταιστην κωδικοποίηση hamming. Η αλλαγή που έγινε στον κώδικα φαίνεται στην επόμενηεικόνα: 

2.5. Τεχνική περιγραφή όλου του επεξεργαστή processor)

Block Διάγραμμα 

7/25/2019 Σχεδίαση σε VHDL του mips2000

http://slidepdf.com/reader/full/-vhdl-mips2000 63/98

VHDL κώδικας 

7/25/2019 Σχεδίαση σε VHDL του mips2000

http://slidepdf.com/reader/full/-vhdl-mips2000 64/98

 

7/25/2019 Σχεδίαση σε VHDL του mips2000

http://slidepdf.com/reader/full/-vhdl-mips2000 65/98

 

7/25/2019 Σχεδίαση σε VHDL του mips2000

http://slidepdf.com/reader/full/-vhdl-mips2000 66/98

2.6 Τεχνική περιγραφή του πολλαπλασιαστή με τη χρήση τεχνικών αύξησης της

δοκιμαστικότητας 

 Γενική περιγραφή 

Η κεντρική ιδέα αυτής της μονάδας είναι να πραγματοποιεί έλεγχο στο hardware τουπολλαπλασιαστή και να παράγει ένα σήμα για το αν λειτουργεί κανονικά η όχι. Ο έλεγχοςαποτελείται από 3 σύνολα εισόδων του πολλαπλασιαστή, παραγωγή των γινομένων, συμπίεσήτους σε 3 ξεχωριστά διανύσματα, και σύγκριση αυτών των διανυσμάτων με 3 που έχουν

 υπολογιστεί από πριν και είναι αποθηκευμένα σε μια μνήμη. Αν οι τιμές συμπίπτουν τότε ημονάδα λειτουργεί σωστά. Αυτή η μονάδα παράγει σήμα που όταν πραγματοποιεί έλεγχοσταματάει την λειτουργία της μονάδας ελέγχου control_fsm.

2.6.1. BIST

 Block Διάγραμμα 

 VHDL κώδικας 

7/25/2019 Σχεδίαση σε VHDL του mips2000

http://slidepdf.com/reader/full/-vhdl-mips2000 67/98

 

7/25/2019 Σχεδίαση σε VHDL του mips2000

http://slidepdf.com/reader/full/-vhdl-mips2000 68/98

 

7/25/2019 Σχεδίαση σε VHDL του mips2000

http://slidepdf.com/reader/full/-vhdl-mips2000 69/98

 2.6.2. Test Control

Block Διάγραμμα 

 VHDL κώδικας 

7/25/2019 Σχεδίαση σε VHDL του mips2000

http://slidepdf.com/reader/full/-vhdl-mips2000 70/98

 

7/25/2019 Σχεδίαση σε VHDL του mips2000

http://slidepdf.com/reader/full/-vhdl-mips2000 71/98

 

2.6.3 Σήματα εισόδου πολλαπλασιαστή 

 LFSR

Σε αυτή τη μονάδα γίνεται παραγωγή ψευδοτυχαίων αριθμών σύμφωνα με τον ακόλουθοαλγόριθμο: 

Σε κάθε clock παράγεται καινούριο σήμα όταν reset = 0

7/25/2019 Σχεδίαση σε VHDL του mips2000

http://slidepdf.com/reader/full/-vhdl-mips2000 72/98

 DTMN

Αυτή η μονάδα υλοποιείται στο top level του bist. Παράγει ψευδοτυχαία διανύσματα με τηχρήση ενός counter και επιλογής μερικών από τα bit του όπως φαίνεται στον παρακάτωκώδικα. 

Q_signal <= counter;

ATPG

Με τη χρήση ενός κατάλληλου εργαλείου λογισμικού για ATPG παράγουμε τα απαιτούμεναμη κανονικά διανύσματα δοκιμής που μπορούν να αποθηκευθούν σε μία embedded ROM.H ROM φαίνεται στο επόμενο σχήμα: 

7/25/2019 Σχεδίαση σε VHDL του mips2000

http://slidepdf.com/reader/full/-vhdl-mips2000 73/98

 

7/25/2019 Σχεδίαση σε VHDL του mips2000

http://slidepdf.com/reader/full/-vhdl-mips2000 74/98

 

2.6.4 Συμπίεση εξόδου πολλαπλασιαστή 

Κατά την διάρκεια του ελέγχου του πολλαπλασιαστή για κάθε μια από τις 3 δοκιμέςπαράγονται πληθώρα διανυσμάτων εξόδου του πολλαπλασιαστή. Αυτά συμπιέζονται σε 1(signature) για κάθε δοκιμή . Η μονάδα που πραγματοποιεί την συμπίεση φαίνεται στονεπόμενο κώδικα. 

2.6.5. Λοιπές μονάδες BIST

 BIST comparator

7/25/2019 Σχεδίαση σε VHDL του mips2000

http://slidepdf.com/reader/full/-vhdl-mips2000 75/98

 

 MULT

7/25/2019 Σχεδίαση σε VHDL του mips2000

http://slidepdf.com/reader/full/-vhdl-mips2000 76/98

BIST MUX

Για την κανονική λειτουργία του επεξεργαστή πρέπει να έχουμε δώσει στο σήμα BIST του επεξεργαστή την τιμή “11”, για την LFSR δοκιμή την τιμή “00” για την DTMN δοκιμή τηντιμή “01” ενώ για την ATPG δοκιμή την τιμή “10”. 

BIST_ROM

Σε αυτή την μονάδα είναι αποθηκευμένα τα signatures για κάθε ένα από τα 3 test.

7/25/2019 Σχεδίαση σε VHDL του mips2000

http://slidepdf.com/reader/full/-vhdl-mips2000 77/98

2.6.6 Software based self test

LFSR

.text

# sbst ---> lfsr##$1 = counter#$2 = step = 1#$3 = max_iterations = 80#$4 = seed#$5 = lfsr_reg#$6 = lfsr_tap#$7 = mult_hi#$8 = mult_lo#$9 = misr_reg_hi#$10 = misr_reg_lo#$11 = misr_tap_hi#$12 = misr_tap_lo#$13 = temp_1#$14 = temp_2

#$15 = misr_out_hi#$16 = misr_out_lo#$17 = sig_hi#$18 = sig_lo#$20 = result if $20 == '0' then mult is working perfectly

main:

XORI $3, $0, 80XORI $2,$0,1LUI $17,0x98d3XORI $17,$17,0x2109LUI $18,0x45ecXORI $18,$18,0xd107LUI $4 , 0xdeadXORI $4, $4, 0xbeef

ANDI $5,$0,0XORI $5,$4,0MULT $5, $5MFHI $9MFLO $10

while : XOR $13, $0, $5ANDI $6, $13,1SRL $13,$13,1ANDI $14,$13,1XOR $6,$14,$6SRL $13,$13,2ANDI $14,$13,1XOR $6,$14,$6SRL $13,$13,1ANDI $14,$13,1XOR $6,$14,$6

SLL $5,$5,1OR $5,$5,$6MULT $5, $5MFHI $7MFLO $8ANDI $11,$9,1ANDI $12,$10,1SRL $9,$9,1SRL $10,$10,1ANDI $13,$9,1ANDI $14,$10,1XOR $11, $13, $11XOR $12,$14,$12SRL $9, $9 ,2SRL $10,$10 ,2ANDI $13,$9,1

ANDI $14,$10,1XOR $11, $13 , $11XOR $12,$14,$12

7/25/2019 Σχεδίαση σε VHDL του mips2000

http://slidepdf.com/reader/full/-vhdl-mips2000 78/98

  SRL $9, $9 ,1SRL $10,$10 ,1ANDI $13,$9,1ANDI $14,$10,1XOR $11, $13 , $11XOR $12,$14,$12SLL $9,$9,1SLL $10,$10,1

OR $9,$9,$11OR $10,$10,$12XOR $9,$9,$7XOR $10,$10,$8ADD $1,$1,$2BNE $2,$3,while

XOR $13 ,$17,$9XOR $14 ,$18,$10OR $20,$13,$14

Στον παραπάνω κώδικα επειδή ο επεξεργαστής μας είναι 32 bit έχει γίνει προσομοίωσητου LFSR και του MISR υλοποιώντας τον ίδιο αλγόριθμο 2 φορές για τα 32 most και τα 32least significant bits του MULT.

DTMN

.text

# sbst ---> lfsr##$1 = counter#$2 = step = 1#$3 = max_iterations = 80#$4 = QA_signal#$5 = QB_signal#$7 = mult_hi#$8 = mult_lo#$9 = misr_reg_hi#$10 = misr_reg_lo#$11 = misr_tap_hi#$12 = misr_tap_lo#$13 = temp_1#$14 = temp_2#$15 = misr_out_hi#$16 = misr_out_lo#$17 = sig_hi#$18 = sig_lo#$20 = result if $20 == '0' then mult is working perfectly

main:

XORI $3, $0, 80

XORI $2,$0,1LUI $17,0xf639XORI $17,$17,0xa32fLUI $18,0x3079XORI $18,$18,0xd35cMULT $1, $1MFHI $9MFLO $10

while : ANDI $4,$4,0ANDI $5,$5,0

ANDI $13 ,$13, 0xfANDI $14, $14,0xf0XOR $4,$4, $14XOR $5,$5,$13SRL $14,$14,4

SLL $13,$13,4XOR $4,$4, $14XOR $5,$5,$13

7/25/2019 Σχεδίαση σε VHDL του mips2000

http://slidepdf.com/reader/full/-vhdl-mips2000 79/98

  SLL $14,$14,8SLL $13,$13,4XOR $4,$4, $14XOR $5,$5,$13SLL $14,$14,4SLL $13,$13,4XOR $4,$4, $14XOR $5,$5,$13

SLL $14,$14,4SLL $13,$13,4XOR $4,$4, $14XOR $5,$5,$13SLL $14,$14,4SLL $13,$13,4XOR $4,$4, $14XOR $5,$5,$13SLL $14,$14,4SLL $13,$13,4XOR $4,$4, $14XOR $5,$5,$13SLL $14,$14,4SLL $13,$13,4XOR $4,$4, $14XOR $5,$5,$13

MULT $5, $4MFHI $7MFLO $8ANDI $11,$9,1ANDI $12,$10,1SRL $9,$9,1SRL $10,$10,1ANDI $13,$9,1ANDI $14,$10,1XOR $11, $13, $11XOR $12,$14,$12SRL $9, $9 ,2SRL $10,$10 ,2ANDI $13,$9,1ANDI $14,$10,1XOR $11, $13 , $11

XOR $12,$14,$12SRL $9, $9 ,1SRL $10,$10 ,1ANDI $13,$9,1ANDI $14,$10,1XOR $11, $13 , $11XOR $12,$14,$12SLL $9,$9,1SLL $10,$10,1OR $9,$9,$11OR $10,$10,$12XOR $9,$9,$7XOR $10,$10,$8ADD $1,$1,$2BNE $2,$3,while

XOR $13 ,$17,$9XOR $14 ,$18,$10OR $20,$13,$14

Και για τους 2 παραπάνω κώδικες τα αρχεία .disasm  υπάρχουν στον φακελο τηςεργασίας. Τέλος κατά την εισαγωγή του κώδικα στην IMEM πρέπει να κάνουμε εναλλαγή τωνθέσεων των εντολών add και bne γιατί ο επεξεργαστής μας δεν έχει delay slot ούτε υποστηρίζει

 pipeline.

Το πλεονέκτημα  του  software_based_self_test είναι ότι δεν αυξάνεται ο χώρος πουκαταλαμβάνεται πάνω στο fpga λόγω της προσθήκης υλικού, και μπορείς να επιτύχειςκαλύτερες συχνότητες λειτουργίας. 

7/25/2019 Σχεδίαση σε VHDL του mips2000

http://slidepdf.com/reader/full/-vhdl-mips2000 80/98

2.7. Τεχνική περιγραφή της κωδικοποίησης και αποκωδικοποίησης της μνήμης

δεδομένων

 

Γενική περιγραφή

Για την υποστήριξη της κωδικοποίησης hamming και του EDAC από τον επεξεργαστή προστέθηκαν 2 μονάδες ακόμα. Ένας κωδικοποιητής και ένας αποκωδικοποιητής. Επίσηςέγιναν τροποποιήσεις στην μονάδα ελέγχου control_fsm. Αυτές οι τροποποιήσεις είναι ηπαροχή σήματος ανατροφοδότησης από το datapath προς τον cntrl_fsm για το αν έχει προκύψεισφάλμα αποκωδικοποίησης. Επίσης προστέθηκαν 2 ακόμα καινούριες καταστάσεις, οι S3b καιS3c όπου στην πρώτη εκτελείται η αποκωδικοποίηση ενώ στη δεύτερη πραγματοποιείται ηκωδικοποίηση. Σημαντικό ρόλο στη λειτουργία του EDAC παίζει και η μονάδαDM_CONTROL που ανάλογα με το αν έχουμε edac_mode ελέγχει την εγγραφή  και τηνανάγνωση στους καταχωρητές MDR_out_enc , MDR_out_cor και MDR_in_enc.

2.7.1 Decoder

Block Διάγραμμα 

VHDL Κώδικας 

7/25/2019 Σχεδίαση σε VHDL του mips2000

http://slidepdf.com/reader/full/-vhdl-mips2000 81/98

 

ΧΟR_Tree

7/25/2019 Σχεδίαση σε VHDL του mips2000

http://slidepdf.com/reader/full/-vhdl-mips2000 82/98

 

7/25/2019 Σχεδίαση σε VHDL του mips2000

http://slidepdf.com/reader/full/-vhdl-mips2000 83/98

Binary_decoder

7/25/2019 Σχεδίαση σε VHDL του mips2000

http://slidepdf.com/reader/full/-vhdl-mips2000 84/98

 

7/25/2019 Σχεδίαση σε VHDL του mips2000

http://slidepdf.com/reader/full/-vhdl-mips2000 85/98

 

2.7.2 Encoder

Block Διάγραμμα 

7/25/2019 Σχεδίαση σε VHDL του mips2000

http://slidepdf.com/reader/full/-vhdl-mips2000 86/98

 

7/25/2019 Σχεδίαση σε VHDL του mips2000

http://slidepdf.com/reader/full/-vhdl-mips2000 87/98

 

7/25/2019 Σχεδίαση σε VHDL του mips2000

http://slidepdf.com/reader/full/-vhdl-mips2000 88/98

VHDL κώδικας 

7/25/2019 Σχεδίαση σε VHDL του mips2000

http://slidepdf.com/reader/full/-vhdl-mips2000 89/98

ΧΟR_tree

7/25/2019 Σχεδίαση σε VHDL του mips2000

http://slidepdf.com/reader/full/-vhdl-mips2000 90/98

 

7/25/2019 Σχεδίαση σε VHDL του mips2000

http://slidepdf.com/reader/full/-vhdl-mips2000 91/98

3. Επαλήθευση της ορθής σχεδίασης με προσομοίωση 

3.1 Επαλήθευση ολόκληρου του επεξεργαστή 

Για την διαδικασία επαλήθευσης υλοποιήθηκε ο ακόλουθος κώδικας assembly

.text

main:J 4JAL 8BEQ $31, $20, mainBNE $21, $20, mainXORI $8,$0,6ORI $9,$9,36SUB $10,$8,$9BLEZ $8, main

BGTZ $10, mainBLTZ $8, mainBGEZ $10, mainBLTZAL $8, mainBGEZAL $10, mainADDI $10,$5, 34ADDIU $10,$5, 34SLTI $20,$15,8SLTIU $20,$15,8ANDI $20,$15,8LUI $12, 0xdeadSLL $12,$20,2SRL $12,$20,2SRA $12,$20,2SLLV $12,$20,$8SRLV $12,$20,$8MULT $8,$7MFHI $6MTHI $8MFLO $5MTLO $7ADD $8,$7,$5ADDU $5,$5,$5SUBU $5,$7,$9AND $5,$7,$9OR $5,$7,$9XOR $5,$7,$9

 NOR $5,$7,$9SLT $5,$7,$9SLTU $5,$7,$9LB $5,4($0)LH $5,4($0)LW $5,4($0)SW $5,4($0)SH $5,4($0)SB $5,4($0)JALR $5

Θέσαμε τα σήματα BIST = “11” και edac_mode = ‘0’ στο testbench αρχείο. Δηλαδήκανονική λειτουργία χωρίς edac_mode ενεργοποιημένο. 

7/25/2019 Σχεδίαση σε VHDL του mips2000

http://slidepdf.com/reader/full/-vhdl-mips2000 92/98

Ο παραπάνω κώδικας assembly τρέχοντας το asm2mem δημιουργεί το παρακάτω αρχείοdisasm :

test: file format elf32-bigmips

 No symbols in "test".Disassembly of section .text:0x00000000 08000001 j 0x000000040x00000004 00000000 nop0x00000008 0c000002 jal 0x000000080x0000000c 00000000 nop0x00000010 13f4fffb beq $ra,$s4,0x000000000x00000014 00000000 nop0x00000018 16b4fff9 bne $s5,$s4,0x000000000x0000001c 00000000 nop0x00000020 38080006 xori $t0,$zero,0x60x00000024 35290024 ori $t1,$t1,0x240x00000028 1900fff5 blez $t0,0x000000000x0000002c 01095022 sub $t2,$t0,$t10x00000030 1d40fff3 bgtz $t2,0x000000000x00000034 00000000 nop0x00000038 0500fff1 bltz $t0,0x000000000x0000003c 00000000 nop0x00000040 0541ffef bgez $t2,0x000000000x00000044 00000000 nop0x00000048 0510ffed bltzal $t0,0x000000000x0000004c 00000000 nop0x00000050 0551ffeb bgezal $t2,0x000000000x00000054 00000000 nop0x00000058 20aa0022 addi $t2,$a1,340x0000005c 24aa0022 addiu $t2,$a1,34

0x00000060 29f40008 slti $s4,$t7,80x00000064 2df40008 sltiu $s4,$t7,80x00000068 31f40008 andi $s4,$t7,0x80x0000006c 3c0cdead lui $t4,0xdead0x00000070 00146080 sll $t4,$s4,0x20x00000074 00146082 srl $t4,$s4,0x20x00000078 00146083 sra $t4,$s4,0x20x0000007c 01146004 sllv $t4,$s4,$t00x00000080 01146006 srlv $t4,$s4,$t00x00000084 01070018 mult $t0,$a30x00000088 00003010 mfhi $a20x0000008c 00000000 nop0x00000090 00000000 nop

0x00000094 01000011 mthi $t00x00000098 00002812 mflo $a10x0000009c 00000000 nop0x000000a0 00000000 nop0x000000a4 00e00013 mtlo $a30x000000a8 00e54020 add $t0,$a3,$a10x000000ac 00a52821 addu $a1,$a1,$a10x000000b0 00e92823 subu $a1,$a3,$t10x000000b4 00e92824 and $a1,$a3,$t10x000000b8 00e92825 or $a1,$a3,$t10x000000bc 00e92826 xor $a1,$a3,$t10x000000c0 00e92827 nor $a1,$a3,$t10x000000c4 00e9282a slt $a1,$a3,$t1

0x000000c8 00e9282b sltu $a1,$a3,$t10x000000cc 80050004 lb $a1,4($zero)0x000000d0 84050004 lh $a1,4($zero)

7/25/2019 Σχεδίαση σε VHDL του mips2000

http://slidepdf.com/reader/full/-vhdl-mips2000 93/98

0x000000d4 8c050004 lw $a1,4($zero)0x000000d8 ac050004 sw $a1,4($zero)0x000000dc a4050004 sh $a1,4($zero)0x000000e0 00a0f809 jalr $a10x000000e4 a0050004 sb $a1,4($zero)

3.1.1 Behavioral Test

7/25/2019 Σχεδίαση σε VHDL του mips2000

http://slidepdf.com/reader/full/-vhdl-mips2000 94/98

 

7/25/2019 Σχεδίαση σε VHDL του mips2000

http://slidepdf.com/reader/full/-vhdl-mips2000 95/98

3.1.2 Post-Place & Route Model Test

7/25/2019 Σχεδίαση σε VHDL του mips2000

http://slidepdf.com/reader/full/-vhdl-mips2000 96/98

 

 Όπως φαίνεται από τα παραπάνω σχήματα έχουμε πλήρη ταύτιση των αποτελεσμάτωνπου παίρνουμε στο  behavioral και στο  post place & route simulation, όπου είναι και τααναμενόμενα. 

7/25/2019 Σχεδίαση σε VHDL του mips2000

http://slidepdf.com/reader/full/-vhdl-mips2000 97/98

4. ποτελέσματα Υλοποίησης 

Post Map Static Timing

Post-Place & Route Static Timing

Λόγω των παραπάνω έγινε επιλογή το ρολόι να είναι 40 ns. Η ταχύτητα είναι αρκετά μειωμένηλόγο της ύπαρξης της μονάδας του BIST. Ο χώρος που καταλαμβάνει η μονάδα μας πάνω στοfpga φαίνεται στο ακόλουθο σχήμα, όπου με μπλέ χρώμα είναι τα slices που χρησιμοποιούνται: 

7/25/2019 Σχεδίαση σε VHDL του mips2000

http://slidepdf.com/reader/full/-vhdl-mips2000 98/98