Λογότυπο Microsemi

UG0837
Οδηγός χρήσης
IGLOO2 και SmartFusion2 FPGA
Προσομοίωση Υπηρεσιών Συστήματος
2018 Ιουνίου XNUMX

Ιστορικό αναθεώρησης

Το ιστορικό αναθεωρήσεων περιγράφει τις αλλαγές που εφαρμόστηκαν στο έγγραφο. Οι αλλαγές παρατίθενται με αναθεώρηση, ξεκινώντας από την πιο πρόσφατη δημοσίευση.
1.1 Αναθεώρηση 1.0
Η αναθεώρηση 1.0 δημοσιεύθηκε τον Ιούνιο του 2018. Ήταν η πρώτη δημοσίευση αυτού του εγγράφου.

Προσομοίωση υπηρεσιών συστήματος IGLOO2 και SmartFusion2 FPGA

Το μπλοκ Υπηρεσιών Συστήματος της οικογένειας SmartFusion®2 FPGA διαθέτει μια συλλογή υπηρεσιών που είναι υπεύθυνες για διάφορες εργασίες. Αυτές περιλαμβάνουν υπηρεσίες προσομοίωσης μηνυμάτων, υπηρεσίες δείκτη δεδομένων και υπηρεσίες περιγραφής δεδομένων. Οι υπηρεσίες συστήματος είναι προσβάσιμες μέσω του Cortex-M3 στο SmartFusion2 και από το ύφασμα FPGA μέσω του ελεγκτή διασύνδεσης υφάσματος (FIC) τόσο για το SmartFusion2 όσο και για το IGLOO®2. Αυτές οι μέθοδοι πρόσβασης αποστέλλονται στον ελεγκτή συστήματος μέσω του COMM_BLK. Το COMM_BLK διαθέτει προηγμένη διεπαφή περιφερειακού διαύλου (APB) και λειτουργεί ως αγωγός διέλευσης μηνυμάτων για την ανταλλαγή δεδομένων με τον ελεγκτή συστήματος. Τα αιτήματα υπηρεσιών συστήματος αποστέλλονται στον ελεγκτή συστήματος και οι απαντήσεις υπηρεσίας συστήματος αποστέλλονται στο CoreSysSerrvice μέσω του COMM BLK. Η θέση διεύθυνσης για το COMM_BLK είναι διαθέσιμη μέσα στο υποσύστημα μικροελεγκτή (MSS)/υποσύστημα μνήμης υψηλής απόδοσης (HPMS). Για λεπτομέρειες, ανατρέξτε στον ελεγκτή συστήματος UG0450: SmartFusion2 SoC και IGROO2 FPGA.
Οδηγός χρήσης
Η παρακάτω εικόνα δείχνει τη ροή δεδομένων υπηρεσιών συστήματος.
Εικόνα 1 • Διάγραμμα ροής δεδομένων υπηρεσίας συστήματοςΠροσομοίωση υπηρεσιών συστήματος Microsemi UG0837 IGLOO2 και SmartFusion2 FPGA - Διάγραμμα ροής δεδομένωνΓια την προσομοίωση υπηρεσίας συστήματος IGLOO2 και SmartFusion2, πρέπει να στείλετε αιτήματα υπηρεσίας συστήματος και να ελέγξετε τις αποκρίσεις της υπηρεσίας συστήματος για να επαληθεύσετε ότι η προσομοίωση είναι σωστή. Αυτό το βήμα είναι απαραίτητο για την πρόσβαση στον ελεγκτή συστήματος, ο οποίος παρέχει τις υπηρεσίες συστήματος. Ο τρόπος εγγραφής και ανάγνωσης από τον ελεγκτή συστήματος είναι διαφορετικός για τις συσκευές IGLOO2 και SmartFusion2. Για το SmartFusion2, το Coretex-M3 είναι διαθέσιμο και μπορείτε να γράψετε και να διαβάσετε από τον ελεγκτή συστήματος χρησιμοποιώντας εντολές λειτουργικού μοντέλου διαύλου (BFM). Για το IGLOO2, το Cortex-M3 δεν είναι διαθέσιμο και ο ελεγκτής συστήματος δεν είναι προσβάσιμος χρησιμοποιώντας εντολές BFM.
2.1 Τύποι Διαθέσιμων Υπηρεσιών Συστήματος
Διατίθενται τρεις διαφορετικοί τύποι υπηρεσιών συστήματος και κάθε τύπος υπηρεσίας έχει διαφορετικούς υποτύπους.
Υπηρεσίες μηνυμάτων προσομοίωσης
Υπηρεσίες δείκτη δεδομένων
Υπηρεσίες περιγραφής δεδομένων
Το κεφάλαιο Παράρτημα – Τύποι υπηρεσιών συστήματος (δείτε σελίδα 19) αυτού του οδηγού περιγράφει τους διαφορετικούς τύπους υπηρεσιών συστήματος. Για περισσότερες πληροφορίες σχετικά με τις υπηρεσίες συστήματος, ανατρέξτε στον Οδηγό χρήστη UG0450: SmartFusion2 SoC και IGLOO2 FPGA System Controller .
2.2 Προσομοίωση υπηρεσίας συστήματος IGLOO2
Οι υπηρεσίες συστήματος περιλαμβάνουν εγγραφή και ανάγνωση από τον ελεγκτή συστήματος. Για να γράψετε και να διαβάσετε από τον ελεγκτή συστήματος για σκοπούς προσομοίωσης, πρέπει να εκτελέσετε τα βήματα ως εξής.

  1. Δημιουργήστε τον μαλακό πυρήνα IP του CoreSysServices, που είναι διαθέσιμος στον κατάλογο SmartDesign.
  2. Γράψτε τον κώδικα HDL για μια μηχανή πεπερασμένης κατάστασης (FSM).

Το HDL FSM διασυνδέεται με τον CoreSysServices Core, ο οποίος χρησιμεύει ως κύριος ιστός του διαύλου AHBLite. Ο πυρήνας CoreSysServices εκκινεί αίτημα υπηρεσίας συστήματος προς το COMM BLK και λαμβάνει αποκρίσεις υπηρεσίας συστήματος από το COMM BLK μέσω του ελεγκτή διασύνδεσης υφασμάτων FIC_0/1, όπως φαίνεται στην παρακάτω εικόνα.
Εικόνα 2 • Τοπολογία Προσομοίωσης Υπηρεσιών Συστήματος IGLOO2Προσομοίωση υπηρεσιών συστήματος Microsemi UG0837 IGLOO2 και SmartFusion2 FPGA - Διάγραμμα ροής δεδομένων 12.3 Προσομοίωση υπηρεσίας συστήματος SmartFusion2
Για να προσομοιώσετε υπηρεσίες συστήματος σε συσκευές SmartFusion2, πρέπει να γράψετε και να διαβάσετε από τον ελεγκτή συστήματος. Δύο επιλογές είναι διαθέσιμες για πρόσβαση στον ελεγκτή συστήματος για σκοπούς προσομοίωσης.
Επιλογή 1 — Γράψτε τον κώδικα HDL για ένα FSM για διασύνδεση με τον μαλακό πυρήνα IP του CoreSysService, ο οποίος χρησιμεύει ως κύριος υφάσματος AHBLite και εκκινεί αίτημα εξυπηρέτησης συστήματος στο COMM BLK και λαμβάνει απαντήσεις υπηρεσίας συστήματος από το COMM BLK μέσω του υφάσματος FIC_0/1 διεπαφή όπως φαίνεται στην παρακάτω εικόνα.
Εικόνα 3 • Τοπολογία προσομοίωσης υπηρεσιών συστήματος SmartFusion2Προσομοίωση υπηρεσιών συστήματος Microsemi UG0837 IGLOO2 και SmartFusion2 FPGA - Διάγραμμα ροής δεδομένων 2

Επιλογή 2 - Καθώς το Cortex-M3 είναι διαθέσιμο για συσκευές SmartFusion2, μπορείτε να χρησιμοποιήσετε εντολές BFM για απευθείας εγγραφή και ανάγνωση από το χώρο μνήμης του ελεγκτή συστήματος.
Η χρήση εντολών BFM (επιλογή 2) εξοικονομεί την ανάγκη εγγραφής των κωδικών HDL για το FSM. Σε αυτόν τον οδηγό χρήσης, η επιλογή 2 χρησιμοποιείται για την εμφάνιση προσομοίωσης υπηρεσιών συστήματος στο SmartFusion2. Με αυτήν την επιλογή, γίνεται πρόσβαση στον χώρο μνήμης του ελεγκτή συστήματος για να μάθετε τον χάρτη μνήμης του μπλοκ COMM BLK και του ελεγκτή διακοπής διασύνδεσης υφάσματος (FIIC) όταν γράφετε τις εντολές BFM.
2.4 Προσομοίωση Π.χamples
Ο οδηγός χρήσης καλύπτει τις ακόλουθες προσομοιώσεις.

  • Προσομοίωση υπηρεσίας σειριακού αριθμού IGLOO2 (δείτε σελίδα 5)
  • Προσομοίωση υπηρεσίας σειριακού αριθμού SmartFusion2 (δείτε σελίδα 8)
  • Προσομοίωση υπηρεσίας μηδενισμού IGLOO2 (βλ. σελίδα 13)
  • Προσομοίωση υπηρεσίας μηδενισμού SmartFusion2 (δείτε σελίδα 16)

