/Block-RAM

HW block ram implementation

Primary LanguageVHDL

happynewyear

Αναφορά για τη 2η εργαστηριακή άσκηση

Αρχικά υλοποιώ μια block ram και φτιάχνω ένα test bench για αυτη. Θα χρησιμοποιήσω single port write first block ram για να έχω στο ίδιο time slice τις εισόδους μου στις εξόδους μου. Θέλω μία για κάθε είσοδο και μία για την έξοδο.

Πλέον στο σύστημα της προηγούμενης εργασίας προστίθεται πλέον block RAMs (επιλέξησαν οι single port write first RAMs για να γίνεται απευθείας εγγραφή στην έξοδο της RAM εξόδου, και να μην χρειαστεί να πειράξουμε το write enable (WE) και να περιμένουμε τον επόμενο κύκλο ρολογιού για τα νέα αποτελέσματα).

Το αρχείο control_signal_generator τροποποιείται πλέον έτσι ώστε να παίρνει μια είσοδο start_running ή οποία θα ξεκινάει το FSM. Αυτό για να μπορέσουμε να αρχικοποιήσουμε τις RAM εισόδου. Επίσης παίρνει το write enable μόνο για τις RAM εισόδου έτσι ώστε να επιτευχθεί η αρχικοποίηση τους. Όταν το WE των RAM εισόδου γίνει 0, τότε θα ξεκινήσει το FSM να τρέχει (start_running <= ‘1’). Το WE της RAM εξόδου είναι θα τίθεται σε 1 απο το FSM, κάθε όποτε έχουμε accurate αποτελέσματα στον register εξόδου, και θα τίθεται πάλι σε 0 στην επόμενη κατάσταση.

Το FSM θα αναλάβει να δίνει τις επόμενες διευθύνσεις για να διαβάζει τα δεδομένα (εξόδους των ram) και να κάνει τους υπολογισμούς. Η RAM εξόδου θα έχει διπλάσιο word size από τις μνήμες εισόδου.

Πλέον τα input και τα output των registers από την προηγούμενη εργασία γίνονται signals. Οι νέες είσοδοι είναι πλέον οι είσοδοι των RAM.