Κυκλώματα ανάλυσης χρησιμοποιώντας το SystemC

Κυκλώματα ανάλυσης χρησιμοποιώντας το SystemC

Το SystemC είναι ένα άλλο εξαιρετικό εργαλείο για τη μοντελοποίηση υλικού. Περιλαμβάνει όλα τα χαρακτηριστικά γνωρίσματα του C ++ που χρησιμοποιούνται σε όλο τον κόσμο και μια βιβλιοθήκη κλάσεων C ++ ειδικά σχεδιασμένη για το σχεδιασμό του συστήματος. Το SystemC έχει ελεύθερη υλοποίηση ανοιχτού κώδικα και μπορείτε να το μεταγλωττίσετε σε ένα πολύ αποδοτικό εκτελέσιμο δυαδικό κώδικα με τον επίσης ελεύθερο μεταγλωττιστή της Visual Studio Community C ++ της Microsoft. Στο SystemC μπορείτε να μοντελοποιήσετε το υλικό σε υψηλότερο επίπεδο αφαίρεσης από ό, τι σε άλλες HDLs και έτσι για να μοντελοποιήσετε κάποιο πολύ περίπλοκο υλικό π.χ. μικροελεγκτές είναι πιο εύκολο και αποδοτικό στη χρήση από άλλες HDL όπως VHDL ή Verilog.

Στο v11 και σε νεότερες εκδόσεις του TINA μπορείτε επίσης να δημιουργήσετε και να χρησιμοποιήσετε εξαρτήματα που σχεδιάστηκαν στο SystemC, τόσο στην TINA όσο και στην TINACloud. Ακολουθούν οι απαιτήσεις για τη χρήση του SystemC με TINA.


Low-pass filter example
Open the ExamplesSystemCsc lpf.TSC example.

Τα χαρακτηριστικά του φίλτρου και ο κώδικας C σχεδιάζονται από το δωρεάν εργαλείο στο
http://t-filter.engineerjs.com/

Ο δημιουργούμενος C κώδικας τοποθετήθηκε στο αρχείο fir.cpp.

Εκτέλεση ανάλυσης / ανάλυσης Fourier / φάσματος Fourier ...
Πατήστε το κουμπί στο παράθυρο του διαγράμματος. Θα εμφανιστεί ο μετα-επεξεργαστής. Τώρα σύρετε τη λειτουργία μεταφοράς.

Πατήστε το κουμπί More κουμπί. Τύπος Έξοδο (ες) / Εισροές στην Επεξεργασία γραμμής. Πληκτρολογήστε H στο νέο όνομα λειτουργίας. Τύπος Δημιουργία. Τύπος OK. Επιλέγω Προβολή / Ξεχωριστές καμπύλες.
Το αποτέλεσμα είναι το ακόλουθο

Το πιο σημαντικό μέρος της μακροεντολής SystemC:

void fir::proc() 

  double u, y; 
  if (CLK.read() == SC_LOGIC_1) { 
   sc_logic sc_val; 

  // CALC 
  x[0] = SAMPLE; y = 0; 
  for (int k=0; k < M; k++){
    y += b[k]*x[k];
  }

  // SHIFT
  for (int k=M-1; k>=1; k—)
    x[k] = x[k-1];

  // SET VALUE
  RESULT = y;
  n++;
 }


You can find this example in the Examples/Fir folder of the systemc_model.zip.