Παρόμοιες μέθοδοι προσομοίωσης μπορούν να εφαρμοστούν και σε άλλες υπηρεσίες συστήματος. Για μια πλήρη λίστα με τις διάφορες διαθέσιμες υπηρεσίες συστήματος, μεταβείτε στο Παράρτημα – Τύποι υπηρεσιών συστήματος (βλ. σελίδα 19).

2.5 Προσομοίωση υπηρεσίας σειριακού αριθμού IGLOO2
Για να προετοιμαστείτε για την προσομοίωση της υπηρεσίας σειριακού αριθμού IGLOO2, εκτελέστε τα βήματα ως εξής.

  1. Καλέστε το πρόγραμμα δημιουργίας συστήματος για να δημιουργήσετε το μπλοκ HPMS.
  2. Επιλέξτε το πλαίσιο ελέγχου Υπηρεσίες συστήματος HPMS στη σελίδα Χαρακτηριστικά συσκευής. Αυτό θα δώσει εντολή στο πρόγραμμα δημιουργίας συστήματος να εκθέσει τη διεπαφή διαύλου HPMS_FIC_0 SYS_SERVICES_MASTER (BIF).
  3. Αφήστε μη επιλεγμένα όλα τα άλλα πλαίσια ελέγχου.
  4. Αποδεχτείτε την προεπιλογή σε όλες τις άλλες σελίδες και κάντε κλικ στο Τέλος για να ολοκληρώσετε το μπλοκ δημιουργίας συστήματος. Στον επεξεργαστή HDL του Libero® SoC, γράψτε τον κώδικα HDL για το FSM (File > Νέο > HDL). Συμπεριλάβετε τις ακόλουθες τρεις καταστάσεις στο FSM σας.
    κατάσταση INIT (αρχική κατάσταση)
    SERV_PHASE (κατάσταση αιτήματος υπηρεσίας)
    RSP_PHASE (κατάσταση απόκρισης υπηρεσίας).
    Το παρακάτω σχήμα δείχνει τις τρεις καταστάσεις του FSM.
    Εικόνα 4 • FSM τριών καταστάσεων
  5. Microsemi UG0837 IGLOO2 και SmartFusion2 FPGA System Services Simulation - Three-State FSM 1Στον κωδικό HDL για το FSM, χρησιμοποιήστε τον σωστό κωδικό εντολής (“01” Hex για την υπηρεσία σειριακού αριθμού ) για να εισαγάγετε την κατάσταση αιτήματος σέρβις από την κατάσταση INIT.
  6. Αποθηκεύστε την HDL σας file. Το FSM εμφανίζεται ως στοιχείο στην Ιεραρχία σχεδίασης.
  7. Ανοίξτε το SmartDesign. Σύρετε και αποθέστε το μπλοκ δημιουργίας συστήματος ανώτατου επιπέδου και το μπλοκ FSM στον καμβά SmartDesign. Από τον κατάλογο, σύρετε και αποθέστε τον μαλακό πυρήνα IP του CoreSysService στον καμβά SmartDesign.
  8. Κάντε δεξί κλικ στον μαλακό πυρήνα IP του CoreSysService για να ανοίξετε το πρόγραμμα διαμόρφωσης. Επιλέξτε το πλαίσιο ελέγχου Υπηρεσία σειριακού αριθμού (στην ενότητα Υπηρεσίες πληροφοριών συσκευής και σχεδίασης
    ομάδα) για να ενεργοποιήσετε την υπηρεσία σειριακού αριθμού.
  9. Αφήστε μη επιλεγμένα όλα τα άλλα πλαίσια ελέγχου. Κάντε κλικ στο OK για έξοδο από το πρόγραμμα διαμόρφωσης.
    Εικόνα 5 • CoreSysServices soft IP Core Configurator
    Microsemi UG0837 IGLOO2 και SmartFusion2 FPGA System Services Simulation - Core Configurator
  10. Συνδέστε το HPMS_FIC_0 SYS_SERVICES_MASTER BIF του μπλοκ δημιουργίας συστήματος στο AHBL_MASTER BIF του μπλοκ CoreSysService.
  11. Συνδέστε την έξοδο του μπλοκ HDL FSM στην είσοδο του μαλακού πυρήνα IP του CoreSysService. Πραγματοποιήστε όλες τις άλλες συνδέσεις στον καμβά SmartDesign όπως φαίνεται στην παρακάτω εικόνα.
    Εικόνα 6 • Καμβάς SmartDesign με μπλοκ HDL, CoreSysServices Soft IP και μπλοκ HPMSMicrosemi UG0837 IGLOO2 και SmartFusion2 FPGA System Services Simulation - HPMS Blocks
  12. Στον καμβά SmartDesign, κάντε δεξί κλικ >Δημιουργία στοιχείου για να δημιουργήσετε τη σχεδίαση ανώτατου επιπέδου.
  13. Στην Ιεραρχία Σχεδιασμού view, κάντε δεξί κλικ στο σχέδιο ανώτατου επιπέδου και επιλέξτε δημιουργία Testbench > HDL .
  14. Χρησιμοποιήστε ένα πρόγραμμα επεξεργασίας κειμένου για να δημιουργήσετε ένα κείμενο file με το όνομα “status.txt” .
  15. Συμπεριλάβετε την εντολή για υπηρεσία συστήματος και τον σειριακό αριθμό 128-bit. Για περισσότερες πληροφορίες, ανατρέξτε στον Πίνακα 1 (Τιμές εντολών/απόκρισης υπηρεσιών συστήματος) στο Εγχειρίδιο CoreSysServices v3.1 για τους κωδικούς εντολών (Hex) που θα χρησιμοποιηθούν για διαφορετικές υπηρεσίες συστήματος. Για την υπηρεσία σειριακού αριθμού, ο κωδικός εντολής είναι "01" Hex.

