pagratios Δημοσ. 20 Φεβρουαρίου 2010 Δημοσ. 20 Φεβρουαρίου 2010 Καλησπέρα σε όλους, έχω μία εργασία όπου φτιάχνω έναν επεξεργαστή mips μόνο που δεν έχω να υλοποιήσω όλες τις εντολές. Αυτές που πρέπει να υλοποιήσω είναι οι εξής LW,SW,ADDU,SUBU,ANDI,SRAV,BNE,SLTI,JR,JRAL Το πρόβλημα δεν είναι στο πως θα τις υλοποιήσω σε VHDL αλλά πως μπορώ να περάσω στους καταχωρητές αριθμούς γιατί δυστυχώς δεν έχω κάποια ori,xori,addi αλλά την andi και ο μόνος καταχωρητής που έχει τιμή σταθερή είναι ο zero. Το μόνο που σκέφτηκα είναι να κάνω slti s0, zero,10 ώστε να πάρει ο s0 την τιμή 1 και να συνεχίσω με αυτόν αλλά δεν έχω ούτε την jump. Για να χρησιμοποιήσω την jalr πρέπει να βάλω σε έναν καταχωρήτη την διεύθυνση της εντολής που θέλω να πάει αλλά άμα αυτή είναι η 0000002C έχω πρόβλημα γιατί πρέπει να βάλω πολλές addu την μία κάτω από την άλλη. Μπορείτε να βρείτε κάποιον άλλο τρόπο πιο εύκολο ή την κάτσαμε λόγο κακού συνδυασμού εντολών?
pagratios Δημοσ. 20 Φεβρουαρίου 2010 Μέλος Δημοσ. 20 Φεβρουαρίου 2010 Ξέρει κάποιος πως γίνεται στον pcspim να βγάζω unsigned αποτελέσματα? γιατί κάνω slti s0, zero , 10 #s0=1 subu s1, zero, s0 # έπρεπε να μου βγαζεί το ολα ffffffff και μου λέει -1
bxenos Δημοσ. 20 Φεβρουαρίου 2010 Δημοσ. 20 Φεβρουαρίου 2010 Στον επεξεργαστη δεν υπάρχει signed και unsigned, αρα δεν εχει να κάνει κάτι με τις ρυθμίσεις του. Στο παράθυρο που τα βλέπεις πρεπει να επιλέξεις τι ειδους αναπαράσραση να κάνει (signed ή unsigned). (Πιθανά δεξί κλίκ και επιλογή προβολής).
pagratios Δημοσ. 20 Φεβρουαρίου 2010 Μέλος Δημοσ. 20 Φεβρουαρίου 2010 Ο pcspim είναι πρόγραμμα όχι ο επεξεργαστής που είναι η εργασία μου
bxenos Δημοσ. 20 Φεβρουαρίου 2010 Δημοσ. 20 Φεβρουαρίου 2010 I know that. Σου έδωσα ένα hint για το που να ψάξεις...
pagratios Δημοσ. 20 Φεβρουαρίου 2010 Μέλος Δημοσ. 20 Φεβρουαρίου 2010 Θα το τρέξω αργότερα και θα δω αν γίνεται
Dr.Fuzzy Δημοσ. 20 Φεβρουαρίου 2010 Δημοσ. 20 Φεβρουαρίου 2010 Η signed (2's complement) ή unsigned arithmetic στην VHDL ή Verilog εξαρτάται από την βιβλιοθήκη που θα χρησιμοποιήσεις. Μπορείς λοιπόν να χρησιμοποιήσεις την IEEE.numeric_std που είναι από default signed και όπου θες unsigned να κάνεις cast ή εναλλακτικά να χρησιμοποιήσεις τις IEEE.std_logic_signed και IEEE.std_logic_unsigned.
pagratios Δημοσ. 20 Φεβρουαρίου 2010 Μέλος Δημοσ. 20 Φεβρουαρίου 2010 Για κάποιο λόγο βγάζει -1 αλλά αν το κάνω andi με το 10 τότε τυπώνει 10. η αφαίρεση εντο μεταξύ είναι με την subu οπότε θα έπρεπε να βγάζει κάποιον θετικό.
pagratios Δημοσ. 21 Φεβρουαρίου 2010 Μέλος Δημοσ. 21 Φεβρουαρίου 2010 πρόσεξες τι σου έγραψα παραπάνω; Ναι το είδα αλλά δεν θέλω να το κάνω σε vhdl, σε αυτό έκανα το datapath και το control unit.
Dr.Fuzzy Δημοσ. 21 Φεβρουαρίου 2010 Δημοσ. 21 Φεβρουαρίου 2010 Με μπέρδεψες, δηλαδή ALU, instruction, data registers, κλπ, πως θα τα κάνεις;
pagratios Δημοσ. 21 Φεβρουαρίου 2010 Μέλος Δημοσ. 21 Φεβρουαρίου 2010 Με μπέρδεψες, δηλαδή ALU, instruction, data registers, κλπ, πως θα τα κάνεις; Αυτά τα έχω φτιάξει σύμφωνα με την θεωρία και πιο συγκεκριμένα το datapath το έχω κάνει χρησιμοποιώντας πύλες σε schematic και το control unit σε VHDL. Στην αρχή το πρόβλημα που είχα ήταν ότι με τις εντολές που λέω στο πρώτο ποστ δεν μπορούσα να βάλω νούμερα στους καταχωρητές γιατί δεν είχα καμία ori, xori ή addiu αλλά μόνο andi και slti. Αυτό το έλυσα λέγοντας να κάνω μία σίγουρη ανισότητα δλδ slti s0, zero, 10 ώστε να έχω σε έναν καταχωρητή το 1 και μετά λέω να κάνω και το subu s1, zero, s0 ώστε να έχω στον s1 το 0χffffffff και να το χρησιμοποιώ με την andi sx , s1, κάποιον αριθμό ώστε να έχω όποιο νούμερο χρειάζομαι. Στο modelsim θα το κάνω unsigned και θα είμαι οκ αλλά θέλει να του δείξουμε και στον pcspim τα αποτελέσματα και εκεί μου βγάζει τον s1 ως -1 και απλά ήθελα να μου πει κάποιος αν ξέρει πως γίνεται αντί για το -1 να βγάζει το 4,294,967,295.
Dr.Fuzzy Δημοσ. 21 Φεβρουαρίου 2010 Δημοσ. 21 Φεβρουαρίου 2010 Αυτά τα έχω φτιάξει σύμφωνα με την θεωρία και πιο συγκεκριμένα το datapath το έχω κάνει χρησιμοποιώντας πύλες σε schematic και το control unit σε VHDL. ποιος ο λόγος να κάνεις το μισό σε schematic drawing; Το schematic drawing στην ψηφιακή σχεδίαση το χρησιμοποιούσαμε πριν 15+ χρόνια! Άλλωστε αυτός είναι ο λόγος που υπάρχουν οι γλώσσες περιγραφής υλικού και τα εργαλεία λογικής σύνθεσης!
pagratios Δημοσ. 22 Φεβρουαρίου 2010 Μέλος Δημοσ. 22 Φεβρουαρίου 2010 ποιος ο λόγος να κάνεις το μισό σε schematic drawing; Το schematic drawing στην ψηφιακή σχεδίαση το χρησιμοποιούσαμε πριν 15+ χρόνια! Άλλωστε αυτός είναι ο λόγος που υπάρχουν οι γλώσσες περιγραφής υλικού και τα εργαλεία λογικής σύνθεσης! Δίκιο έχεις αλλά σε αυτό το μάθημα όταν σου ζητάει το πρώτο κομμάτι δεν έχεις μάθει vhdl και για αυτό πρέπει να την κάνουμε έτσι.
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.