Die Geschichte des Lesens von HSPICE-Daten in Python

Einführung

Was ich machen wollte. Matrixberechnung zum Lesen der erforderlichen Daten aus HSPICE und zum maschinellen Lernen.

DeCiDa-Bibliothek

Ich habe eine Schaltungssimulatorbibliothek namens DeCiDa gefunden, die auf Python3 ausgeführt wird. Mit dieser Bibliothek ist es möglich, den Schaltungssimulator direkt von DeCiDa aus zu betreiben, diesmal jedoch nur für die Datenkonvertierung.

Code

import numpy as np
from scipy import interpolate
from decida.Data import Data

d_sampling = 0.005
s_sampling = 0
e_sampling = 70

n_sampling = int((e_sampling - s_sampling)/d_sampling + 1)
time_r = np.linspace(s_sampling,e_sampling,n_sampling)

#read .tr0
d = Data()
d.read_hspice('xxx.tr0')
rows = d.nrows()
cols = d.ncols()

#delete unnecessary cols
leave_cols = [0,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,42]
n_leave_cols = len(leave_cols)

for i in range( cols ):
    j = cols - i
    if not (j in leave_cols) :
        d.delete(j)
#d.delete( tuple of col_name )

#trans to numpy array
original_data = np.empty((n_leave_cols,rows))
for i in range(n_leave_cols):
    original_data[i] = d.get(i)

#delete rows which is not change TIME
k = np.zeros(rows-1)
for i in range(rows-1):
    j = rows-i-1
    if (original_data[0,j] <= original_data[0,j-1] ):
        original_data = np.delete(original_data,j,1)

# resamp
def resamp(y):
    f = interpolate.interp1d(original_data[0], y, kind='linear')
    return f(time_r)

r_data = np.empty((n_leave_cols,n_sampling))
r_data[0] = time_r
r_data[1:] = resamp(original_data[1:])

np.save('rData.npy',r_data)

Codebeschreibung

Es ist möglich, das HSPICE-Simulationsergebnis auf Python mit der Datenklasse von DeCiDa zu lesen.

Variable

・ S_sampling, e_sampling Start- und Endzeit der Simulation in Spice. ・ D_sampling Abtastintervall zur Lesezeit.

Daten gelesen

d = Data() Daten können in d mit d.read_hspice ('xxx.xxx') gespeichert werden. Es gibt auch Methoden, die CSV und NGSpice unterstützen.

Löschen Sie unnötige Daten

Ich denke, es gibt ein Datenarray, das für die Berechnung nicht erforderlich ist. d.delete(col) Kann mit gelöscht werden. col kann als ganzzahliger Wert oder Spaltenname angegeben werden. Sie können mehrere löschen, indem Sie einen Taple übergeben. (Ich hatte die Spaltennamen, die ich dieses Mal behalten musste, also habe ich sie einzeln gelöscht.)

Sie können die Spaltennummer aus dem Spaltennamen mit d.index ("zzz") abrufen.

In Numpy-Array konvertieren

Es ist unter d.get (col) verfügbar. Es scheint, dass Sie es tun können, ohne den for-Satz zu verwenden ……. Es scheint, dass es in den unnötigen Datenlöscher im obigen Kapitel integriert werden kann ....

Resampling

Da die Zeitachse der Gewürzdaten nicht gleichmäßig verteilt ist, wird das Resampling mit der Interpolation von SciPy durchgeführt. Wenn die Zeitdaten jedoch beschlagen sind, kann kein Resampling durchgeführt werden, sodass ein Löschen durchgeführt wird.

Dann wurde es linear ergänzt und als Numpy-Daten gespeichert.

Zusammenfassung

Ich erklärte den Code zum Konvertieren des Analogschaltungssimulators und der Python-Daten. Derzeit wird Spice separat gedreht und die Daten werden aus dem Ergebnis gelesen. Da DeCiDa selbst über eine Methode zum Bedienen von Spice verfügt, möchte ich eine Verbesserung der Effizienz in Betracht ziehen.

Recommended Posts