Η μορφή του status.txt file για την υπηρεσία σειριακού αριθμού είναι η εξής.
< 2 Δεκαψήφιο CMD><32 Δεκαψήφιο Σειριακός Αριθμός>
Example: 01A1A2A3A4B1B2B3B4C1C2C3C4D1D2D3D4
Αποθηκεύστε το status.txt file στο φάκελο Simulation του έργου σας. Το σχέδιο είναι τώρα έτοιμο για προσομοίωση.
Μόλις ξεκινήσει η εκτέλεση της υπηρεσίας, εμφανίζεται ένα μήνυμα που υποδεικνύει τη θέση προορισμού και τον σειριακό αριθμό στο παράθυρο μεταγραφής ModelSim, όπως φαίνεται στην παρακάτω εικόνα.
Εικόνα 7 • Παράθυρο μεταγραφής προσομοίωσης ModelSimΠροσομοίωση υπηρεσιών συστήματος Microsemi UG0837 IGLOO2 και SmartFusion2 FPGA - Παράθυρο μεταγραφήςΟ ελεγκτής συστήματος πραγματοποιεί εγγραφή AHB στη διεύθυνση με τον σειριακό αριθμό. Με την ολοκλήρωση της υπηρεσίας, το RXFIFO του COMM_BLK θα φορτωθεί με την απόκριση της υπηρεσίας.
Σημείωση: Για μια πλήρη λίστα των κωδικών εντολών που θα χρησιμοποιηθούν για διαφορετικές υπηρεσίες συστήματος, ανατρέξτε στον Πίνακα 1 (Τιμές εντολών/απόκρισης υπηρεσιών συστήματος) στο Εγχειρίδιο CoreSysServices v3.1 ή UG0450: SmartFusion2 SoC και IGLOO2 FPGA System Controller Οδηγός χρήστη.
2.6 Προσομοίωση υπηρεσίας σειριακού αριθμού SmartFusion2
Σε αυτόν τον οδηγό χρήσης, οι εντολές BFM (επιλογή 2) χρησιμοποιούνται για πρόσβαση στον ελεγκτή συστήματος για σέρβις συστήματος. Οι εντολές BFM χρησιμοποιούνται καθώς ο επεξεργαστής Cortex-M3 είναι διαθέσιμος στη συσκευή για προσομοίωση BFM. Οι εντολές BFM σάς επιτρέπουν να γράφετε απευθείας και να διαβάζετε από το COMM BLK μόλις γνωρίζετε την αντιστοίχιση μνήμης του COMM_BLK.
Για να προετοιμάσετε το σχέδιό σας για την προσομοίωση της υπηρεσίας σειριακού αριθμού SmartFusion2, εκτελέστε τα ακόλουθα βήματα.

  1. Σύρετε και αποθέστε το MSS από τον κατάλογο στον καμβά σχεδίασης του έργου σας.
  2. Απενεργοποιήστε όλα τα περιφερειακά MSS εκτός από τα MSS_CCC, Reset Controller, Interrupt Management και FIC_0, FIC_1 και FIC_2.
  3. Ρυθμίστε τις παραμέτρους της διαχείρισης διακοπής ώστε να χρησιμοποιεί το MSS για τη διακοπή διακοπής.
  4. Ετοιμάστε το serialnum.bfm file σε ένα πρόγραμμα επεξεργασίας κειμένου ή στον επεξεργαστή HDL του Libero. Αποθηκεύστε το serialnum.bfm file στον φάκελο Simulation του έργου. Το serialnum.bfm θα πρέπει να περιλαμβάνει τις ακόλουθες λεπτομέρειες.
    • Αντιστοίχιση μνήμης στο COMM BLK (CMBLK)
    • Αντιστοίχιση μνήμης για διακοπή περιφερειακής διαχείρισης (FIIC)
    • Εντολή για αίτημα υπηρεσίας συστήματος σειριακού αριθμού («01» Hex)
    • Διεύθυνση για τη θέση του σειριακού αριθμού
    Ένας πρώηνample του serialnum.bfm file έχει ως εξής.
    memmap FIIC 0x40006000; #Memory Mapping to Interrupt Management
    memmap CMBLK 0x40016000; #Memory Mapping σε COMM BLK
    memmap DESCRIPTOR_ADDR 0x20000000; #Τοποθεσία διεύθυνσης για τον σειριακό αριθμό
    #Command Code σε δεκαεξαδικό
    σταθερό CMD 0x1 # Κωδικός εντολής για Serial NumberService
    #FIIC Configuration Registers
    σταθερά FICC_INTERRUPT_ENABLE0 0x0
    #COMM_BLK Μητρώα διαμόρφωσης
    σταθερό CONTROL 0x00
    σταθερό STATUS 0x04
    σταθερά INT_ENABLE 0x08
    σταθερά DATA8 0x10
    σταθερά DATA32 0x14
    σταθερό FRAME_START8 0x18
    σταθερό FRAME_START32 0x1C
    αύξων αριθμός διαδικασίας?
    int x;
    εγγραφή w FIIC FICC_INTERRUPT_ENABLE0 0x20000000 #Configure
    #FICC_INTERRUPT_ENABLE0 # Εγγραφείτε για να ενεργοποιήσετε το COMBLK_INTR #
    #interrupt από το μπλοκ COMM_BLK στο ύφασμα
    #Φάση αιτήματος
    εγγραφή w CMBLK CONTROL 0x10 # Configure COMM BLK Control #Register to
    ενεργοποιήστε τις μεταφορές στη διεπαφή COMM BLK
    εγγραφή w CMBLK INT_ENABLE 0x1 # Configure COMM BLK Interrupt Enable
    #Εγγραφείτε για να ενεργοποιήσετε τη Διακοπή για το TXTOKAY (αντίστοιχο bit στο
    #Κατάσταση Εγγραφή)
    αναμονή 19 # αναμονή για COMM BLK Interrupt , Εδώ το #BFM περιμένει
    #till COMBLK_INTR διεκδικείται
    readstore w CMBLK STATUS x # Read COMM BLK Status Εγγραφή για #TXTOKAY
    # Διακοπή
    σετ xx & 0x1
    αν x
    εγγραφή w CMBLK FRAME_START8 CMD # Διαμόρφωση COMM BLK FRAME_START8
    #Εγγραφείτε για να ζητήσετε την υπηρεσία Serial Number
    endif
    endif
    αναμονή 19 # αναμονή για COMM BLK Interrupt , Εδώ
    Το #BFM περιμένει έως ότου βεβαιωθεί το COMBLK_INTR
    readstore w CMBLK STATUS x # Ανάγνωση COMM BLK Status Εγγραφή για
    #TXTOKAY Διακοπή
    σετ xx & 0x1
    σετ xx & 0x1
    αν x
    εγγραφή w CMBLK CONTROL 0x14 #Configure COMM BLK Control
    #Εγγραφείτε για να ενεργοποιήσετε τις μεταφορές στη διεπαφή COMM BLK
    εγγραφή w CMBLK DATA32 DESCRIPTOR_ADDR
    γράψτε w CMBLK INT_ENABLE 0x80
    γράψτε w CMBLK CONTROL 0x10
    endif
    περίμενε 20
    #Φάση απόκρισης
    αναμονή 19
    readstore w CMBLK STATUS x
    σετ xx & 0x80
    αν x
    επανέλεγχος w CMBLK FRAME_START8 CMD
    γράψτε w CMBLK INT_ENABLE 0x2
    endif
    αναμονή 19
    readstore w CMBLK STATUS x
    σετ xx & 0x2
    αν x
    επανέλεγχος w CMBLK DATA8 0x0
    γράψτε w CMBLK CONTROL 0x18
    endif
    αναμονή 19
    επανέλεγχος w FIIC 0x8 0x20000000
    readstore w CMBLK STATUS x
    σετ xx & 0x2
    αν x
    επανέλεγχος w CMBLK DATA32 DESCRIPTOR_ADDR
    endif
    επανέλεγχος w DESCRIPTOR_ADDR 0x0 0xE1E2E3E4; #Readcheck για έλεγχο S/N
    επανέλεγχος w DESCRIPTOR_ADDR 0x4 0xC1C2C3C4; #Readcheck για έλεγχο S/N
    επανέλεγχος w DESCRIPTOR_ADDR 0x8 0xB1B2B3B4; #Readcheck για έλεγχο S/N
    επανέλεγχος w DESCRIPTOR_ADDR 0xC 0xA1A2A3A4; #Readcheck για έλεγχο S/N
    απόδοση
  5. Δημιουργήστε την κατάσταση. κείμενο file στον επεξεργαστή HDL του Libero ή σε οποιοδήποτε πρόγραμμα επεξεργασίας κειμένου. Συμπεριλάβετε την εντολή υπηρεσίας συστήματος σειριακού αριθμού (“01” σε Hex) και τον σειριακό αριθμό στην κατάσταση . κείμενο file. Ανατρέξτε στο Εγχειρίδιο CoreSysServices v3.1 για τη χρήση του σωστού κώδικα εντολών.
  6. Η σύνταξη αυτού file για την υπηρεσία σειριακού αριθμού είναι, <2 Δεκαψήφιο CMD>< 32 Δεκαψήφιο Σειριακός Αριθμός> . Πρώηνample: 01A1A2A3A4B1B2B3B4C1C2C3C4E1E2E3E4.
  7. Αποθηκεύστε την κατάσταση .txt file στον φάκελο Simulation του έργου.
  8. Επεξεργαστείτε το χρήστη .bfm (βρίσκεται μέσα στο φάκελο Simulation) για να συμπεριλάβει το serialnum. bfm file και καλέστε τη διαδικασία του σειριακού αριθμού όπως φαίνεται στο παρακάτω απόσπασμα κώδικα.
    συμπεριλάβετε το "serialnum.bfm" #include the serialnum.bfm
    διαδικασία user_main;
    εκτύπωση "INFO:Simulation Starts";
    εκτύπωση "INFO:Service Command Code in Decimal:%0d", CMD ;
    καλέστε σειριακό αριθμό? #καλέστε τη διαδικασία του σειριακού αριθμού
    εκτύπωση "INFO:Simulation Ends";
    απόδοση
  9. Στην Ιεραρχία Σχεδιασμού view, δημιουργήστε τον πάγκο δοκιμών (Κάντε δεξί κλικ, Σχεδίαση ανώτατου επιπέδου > Δημιουργία δοκιμαστικού πάγκου > HDL ) και είστε έτοιμοι να εκτελέσετε προσομοίωση υπηρεσίας σειριακού αριθμού.

Μόλις ξεκινήσει η εκτέλεση της υπηρεσίας, εμφανίζεται ένα μήνυμα που υποδεικνύει την τοποθεσία προορισμού και τον σειριακό αριθμό. Ο ελεγκτής συστήματος πραγματοποιεί εγγραφή AHB στη διεύθυνση με τον σειριακό αριθμό. Με την ολοκλήρωση της υπηρεσίας, το RXFIFO του COMM_BLK θα φορτωθεί με την απόκριση της υπηρεσίας. Το παράθυρο μεταγραφής ModelSim εμφανίζει τη διεύθυνση και τον σειριακό αριθμό που ελήφθη όπως φαίνεται στην παρακάτω εικόνα.
Εικόνα 8 • Προσομοίωση υπηρεσίας σειριακού αριθμού SmartFusion2 στο παράθυρο μεταγραφής ModelSimΠροσομοίωση υπηρεσιών συστήματος Microsemi UG0837 IGLOO2 και SmartFusion2 FPGA - Παράθυρο μεταγραφής 1

