2009-03-16 9 views

risposta

10

Temo di non sapere nulla di Verilog, anche se noto che c'è un Verilog Distribution sul CPAN e contiene molti moduli che potrebbero essere rilevanti per il tuo lavoro. Effettuare una ricerca su search.cpan.org potrebbe anche fornire alcuni vantaggi.

In ogni caso, è necessario imparare a camminare prima di poter correre. È eccellente avere un obiettivo quando si impara una nuova lingua, ma i moduli non ti aiuteranno se prima non capisci la sintassi e la semantica di Perl.

Se stai cercando un buon libro da cui imparare, il già citato Learning Perl (di Stackoverflow Regular brian d foy) è eccellente; prendi l'ultima edizione che puoi trovare. Se si desidera iniziare l'apprendimento al momento, quindi mi consiglia di scaricare . Entrambe le risorse contengono molti esempi approfonditi, link ad ulteriori informazioni ed esercitazioni che puoi provare a rafforzare le tue conoscenze.

C'è anche un elenco di recommended online tutorials su Perl 5 wiki.

Disclosure: Sono coautore dei manuali del corso Perl Training Australia, e ammiro brian d foy come uno degli eroi della comunità Perl. Sono anche un collaboratore occasionale del wiki Perl 5.

Tutto il meglio,

Paul

+2

dati munging con Perl da Dave Cross è anche un buon libro per la gente che è l'uso primario di Perl è semplicemente tirando roba fuori testo. –

6

Non so nulla di Verilog, ma se hai già familiarità con un altro linguaggio di programmazione, ti consiglio vivamente Learning Perl.

Si potrebbe anche verificare this page per dopo.

1

Verilog gate-livello di file netlist sono solo file di testo, di solito in uscita dal alcuni software come Synopsys Design Compiler, in modo che siano adatti ad essere analizzato da Perl.

Essendo semplici file di testo, non c'è davvero nulla di speciale riguardo a Perl. Studia qualsiasi esercitazione in Perl che ti introduca alle basi della sintassi Perl e delle espressioni regolari e ciò che imparerai dovrebbe essere facilmente adattabile alle tue attività relative a Verilog. Vedi ad esempio: http://perldoc.perl.org/perlintro.html - per un'introduzione generale. http://perldoc.perl.org/perlretut.html - per un buon tutorial sulle espressioni regolari.

Tuttavia, anche un semplice programma può presentare molti errori nascosti. Per esempio, diciamo che si desidera stampare tutti i nomi di modulo dal gerarchica Verilog netlist:

use strict; 
use warnings; 

my $infile = $ARGV[0] or die "$0 Usage:\n\t$0 <input verilog file>\n\n"; 
open(my $in_fh , '<' , $infile) or die "$0 Error: Couldn't open $infile for reading: $!\n"; 

while(<$in_fh>) { 

    if (m/^module\s+(\S+)/) { 
     print "$1\n"; 
    } 

} 

close($in_fh) or die "$0 Error: Couldn't close $infile after reading: $!\n"; 

Anche questo breve esempio è piena di potenziali errori: che cosa succede se il nome del modulo non è sulla stessa linea della " modulo "parola chiave? cosa succede se non c'è spazio tra l'apertura "(" del modulo e il nome del modulo?cosa succede se c'è uno spazio (o spazi) tra l'inizio della linea e la parola chiave "modulo"?

È necessario essere consapevoli di queste sfide. Se tutto ciò di cui hai bisogno è una semplice soluzione one-shot per un'attività specifica di Verilog, un semplice script Perl come la soluzione di cui sopra è una buona soluzione, purché sia ​​adeguatamente documentato per avvisare i futuri utenti delle sue note mancanze.

Se avete bisogno di qualcosa di più complesso, che comporta un parsing più complesso del codice Verilog, potrei provare a vedere se qualcuno dei vostri strumenti esistenti (compilatore, linter, correttore di equazioni formali, simulatore, ecc.) Vi dà accesso al dati di cui hai bisogno. Tutti questi strumenti includono parser Verilog maturi e funzionanti, ottimizzati per velocità/memoria e spesso forniscono un'interfaccia basata su Tcl per l'accesso ai dati.

Diverse persone sopra di me hanno consigliato Verilog-Perl. L'ho provato e ho trovato estremamente lento. Se gestisci netlist superiori ai 100 MB, non utilizzerei questa soluzione, ma il tuo numero di chilometri può variare.

1

Credo che stiate cercando Verilog Perl. Per una classe di pagamento su Perl per Verilog/VHDL, considerare this from Doulos. In secondo luogo il voto per il manuale del corso Perl in Australia Perl per l'apprendimento in generale.

2

Il Perl Intro su perldoc è il modo in cui l'ho imparato per la prima volta. È un oveview veramente veloce e facile della lingua. Tutti i principianti che conoscono già un linguaggio di programmazione dovrebbero iniziare qui. Puoi leggerlo in circa mezz'ora e essere pronto per iniziare la codifica.

Problemi correlati