Die Geschichte des Lesens von HSPICE-Daten in Python
Verwenden wir die offenen Daten von "Mamebus" in Python
Die Geschichte von Python und die Geschichte von NaN
Die Geschichte der Teilnahme an AtCoder
Die Geschichte des "Lochs" in der Akte
Versuchen Sie, COVID-19 Tokyo-Daten mit Python zu kratzen
Die Geschichte eines Rubinisten, der mit Python :: Dict-Daten mit Pycall kämpft
[Homologie] Zählen Sie mit Python die Anzahl der Löcher in den Daten
Überprüfen Sie das Verhalten des Zerstörers in Python
Die Geschichte eines Fehlers in PyOCR
Das Ergebnis der Installation von Python auf Anaconda
Die Geschichte der Manipulation globaler Python-Variablen
Grundlagen zum Ausführen von NoxPlayer in Python
Auf der Suche nach dem schnellsten FizzBuzz in Python
Die Geschichte der Verarbeitung A von Blackjack (Python)
Geben Sie die Anzahl der CPU-Kerne in Python aus
Die Geschichte, dass die Lernkosten von Python niedrig sind
[Python] Sortieren Sie die Liste von pathlib.Path in natürlicher Reihenfolge
Holen Sie sich den Aufrufer einer Funktion in Python
Passen Sie die Verteilung jeder Gruppe in Python an
Zeigen Sie das Ergebnis der Geometrieverarbeitung in Python an
der Zen von Python
Kopieren Sie die Liste in Python
Echtzeitvisualisierung von Thermografie AMG8833-Daten in Python
Die Geschichte von sys.path.append ()
Finden Sie den Bruchteil des in Python eingegebenen Werts heraus
Bildverarbeitung? Die Geschichte, Python für zu starten
Die Geschichte, das optimale n in N Faust zu finden
Finden Sie die Lösung der Gleichung n-ter Ordnung mit Python
[Hinweis] Über die Rolle des Unterstrichs "_" in Python
Lösen von Bewegungsgleichungen in Python (odeint)
Ausgabe in Form eines Python-Arrays
Die Geschichte der Anzeige von Mediendateien in Django
Code lesen von faker, einer Bibliothek, die Testdaten in Python generiert
Aufgezeichnete Umgebung für die Datenanalyse mit Python
Holen Sie sich den Schlüssel für die Migration von JSON-Daten auf der zweiten Ebene mit Python
Grundlegende Geschichte der Vererbung in Python (für Anfänger)
Erleben Sie die gute Berechnungseffizienz der Vektorisierung in Python
Zusammenfassung der Tools, die zum Analysieren von Daten in Python benötigt werden
Verarbeitung von CSV-Daten in voller und halber Breite in Python
Die Geschichte von Python ohne Inkrement- und Dekrementoperatoren.
So ermitteln Sie die Anzahl der Stellen in Python
Die Geschichte des Aufbaus der schnellsten Linux-Umgebung der Welt
Über die Ineffizienz der Datenübertragung im luigi on-memory
Lernen Sie das Entwurfsmuster "Chain of Responsibility" in Python
Implementieren Sie die Lösung der Riccati-Algebra in Python
Reproduzieren Sie das Ausführungsbeispiel von Kapitel 4 von Hajipata in Python
Implementierte den Algorithmus von "Algorithm Picture Book" in Python3 (Heap Sort Edition)
[Python] Gibt alle Kombinationen von Elementen in der Liste aus
Verstehen Sie den Status des Datenverlusts - Python vs. R.
Rufen Sie die URL des HTTP-Umleitungsziels in Python ab
Ein Memorandum über die Umsetzung von Empfehlungen in Python
Die Geschichte der automatischen Sprachkonvertierung von TypeScript / JavaScript / Python
Reproduzieren Sie das Ausführungsbeispiel von Kapitel 5 von Hajipata in Python
Um das Äquivalent von Rubys ObjectSpace._id2ref in Python zu tun
Überprüfen Sie die atrophische Natur der Wahrscheinlichkeitsverteilung in Python