2.7 Προσομοίωση υπηρεσίας μηδενισμού IGLOO2
Για να προετοιμαστείτε για την προσομοίωση της υπηρεσίας μηδενισμού IGLOO2, εκτελέστε τα βήματα ως εξής.

  1. Καλέστε το πρόγραμμα δημιουργίας συστήματος για να δημιουργήσετε το μπλοκ HPMS. Επιλέξτε το πλαίσιο ελέγχου Υπηρεσίες συστήματος HPMS στο στοιχείο Δυνατότητες συσκευής SYS_SERVICES_MASTER BIF. Αφήστε μη επιλεγμένα όλα τα άλλα πλαίσια ελέγχου. Αποδεχτείτε την προεπιλογή σε όλες τις άλλες σελίδες και κάντε κλικ στη σελίδα. Αυτό δίνει εντολή στο εργαλείο δημιουργίας συστήματος να εκθέσει το HPMS_FIC_0 Finish για να ολοκληρώσει τη διαμόρφωση του μπλοκ του προγράμματος δημιουργίας συστήματος.
  2. Στον επεξεργαστή HDL του Libero SoC, γράψτε τον κώδικα HDL για το FSM. Στον κώδικα HDL για το FSM, συμπεριλάβετε τις ακόλουθες τρεις καταστάσεις.
    κατάσταση INIT (αρχική κατάσταση)
    SERV_PHASE (κατάσταση αιτήματος υπηρεσίας)
    RSP_PHASE (κατάσταση απόκρισης υπηρεσίας)
    Το παρακάτω σχήμα δείχνει τις τρεις καταστάσεις του FSM.
    Εικόνα 9 • FSM τριών καταστάσεωνΠροσομοίωση υπηρεσιών συστήματος Microsemi UG0837 IGLOO2 και SmartFusion2 FPGA - FSM τριών καταστάσεων

     

  3. Στον κώδικα HDL, χρησιμοποιήστε τον κωδικό εντολής "F0" (Hex) για να εισαγάγετε την κατάσταση αιτήματος υπηρεσίας από την κατάσταση INIT.
  4. Αποθηκεύστε την HDL σας file.
  5. Ανοίξτε το SmartDesign, σύρετε και αποθέστε το μπλοκ δημιουργίας συστήματος ανώτατου επιπέδου και το μπλοκ HDL FSM στον καμβά SmartDesign. Από τον κατάλογο, σύρετε και αποθέστε τον μαλακό πυρήνα IP του CoreSysService στον καμβά SmartDesign.
  6. Κάντε δεξί κλικ στον μαλακό πυρήνα IP του CoreSysServices, για να ανοίξετε το πρόγραμμα διαμόρφωσης και επιλέξτε το πλαίσιο ελέγχου Υπηρεσία μηδενισμού στην ομάδα Υπηρεσίες ασφάλειας δεδομένων. Αφήστε μη επιλεγμένα όλα τα άλλα πλαίσια ελέγχου. Κάντε κλικ για έξοδο ΟΚ.
    Εικόνα 10 • Configurator CoreSysServices
    Microsemi UG0837 IGLOO2 και SmartFusion2 FPGA System Services Simulation - Core Configurator 1
  7. Συνδέστε το HPMS_FIC_0 SYS_SERVICES_MASTER BIF του μπλοκ δημιουργίας συστήματος στο AHBL_MASTER BIF του μπλοκ CoreSysService.
  8. Συνδέστε την έξοδο του μπλοκ HDL FSM στην είσοδο του μαλακού πυρήνα IP του CoreSysService. Πραγματοποιήστε όλες τις άλλες συνδέσεις στον καμβά SmartDesign.
    Εικόνα 11 • Καμβάς SmartDesign με μπλοκ HDL, CoreSysServices Soft IP και μπλοκ HPMS
    Microsemi UG0837 IGLOO2 και SmartFusion2 FPGA System Services Simulation - HPMS Blocks 19. Στον καμβά SmartDesign, δημιουργήστε το σχέδιο ανώτατου επιπέδου (Κάντε δεξί κλικ > Δημιουργία στοιχείου).
    10. Στην Ιεραρχία Σχεδιασμού view, κάντε δεξί κλικ στο σχέδιο ανώτατου επιπέδου και επιλέξτε δημιουργία Testbench > HDL. Είστε πλέον έτοιμοι να εκτελέσετε προσομοίωση.
    Μόλις ξεκινήσει η εκτέλεση της υπηρεσίας, εμφανίζεται ένα μήνυμα που υποδεικνύει ότι ο μηδενισμός έχει ολοκληρωθεί τη στιγμή x, όπως φαίνεται στην παρακάτω εικόνα.
    Εικόνα 12 • Παράθυρο μεταγραφής προσομοίωσης υπηρεσίας συστήματος μηδενισμού IGLOO2
    Προσομοίωση υπηρεσιών συστήματος Microsemi UG0837 IGLOO2 και SmartFusion2 FPGA - Παράθυρο μεταγραφής 3

Ο ελεγκτής συστήματος πραγματοποιεί εγγραφή AHB στη διεύθυνση με τον σειριακό αριθμό. Με την ολοκλήρωση της υπηρεσίας, το RXFIFO του COMM_BLK θα φορτωθεί με την απόκριση της υπηρεσίας. Θα πρέπει να σημειωθεί ότι το μοντέλο προσομοίωσης προσομοιώνει τον μηδενισμό σταματώντας την προσομοίωση αντί μηδενίζοντας το ίδιο το σχέδιο.
Σημείωση: Για μια πλήρη λίστα των κωδικών εντολών που θα χρησιμοποιηθούν για διαφορετικές υπηρεσίες συστήματος, ανατρέξτε στον Πίνακα 1 (Τιμές εντολών/απόκρισης υπηρεσιών συστήματος) στο Εγχειρίδιο CoreSysServices v3.1:. ή UG0450: Οδηγός χρήστη SmartFusion2 SoC και IGLOO2 FPGA System Controller

2.8 Προσομοίωση υπηρεσίας μηδενισμού SmartFusion2
Σε αυτόν τον οδηγό, οι εντολές BFM (επιλογή 2) χρησιμοποιούνται για πρόσβαση στον ελεγκτή συστήματος για σέρβις συστήματος.
Οι εντολές BFM χρησιμοποιούνται καθώς ο επεξεργαστής Cortex-M3 είναι διαθέσιμος στη συσκευή για προσομοίωση BFM. Οι εντολές BFM σάς επιτρέπουν να γράφετε απευθείας και να διαβάζετε από το COMM BLK μόλις γνωρίζετε την αντιστοίχιση μνήμης του COMM_BLK. Για να προετοιμάσετε το σχέδιό σας για προσομοίωση υπηρεσίας μηδενισμού SmartFusion2, εκτελέστε τα ακόλουθα βήματα.

  1. Σύρετε και αποθέστε το MSS από τον κατάλογο στον καμβά σχεδίασης του έργου σας.
  2. Απενεργοποιήστε όλα τα περιφερειακά MSS εκτός από τα MSS_CCC, Reset Controller, Interrupt Management και FIC_0, FIC_1 και FIC_2.
  3. Ρυθμίστε τις παραμέτρους της διαχείρισης διακοπής ώστε να χρησιμοποιεί το MSS για τη διακοπή διακοπής.
  4. Ετοιμάστε το zeroizaton.bfm file σε ένα πρόγραμμα επεξεργασίας κειμένου ή στον επεξεργαστή HDL του Libero. Ο μηδενισμός σου. Το bfm θα πρέπει να περιλαμβάνει:
  • Αντιστοίχιση μνήμης στο COMM BLK (CMBLK)
  • Αντιστοίχιση μνήμης για διακοπή περιφερειακής διαχείρισης (FIIC)
  • Εντολή για αίτημα εξυπηρέτησης μηδενισμού («F0» Hex για μηδενισμό)

Ένας πρώηνample του serialnum.bfm file φαίνεται στο παρακάτω σχήμα.
Εικόνα 13 • Zeroization.bfm για Προσομοίωση Υπηρεσιών Συστήματος Μηδενισμού SmartFusion2

Προσομοίωση υπηρεσιών συστήματος Microsemi UG0837 IGLOO2 και SmartFusion2 FPGA - Παράθυρο μεταγραφής 4

5. Αποθηκεύστε το μηδενισμό.bfm file στον φάκελο Simulation του έργου. user.bfm
6. Επεξεργαστείτε το (βρίσκεται στο φάκελο zeroization.bfm Simulation) για να συμπεριλάβετε το χρησιμοποιώντας το ακόλουθο απόσπασμα κώδικα.
περιλαμβάνει "zeroization.bfm" #include zeroization.bfm file διαδικασία user_main;
εκτύπωση "INFO:Simulation Starts";
εκτύπωση "INFO:Service Command Code in Decimal:%0d", CMD ;
μηδενισμός κλήσης. #call επιστροφή διαδικασία μηδενισμού
7. Στην Ιεραρχία σχεδίασης, δημιουργήστε το Testbench (Κάντε δεξί κλικ πάνω επίπεδο > Δημιουργία Testbench > HDL ) και είστε έτοιμοι να εκτελέσετε την προσομοίωση μηδενισμού SmartFusion2.
Μόλις ξεκινήσει η εκτέλεση της υπηρεσίας, εμφανίζεται ένα μήνυμα που υποδεικνύει ότι η συσκευή έχει μηδενιστεί τη στιγμή x. Θα πρέπει να σημειωθεί ότι το μοντέλο προσομοίωσης προσομοιώνει τον μηδενισμό σταματώντας την προσομοίωση αντί μηδενίζοντας το ίδιο το σχέδιο. Το παράθυρο μεταγραφής ModelSim στο παρακάτω σχήμα δείχνει ότι η συσκευή έχει μηδενιστεί.

Εικόνα 14 • Μητρώο προσομοίωσης υπηρεσίας συστήματος μηδενισμού SmartFusion2

Προσομοίωση υπηρεσιών συστήματος Microsemi UG0837 IGLOO2 και SmartFusion2 FPGA - Παράθυρο μεταγραφής 5

Παράρτημα: Τύποι Υπηρεσιών Συστήματος

Αυτό το κεφάλαιο περιγράφει διάφορους τύπους υπηρεσιών συστήματος.
3.1 Υπηρεσίες μηνυμάτων προσομοίωσης
Οι ακόλουθες ενότητες περιγράφουν διάφορους τύπους υπηρεσιών προσομοίωσης μηνυμάτων.
3.1.1 Flash*Freeze
Η προσομοίωση θα εισέλθει στην κατάσταση Flash*Freeze όταν αποσταλεί το κατάλληλο αίτημα υπηρεσίας στο COMM_BLK είτε από το FIC (στην περίπτωση των συσκευών IGLOO2) είτε από το Cortex-M3 (σε συσκευές SmartFusion2). Μόλις εντοπιστεί η υπηρεσία από τον ελεγκτή συστήματος, η προσομοίωση θα σταματήσει και θα εμφανιστεί ένα μήνυμα που υποδεικνύει ότι το σύστημα έχει εισέλθει στο Flash*Freeze (μαζί με την επιλεγμένη επιλογή). Με την επανέναρξη της προσομοίωσης, το RXFIFO του COMM_BLK θα γεμίσει με την απόκριση υπηρεσίας που αποτελείται από την εντολή και την κατάσταση υπηρεσίας. Θα πρέπει να σημειωθεί ότι δεν υπάρχει υποστήριξη προσομοίωσης για έξοδο Flash*Freeze.
3.1.2 Μηδενισμός
Ο μηδενισμός είναι προς το παρόν η μόνη υπηρεσία υψηλής προτεραιότητας στις υπηρεσίες συστήματος που επεξεργάζεται το COMM_BLK. Η προσομοίωση θα εισέλθει στην κατάσταση μηδενισμού μόλις εντοπιστεί το σωστό αίτημα υπηρεσίας από το COMM_BLK. Η εκτέλεση άλλων υπηρεσιών θα διακοπεί και θα απορριφθεί από τον ελεγκτή του συστήματος και αντ' αυτού θα εκτελεστεί η υπηρεσία μηδενισμού. Μόλις εντοπιστεί το αίτημα υπηρεσίας μηδενισμού, η προσομοίωση σταματά και εμφανίζεται ένα μήνυμα που υποδεικνύει ότι το σύστημα έχει εισαγάγει μηδενισμό. Οι μη αυτόματες επανεκκινήσεις της προσομοίωσης μετά τον μηδενισμό δεν είναι έγκυρες.
3.2 Υπηρεσίες Δεδομένων Δεδομένων
Οι ακόλουθες ενότητες περιγράφουν διάφορους τύπους υπηρεσιών δείκτη δεδομένων.
3.2.1 Σειριακός αριθμός
Η υπηρεσία σειριακού αριθμού θα γράψει έναν σειριακό αριθμό 128-bit σε μια τοποθεσία διεύθυνσης που παρέχεται ως μέρος του αιτήματος υπηρεσίας. Αυτή η παράμετρος 128-bit μπορεί να ρυθμιστεί χρησιμοποιώντας μια Υποστήριξη Προσομοίωσης Υπηρεσίας Συστήματος file (βλ. σελίδα 22) . Εάν η παράμετρος σειριακού αριθμού 128-bit δεν έχει οριστεί στο file, θα χρησιμοποιηθεί ένας προεπιλεγμένος σειριακός αριθμός 0. Μόλις ξεκινήσει η εκτέλεση της υπηρεσίας, εμφανίζεται ένα μήνυμα που υποδεικνύει την τοποθεσία προορισμού και τον σειριακό αριθμό. Ο ελεγκτής συστήματος πραγματοποιεί εγγραφή AHB στη διεύθυνση με τον σειριακό αριθμό. Με την ολοκλήρωση της υπηρεσίας, το RXFIFO του COMM_BLK θα φορτωθεί με την απόκριση της υπηρεσίας.
3.2.2 Κωδικός χρήστη
Η υπηρεσία κωδικού χρήστη γράφει μια παράμετρο κωδικού χρήστη 32 bit σε μια τοποθεσία διεύθυνσης που παρέχεται ως μέρος του αιτήματος υπηρεσίας. Αυτή η παράμετρος 32-bit μπορεί να ρυθμιστεί χρησιμοποιώντας την Υποστήριξη Προσομοίωσης Υπηρεσίας συστήματος file (βλ. σελίδα 22). Εάν η παράμετρος 32-bit δεν έχει οριστεί εντός του file, χρησιμοποιείται μια προεπιλεγμένη τιμή 0. Μόλις ξεκινήσει η εκτέλεση της υπηρεσίας, εμφανίζεται ένα μήνυμα που υποδεικνύει τη θέση προορισμού και τον κωδικό χρήστη. Ο ελεγκτής συστήματος πραγματοποιεί εγγραφή AHB στη διεύθυνση με την παράμετρο 32 bit. Με την ολοκλήρωση της υπηρεσίας, το RXFIFO του COMM_BLK φορτώνεται με την απόκριση υπηρεσίας, η οποία περιλαμβάνει την εντολή υπηρεσίας και τη διεύθυνση προορισμού.
3.3 Υπηρεσίες περιγραφής δεδομένων
Οι ακόλουθες ενότητες περιγράφουν διάφορους τύπους υπηρεσιών περιγραφής δεδομένων.

3.3.1 ΑΕΣ
Η υποστήριξη προσομοίωσης για αυτήν την υπηρεσία αφορά μόνο τη μεταφορά των αρχικών δεδομένων από την πηγή στον προορισμό, χωρίς στην πραγματικότητα να εκτελείται καμία κρυπτογράφηση/αποκρυπτογράφηση των δεδομένων. Τα δεδομένα που πρέπει να κρυπτογραφηθούν/αποκρυπτογραφηθούν και η δομή δεδομένων πρέπει να γραφτούν πριν αποσταλεί το αίτημα υπηρεσίας. Μόλις ξεκινήσει η εκτέλεση της υπηρεσίας, εμφανίζεται ένα μήνυμα που υποδεικνύει την εκτέλεση της υπηρεσίας AES. Η υπηρεσία AES διαβάζει τόσο τη δομή δεδομένων όσο και τα δεδομένα που πρόκειται να κρυπτογραφηθούν/αποκρυπτογραφηθούν. Τα πρωτότυπα δεδομένα αντιγράφονται και γράφονται στη διεύθυνση που παρέχεται στη δομή δεδομένων. Μόλις ολοκληρωθεί η υπηρεσία, η εντολή, η κατάσταση και η διεύθυνση δομής δεδομένων προωθούνται στο RXFIFO.
Σημείωμα: Αυτή η υπηρεσία είναι μόνο για δεδομένα 128 bit και 256 bit και τα δεδομένα 128 και 256 bit έχουν διαφορετικά μήκη δομής δεδομένων.

3.3.2 SHA 256
Η υποστήριξη προσομοίωσης για αυτήν την υπηρεσία αφορά μόνο τη μετακίνηση των δεδομένων, χωρίς στην πραγματικότητα να εκτελείται κατακερματισμός στα δεδομένα. Η συνάρτηση SHA 256 έχει σχεδιαστεί για να δημιουργεί ένα κλειδί κατακερματισμού 256 bit με βάση τα δεδομένα εισόδου. Τα δεδομένα που πρέπει να κατακερματιστούν και η δομή δεδομένων θα πρέπει να εγγραφούν στις αντίστοιχες διευθύνσεις τους πριν σταλεί το αίτημα υπηρεσίας στο COMM_BLK. Το μήκος σε bit και ο δείκτης που ορίζονται στη δομή δεδομένων SHA 256 πρέπει να αντιστοιχεί σωστά στο μήκος και τη διεύθυνση των δεδομένων που πρόκειται να κατακερματιστούν. Μόλις ξεκινήσει η εκτέλεση της υπηρεσίας, εμφανίζεται ένα μήνυμα που υποδεικνύει την εκτέλεση της υπηρεσίας SHA 256. Αντί να εκτελείται η πραγματική συνάρτηση, ένα προεπιλεγμένο κλειδί κατακερματισμού θα γραφτεί στον δείκτη προορισμού από τη δομή δεδομένων. Το προεπιλεγμένο κλειδί κατακερματισμού είναι το δεκαεξαδικό "ABCD1234". Για να ορίσετε ένα προσαρμοσμένο κλειδί, μεταβείτε στην ενότητα Ρύθμιση παραμέτρων (βλ. σελίδα 23). Μετά την ολοκλήρωση της υπηρεσίας, το RXFIFO φορτώνεται με την απόκριση υπηρεσίας που αποτελείται από την εντολή υπηρεσίας, την κατάσταση και το δείκτη δομής δεδομένων SHA 256.
3.3.3 HMAC
Η υποστήριξη προσομοίωσης για αυτήν την υπηρεσία αφορά μόνο τη μετακίνηση δεδομένων, χωρίς στην πραγματικότητα να εκτελείται κατακερματισμός στα δεδομένα. Τα δεδομένα που πρέπει να κατακερματιστούν και η δομή δεδομένων θα πρέπει να εγγραφούν στις αντίστοιχες διευθύνσεις τους πριν σταλεί το αίτημα υπηρεσίας στο COMM_BLK. Η υπηρεσία HMAC απαιτεί ένα κλειδί 32 byte επιπλέον του μήκους σε byte, του δείκτη πηγής και του δείκτη προορισμού. Μόλις ξεκινήσει η εκτέλεση της υπηρεσίας, εμφανίζεται ένα μήνυμα που υποδεικνύει την εκτέλεση της υπηρεσίας HMAC. Το κλειδί διαβάζεται και το κλειδί 256-bit αντιγράφεται από τη δομή δεδομένων στον δείκτη προορισμού. Μετά την ολοκλήρωση της υπηρεσίας, το RXFIFO φορτώνεται με την απόκριση υπηρεσίας που αποτελείται από την εντολή υπηρεσίας, την κατάσταση και το δείκτη δομής δεδομένων HMAC.

3.3.4 Δημιουργία DRBG
Η δημιουργία τυχαίων bit εκτελείται από αυτήν την υπηρεσία. Θα πρέπει να σημειωθεί ότι το μοντέλο προσομοίωσης δεν ακολουθεί ακριβώς την ίδια μεθοδολογία δημιουργίας τυχαίων αριθμών που χρησιμοποιείται από το πυρίτιο. Η δομή δεδομένων πρέπει να είναι σωστά γραμμένη στην προβλεπόμενη θέση της προτού σταλεί το αίτημα υπηρεσίας στο COMM_BLK. Η δομή δεδομένων, ο δείκτης προορισμού, το μήκος και άλλα σχετικά δεδομένα διαβάζονται από τον ελεγκτή του συστήματος. Η υπηρεσία δημιουργίας DRBG δημιουργεί ένα ψευδοτυχαίο σύνολο δεδομένων του ζητούμενου μήκους (0-128). Ο ελεγκτής συστήματος εγγράφει τα τυχαία δεδομένα στον δείκτη προορισμού. Στην προσομοίωση εμφανίζεται ένα μήνυμα που υποδεικνύει την εκτέλεση της υπηρεσίας δημιουργίας DRBG. Μόλις ολοκληρωθεί η υπηρεσία, η εντολή, η κατάσταση και η διεύθυνση δομής δεδομένων προωθούνται στο RXFIFO. Εάν το ζητούμενο μήκος δεδομένων δεν είναι εντός του εύρους 0-128, ένας κωδικός σφάλματος "4" (Max Generate ) θα προωθηθεί στο RXFIFO. Εάν το μήκος πρόσθετων δεδομένων δεν είναι εντός του εύρους Request Too Big 0-128, ένας κωδικός σφάλματος "5" (Μέγιστο μήκος πρόσθετων δεδομένων υπέρβασης) θα προωθηθεί στο RXFIFO. Εάν τόσο το απαιτούμενο μήκος δεδομένων για τη δημιουργία όσο και το μήκος των πρόσθετων δεδομένων δεν βρίσκονται εντός του καθορισμένου εύρους (0-128), ένας κωδικός σφάλματος "1" (Καταστροφικό Σφάλμα) προωθείται στο RXFIFO.

3.3.5 Επαναφορά DRBG
Η πραγματική λειτουργία επαναφοράς εκτελείται με την αφαίρεση των παρουσιών DRBG και την επαναφορά του DRBG. Μόλις εντοπιστεί το αίτημα υπηρεσίας, η προσομοίωση εμφανίζει ένα μήνυμα DRBG Reset service ολοκληρωμένη. Η απόκριση, η οποία περιλαμβάνει την υπηρεσία και την κατάσταση, προωθείται στο RXFIFO.
3.3.6 Αυτοέλεγχος DRBG
Η υποστήριξη προσομοίωσης για τον αυτοέλεγχο DRBG στην πραγματικότητα δεν εκτελεί τη λειτουργία αυτοδιαγνωστικού ελέγχου. Μόλις εντοπιστεί το αίτημα υπηρεσίας, η προσομοίωση θα εμφανίσει ένα μήνυμα εκτέλεσης υπηρεσίας αυτοελέγχου DRBG. Η απάντηση, η οποία περιλαμβάνει την υπηρεσία και την κατάσταση, θα προωθηθεί στο RXFIFO.
3.3.7 DRBG Instantiate
Η υποστήριξη προσομοίωσης για την άμεση υπηρεσία DRBG δεν εκτελεί στην πραγματικότητα την άμεση υπηρεσία. Η δομή δεδομένων πρέπει να είναι σωστά γραμμένη στην προβλεπόμενη θέση της προτού σταλεί το αίτημα υπηρεσίας στο COMM_BLK. Μόλις εντοπιστεί το αίτημα υπηρεσίας, θα διαβαστεί η δομή και η συμβολοσειρά εξατομίκευσης που ορίζονται στον χώρο διευθύνσεων MSS. Η προσομοίωση θα εμφανίσει ένα μήνυμα που υποδεικνύει ότι η υπηρεσία DRBG Instantiate έχει αρχίσει να εκτελείται. Μόλις ολοκληρωθεί η υπηρεσία, η απόκριση, η οποία περιλαμβάνει την εντολή υπηρεσίας, την κατάσταση και τον δείκτη στη δομή δεδομένων, θα προωθηθεί στο RXFIFO. Εάν το μήκος δεδομένων (PERSONALIZATIONLENGTH) δεν είναι εντός του εύρους 0-128, ένας κωδικός σφάλματος "1" (Καταστροφικό Σφάλμα) θα ωθηθεί στο RXFIFO για την κατάσταση.
3.3.8 DRBG Uninstantiate
Η υποστήριξη προσομοίωσης για την μη στιγμιαία υπηρεσία DRBG δεν εκτελεί στην πραγματικότητα την μη στιγμιαία υπηρεσία αφαίρεσης ενός προηγουμένως δημιουργημένου DRBG, όπως κάνει το πυρίτιο. Το αίτημα υπηρεσίας πρέπει να περιλαμβάνει τόσο την εντολή όσο και τη λαβή DRBG. Μόλις εντοπιστεί το αίτημα υπηρεσίας, η λαβή DRBG θα αποθηκευτεί. Η προσομοίωση θα εμφανίσει ένα μήνυμα που δηλώνει ότι η μη στιγμιαία υπηρεσία DRBG έχει αρχικοποιηθεί. Μόλις ολοκληρωθεί η υπηρεσία, η απόκριση, η οποία περιλαμβάνει την εντολή υπηρεσίας, την κατάσταση και τη λαβή DRBG, θα προωθηθεί στο RXFIFO.
3.3.9 DRBG Reseed
Λόγω της προσομοιωτικής φύσης του μπλοκ υπηρεσιών συστήματος, η υπηρεσία επανασποράς DRBG στην προσομοίωση δεν εκτελείται αυτόματα μετά από κάθε υπηρεσία δημιουργίας 65535 DRBG. Η δομή δεδομένων πρέπει να είναι σωστά γραμμένη στην προβλεπόμενη θέση της προτού σταλεί το αίτημα υπηρεσίας στο COMM_BLK. Μόλις εντοπιστεί το αίτημα υπηρεσίας, θα διαβαστεί η δομή και η πρόσθετη παράμετρος εισαγωγής στον χώρο διευθύνσεων MSS. Θα εμφανιστεί ένα μήνυμα που δηλώνει ότι η υπηρεσία επανασποράς DRBG έχει ξεκινήσει να εκτελείται. Η δομή δεδομένων πρέπει να είναι σωστά γραμμένη στην προβλεπόμενη θέση της προτού σταλεί το αίτημα υπηρεσίας στο COMM_BLK. Μόλις ολοκληρωθεί η υπηρεσία, η απόκριση, η οποία περιλαμβάνει την εντολή υπηρεσίας, την κατάσταση και τον δείκτη στη δομή δεδομένων, θα προωθηθεί στο RXFIFO.
3.3.10 KeyTree
Η πραγματική συνάρτηση δεν εκτελείται σε προσομοίωση για την υπηρεσία KeyTree. Η δομή δεδομένων υπηρεσίας KeyTree αποτελείται από ένα κλειδί 32 byte, δεδομένα optype 7 bit (MSB αγνοήθηκε) και διαδρομή 16 byte. Τα δεδομένα εντός της δομής δεδομένων θα πρέπει να εγγραφούν στις αντίστοιχες διευθύνσεις τους, προτού σταλεί το αίτημα υπηρεσίας στο COMM_BLK. Μόλις ξεκινήσει η εκτέλεση της υπηρεσίας, θα εμφανιστεί ένα μήνυμα που υποδεικνύει την εκτέλεση της υπηρεσίας KeyTree. Θα διαβαστούν τα περιεχόμενα της δομής δεδομένων, θα αποθηκευτεί το κλειδί των 32 byte και θα αντικατασταθεί το αρχικό κλειδί που βρίσκεται μέσα στη δομή δεδομένων. Μετά από αυτήν την εγγραφή AHB, η τιμή του κλειδιού στη δομή δεδομένων δεν πρέπει να αλλάξει, αλλά θα πραγματοποιηθούν συναλλαγές AHB για την εγγραφή. Μετά την ολοκλήρωση της υπηρεσίας, το RXFIFO φορτώνεται με την απόκριση υπηρεσίας, που αποτελείται από την εντολή υπηρεσίας, την κατάσταση και τον δείκτη δομής δεδομένων KeyTree.
3.3.11 Απόκριση πρόκλησης
Η πραγματική λειτουργία, όπως ο έλεγχος ταυτότητας της συσκευής, δεν εκτελείται σε προσομοίωση για την υπηρεσία απόκρισης προκλήσεων. Η δομή δεδομένων για αυτήν την υπηρεσία απαιτεί έναν δείκτη στην προσωρινή μνήμη, για να λαμβάνει ένα αποτέλεσμα 32 byte, optype 7 bit και μια διαδρομή 128 bit. Τα δεδομένα εντός της δομής δεδομένων πρέπει να εγγραφούν στις αντίστοιχες διευθύνσεις τους πριν σταλεί το αίτημα υπηρεσίας στο COMM_BLK. Μόλις ξεκινήσει η εκτέλεση της υπηρεσίας, θα εμφανιστεί ένα μήνυμα που υποδεικνύει την εκτέλεση της υπηρεσίας απόκρισης πρόκλησης. Μια γενική απόκριση 256-bit θα εγγραφεί στον δείκτη που παρέχεται στη δομή δεδομένων. Το προεπιλεγμένο κλειδί έχει οριστεί ως εξαγωνικό "ABCD1234". Για να λάβετε ένα προσαρμοσμένο κλειδί, ελέγξτε τη ρύθμιση παραμέτρων (βλ. σελίδα 23). Με την ολοκλήρωση της υπηρεσίας, το RXFIFO θα φορτωθεί με την απόκριση υπηρεσίας, που αποτελείται από την εντολή υπηρεσίας, την κατάσταση και τον δείκτη δομής δεδομένων απόκρισης πρόκλησης.
3.4 Άλλες υπηρεσίες
Οι ακόλουθες ενότητες περιγράφουν διάφορες άλλες υπηρεσίες συστήματος.
3.4.1 Έλεγχος πέψης
Η πραγματική λειτουργία του επανυπολογισμού και της σύγκρισης αναλύσεων επιλεγμένων στοιχείων δεν εκτελείται για την υπηρεσία ελέγχου σύνοψης στην προσομοίωση. Αυτό το αίτημα υπηρεσίας αποτελείται από εντολές υπηρεσίας και επιλογές υπηρεσίας (5-bit LSB). Μόλις ξεκινήσει η εκτέλεση της υπηρεσίας, θα εμφανιστεί ένα μήνυμα που περιγράφει λεπτομερώς την εκτέλεση της υπηρεσίας ελέγχου σύνοψης, μαζί με τις επιλεγμένες επιλογές από το αίτημα. Μετά την ολοκλήρωση της υπηρεσίας, το RXFIFO θα φορτωθεί με την απόκριση σέρβις, που αποτελείται από την εντολή σέρβις και τις σημαίες επιβεβαίωσης ελέγχου επιτυχίας/αποτυχίας.
3.4.2 Απόκριση μη αναγνωρισμένης εντολής
Όταν αποστέλλεται ένα μη αναγνωρισμένο αίτημα υπηρεσίας στο COMM_BLK, το COMM_BLK θα απαντήσει αυτόματα με ένα μη αναγνωρισμένο μήνυμα εντολής που ωθείται στο RXFIFO. Το μήνυμα αποτελείται από την εντολή που αποστέλλεται στο COMM_BLK και την κατάσταση μη αναγνωρισμένης εντολής (252D). Θα εμφανιστεί επίσης ένα μήνυμα οθόνης που υποδεικνύει ότι έχει εντοπιστεί μη αναγνωρισμένο αίτημα υπηρεσίας. Το COMM_BLK θα επιστρέψει σε κατάσταση αδράνειας, περιμένοντας να αποδεχτεί το επόμενο αίτημα υπηρεσίας.
3.4.3 Μη υποστηριζόμενες υπηρεσίες
Οι μη υποστηριζόμενες υπηρεσίες που έχουν οριστεί στο COMM_BLK θα ενεργοποιήσουν ένα μήνυμα στην προσομοίωση που υποδεικνύει ότι το αίτημα υπηρεσίας δεν υποστηρίζεται. Το COMM_BLK θα επιστρέψει σε κατάσταση αδράνειας, περιμένοντας να αποδεχτεί το επόμενο αίτημα υπηρεσίας. Το PINTERRUPT δεν θα οριστεί, υποδηλώνοντας ότι μια υπηρεσία έχει ολοκληρωθεί. Η τρέχουσα λίστα των μη υποστηριζόμενων υπηρεσιών περιλαμβάνει: IAP, ISP, Device Certificate και DESIGNVER Service.
3.5 Υποστήριξη Προσομοίωσης Υπηρεσιών Συστήματος File
Για την υποστήριξη προσομοίωσης υπηρεσιών συστήματος, ένα κείμενο file που ονομάζεται "status.txt" μπορεί να χρησιμοποιηθεί για να περάσει οδηγίες σχετικά με την απαιτούμενη συμπεριφορά του μοντέλου προσομοίωσης στο μοντέλο προσομοίωσης. Αυτό file θα πρέπει να βρίσκεται στον ίδιο φάκελο από τον οποίο εκτελείται η προσομοίωση. ο file μπορεί να χρησιμοποιηθεί, μεταξύ άλλων, για να εξαναγκάσει ορισμένες αποκρίσεις σφαλμάτων για τις υποστηριζόμενες υπηρεσίες συστήματος ή ακόμα και για τον καθορισμό ορισμένων παραμέτρων που απαιτούνται για την προσομοίωση, (π.χ.ample, σειριακός αριθμός). Ο μέγιστος αριθμός γραμμών που υποστηρίζονται στο "status.txt" file είναι 256. Οι οδηγίες που εμφανίζονται μετά τον αριθμό γραμμής 256 δεν θα χρησιμοποιηθούν στην προσομοίωση.
3.5.1 Επιβολή απαντήσεων σφαλμάτων
Ο χρήστης μπορεί να επιβάλει μια συγκεκριμένη απάντηση σφάλματος για μια συγκεκριμένη υπηρεσία κατά τη διάρκεια της δοκιμής μεταβιβάζοντας τις πληροφορίες στο μοντέλο προσομοίωσης χρησιμοποιώντας το "status.txt" file, το οποίο θα πρέπει να τοποθετηθεί στο φάκελο από τον οποίο εκτελείται η προσομοίωση. Προκειμένου να επιβληθούν απαντήσεις σφαλμάτων σε μια συγκεκριμένη υπηρεσία, η εντολή και η απαιτούμενη απάντηση θα πρέπει να πληκτρολογηθούν στην ίδια γραμμή με την ακόλουθη μορφή:ample, to Command> ; δώστε εντολή στο μοντέλο προσομοίωσης να δημιουργήσει μια απάντηση σφάλματος πρόσβασης στη μνήμη MSS στην υπηρεσία σειριακού αριθμού, η εντολή είναι η εξής.
Υπηρεσία: Σειριακός αριθμός: 01
Ζητήθηκε μήνυμα σφάλματος: MSS Memory Access Error: 7F
Θα πρέπει να εισαγάγετε τη γραμμή 017F στο "status.txt" file.
3.5.2 Ρύθμιση παραμέτρων
Το "status.txt" file μπορεί επίσης να χρησιμοποιηθεί για τον καθορισμό ορισμένων παραμέτρων που απαιτούνται στην προσομοίωση. Ως πρώηνample, για να ορίσετε την παράμετρο 32-bit για τον κωδικό χρήστη, η μορφή της γραμμής πρέπει να είναι με την εξής σειρά: <32 bit USERCODE>; όπου και οι δύο τιμές εισάγονται σε δεκαεξαδικό. Για να ορίσετε την παράμετρο 128-bit για τον σειριακό αριθμό, η μορφή της γραμμής πρέπει να είναι με την εξής σειρά: <128 Bit Σειριακός Αριθμός [127:0]> ; όπου και οι δύο τιμές εισάγονται σε δεκαεξαδικό. Για να ορίσετε την παράμετρο 256-bit για το κλειδί SHA 256. η μορφή της γραμμής πρέπει να έχει αυτή τη σειρά: <256 Bit Key [255:0]>; όπου και οι δύο τιμές εισάγονται σε δεκαεξαδικό. Για να ορίσετε την παράμετρο 256-bit για το κλειδί απόκρισης πρόκλησης, η μορφή της γραμμής πρέπει να είναι με την εξής σειρά: <256 Bit Key [255:0]>;
όπου και οι δύο τιμές εισάγονται σε δεκαεξαδικό.
3.5.3 Προτεραιότητα συσκευής
Οι υπηρεσίες συστημάτων και το COMM_BLK χρησιμοποιούν σύστημα υψηλής προτεραιότητας. Επί του παρόντος, η μόνη υπηρεσία υψηλής προτεραιότητας είναι ο μηδενισμός. Για την εκτέλεση μιας υπηρεσίας υψηλής προτεραιότητας, ενώ εκτελείται μια άλλη υπηρεσία, η τρέχουσα υπηρεσία διακόπτεται και η υπηρεσία υψηλότερης προτεραιότητας θα εκτελεστεί στη θέση της. Το COMM_BLK θα απορρίψει την τρέχουσα υπηρεσία για να εκτελέσει την υπηρεσία υψηλότερης προτεραιότητας. Εάν αποστέλλονται πολλές υπηρεσίες μη υψηλής προτεραιότητας πριν από την ολοκλήρωση μιας τρέχουσας υπηρεσίας, αυτές οι υπηρεσίες θα τεθούν σε ουρά εντός του TXFIFO. Μόλις ολοκληρωθεί η τρέχουσα υπηρεσία, θα εκτελεστεί η επόμενη υπηρεσία στο TXFIFO.

Η Microsemi δεν παρέχει καμία εγγύηση, αντιπροσώπευση ή εγγύηση σχετικά με τις πληροφορίες που περιέχονται στο παρόν ή την καταλληλότητα των προϊόντων και των υπηρεσιών της για οποιονδήποτε συγκεκριμένο σκοπό, ούτε η Microsemi αναλαμβάνει οποιαδήποτε ευθύνη που προκύπτει από την εφαρμογή ή τη χρήση οποιουδήποτε προϊόντος ή κυκλώματος. Τα προϊόντα που πωλούνται σύμφωνα με το παρόν και οποιαδήποτε άλλα προϊόντα που πωλούνται από τη Microsemi έχουν υποβληθεί σε περιορισμένες δοκιμές και δεν πρέπει να χρησιμοποιούνται σε συνδυασμό με κρίσιμους για την αποστολή εξοπλισμό ή εφαρμογές. Οποιεσδήποτε προδιαγραφές απόδοσης πιστεύεται ότι είναι αξιόπιστες, αλλά δεν επαληθεύονται και ο Αγοραστής πρέπει να διεξάγει και να ολοκληρώσει όλες τις επιδόσεις και άλλες δοκιμές των προϊόντων, μόνος και μαζί με ή εγκατεστημένα σε οποιαδήποτε τελικά προϊόντα. Ο αγοραστής δεν θα βασίζεται σε δεδομένα και προδιαγραφές ή παραμέτρους απόδοσης που παρέχονται από τη Microsemi. Είναι ευθύνη του Αγοραστή να προσδιορίσει ανεξάρτητα την καταλληλότητα οποιωνδήποτε προϊόντων και να ελέγξει και να επαληθεύσει την ίδια. Οι πληροφορίες που παρέχονται από τη Microsemi παρακάτω παρέχονται «ως έχουν, όπου υπάρχει» και με όλα τα σφάλματα, και ολόκληρος ο κίνδυνος που σχετίζεται με αυτές τις πληροφορίες ανήκει εξ ολοκλήρου στον Αγοραστή. Η Microsemi δεν εκχωρεί, ρητά ή σιωπηρά, σε κανένα συμβαλλόμενο μέρος δικαιώματα ευρεσιτεχνίας, άδειες ή άλλα δικαιώματα πνευματικής ιδιοκτησίας, είτε όσον αφορά αυτές τις πληροφορίες καθεαυτές είτε οτιδήποτε περιγράφεται από αυτές τις πληροφορίες. Οι πληροφορίες που παρέχονται σε αυτό το έγγραφο είναι ιδιοκτησία της Microsemi και η Microsemi διατηρεί το δικαίωμα να κάνει οποιεσδήποτε αλλαγές στις πληροφορίες σε αυτό το έγγραφο ή σε οποιαδήποτε προϊόντα και υπηρεσίες ανά πάσα στιγμή χωρίς προειδοποίηση.
Η Microsemi, μια εξ ολοκλήρου θυγατρική της Microchip Technology Inc. (Nasdaq: MCHP), προσφέρει ένα ολοκληρωμένο χαρτοφυλάκιο λύσεων ημιαγωγών και συστημάτων για την αεροδιαστημική και την άμυνα, τις επικοινωνίες, τα κέντρα δεδομένων και τις βιομηχανικές αγορές. Τα προϊόντα περιλαμβάνουν υψηλής απόδοσης και σκληρυμένα με ακτινοβολία αναλογικά ολοκληρωμένα κυκλώματα μικτού σήματος, FPGA, SoC και ASIC. προϊόντα διαχείρισης ενέργειας? συσκευές χρονισμού και συγχρονισμού και ακριβείς λύσεις χρόνου, που θέτουν τα παγκόσμια πρότυπα για το χρόνο. συσκευές επεξεργασίας φωνής? Λύσεις RF; διακριτά εξαρτήματα. λύσεις αποθήκευσης και επικοινωνίας για επιχειρήσεις· τεχνολογίες ασφαλείας και επεκτάσιμο anti-tampπροϊόντα? Λύσεις Ethernet; Power-over-Ethernet IC και μεσαία ανοίγματα. καθώς και προσαρμοσμένες δυνατότητες και υπηρεσίες σχεδιασμού. Η Microsemi έχει την έδρα της στο Aliso Viejo της Καλιφόρνια και έχει περίπου 4,800 υπαλλήλους παγκοσμίως. Μάθετε περισσότερα στο www.microsemi.com.

Λογότυπο Microsemi

Αρχηγείο Microsemi
One Enterprise, Aliso Viejo,
CA 92656 ΗΠΑ
Εντός ΗΠΑ: +1 800-713-4113
Εκτός ΗΠΑ: +1 949-380-6100
Πωλήσεις: +1 949-380-6136
Φαξ: +1 949-215-4996
Email: πωλήσεις.support@microsemi.com
www.microsemi.com
© 2018 Microsemi. Ολα τα δικαιώματα διατηρούνται. Microsemi και το λογότυπο Microsemi
είναι εμπορικά σήματα της Microsemi Corporation. Όλα τα άλλα εμπορικά σήματα και υπηρεσίες
τα σήματα είναι ιδιοκτησία των αντίστοιχων ιδιοκτητών τους.

Έγγραφα / Πόροι

Προσομοίωση υπηρεσιών συστήματος Microsemi UG0837 IGLOO2 και SmartFusion2 FPGA [pdf] Οδηγός χρήστη
UG0837, UG0837 IGLOO2 και SmartFusion2 FPGA System Services Simulation, IGLOO2 and SmartFusion2 FPGA System Services Simulation, SmartFusion2 FPGA System Services Simulation, FPGA System Services Simulation, Services Simulation

Αναφορές

Αφήστε ένα σχόλιο

Η διεύθυνση email σας δεν θα δημοσιευτεί. Τα υποχρεωτικά πεδία επισημαίνονται *