Skip to content

Script per velocizzare e semplificare il workflow del progetto in SIS

Notifications You must be signed in to change notification settings

bohzio/sis-tools

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Sis-tools

Questo repository contiene degli script che ho utilizzato per l'elaborato SIS per ottimizzare e velocizzare il workflow. Tutto è stato testato e utilizzato solamente su ubuntu 16.04

Questi sono gli script:

  • generate-stg - Partendo dal file blif contenente la FSM genera in automatico un'immagine con il grafo degli stati.
  • minimize-fsm - Minimizza in automatico il file blif contenente la FSM per poter testare velocemente le modifiche.
    • Lo script esegue state_minimize, state_assign jedi e stg_to_network e salva in un nuovo file.
  • run-test-sis - Esegue in automatico i test strutturando quelli falliti in tabella per poter visualizzare meglio gli errori.

Installazione

Sis-tools utilizza python 2.7. Gli script sono stati "testati"(:wink:) solo su ubuntu, dovrebbero funzionare anche su osx però chissà, non avendo un Mac non posso testare.

Queste sono le dipendenze che servono.

sudo apt-get install expect
sudo apt-get install python-pip
sudo apt-get install graphviz
sudo apt-get install git
pip install graphviz

Una volta che tutte sono state installate potete usare questo link per clonare e aggiungere al path gli script.

git clone https://github.com/mattia98tr/sis-tools.git ~/.sis-tools && echo 'PATH=~/.sis-tools/:"$PATH"' >> ~/.bashrc && sudo chmod +x -R ~/.sis-tools/

Chiudete e riaprite il terminale per caricare le modifiche della PATH. Ora potete spostarvi nella vostra cartella del progetto e usare gli script.

generate-stg

Prima di tutto dovete modificare il file blif della FSM aggiungendo alla fine e all'inizio delle transizioni i marcatori #STG-START e #STG-STOP. Potete lasciare tutto il resto, basta soltanto che le transizioni siano comprese tra questi 2 marcatori

#STG-START
0------ A A 000
1--0--- A B 111
1--1--- A C 111
#STG-STOP

A questo punto potete lanciare il comando

generate-stg <fileFSM.blif>

Se tutto è andato a buon fine dovreste vedere nella cartella un file che contiene l'immagine. Il risultato sarà tipo quello seguente e ovviamente varierà a seconda del numero di nodi e dei collegamenti tra essi. (il risultato sembra migliore della generazione automatica di BVE 😉 )

alt text

minimize-fsm

minimize-fsm <fileFSM.blif> <newfileFSM_min.blif>

Ora dovreste trovarvi con questo nuovo file <newfileFSM_min.blif> che contiene la fsm minimizzata.

run-test-sis

run-test-sis <test_in.txt> <test_out.txt>

Il file test_in deve essere come da esempio. I simulate possono cambiare l'importante è che la prima e l'ultima riga siano queste. Le parentisi < > non vanno messe ma stanno solo ad indicare che lì dentro dovete mettere i vostri nomi dei file

read_blif <FSMD.blif>
simulate 0 1 1 0 1 0 0 1 1 0 0 0 1
simulate 0 0 1 0 1 0 0 1 1 0 1 0 1
simulate 1 0 0 0 1 0 0 1 1 0 1 1 1
simulate 0 0 1 1 0 1 1 0 1 1 0 0 0
quit

Il file test_out deve essere come da esempio

0	0	0	0	0
0	0	0	0	0
1	1	1	1	1
1	1	1	1	1

Sono consapevole che con il tab il file di out non sia il massimo ma questo è il formato che ci è stato fornito dal prof. Alla fine basta aggiungere la prima e l'ultima istruzione nel file di input poi per il resto potete copiare i file del prof.

Il risultato sarà questo:

alt text

Todo

  • Fare dei test (almeno finti:smiley:)
  • Testare su osx e creare l'url di installazione per quella piattaforma
  • Aggiungere altri script, magari voi avete altre idee

Se trovate errori fate pure una pull request o scrivetemi mattia.corradi.tr@gmail.com oppure contattatemi su telegram @mattia98tr

Free Software, Hell Yeah!

About

Script per velocizzare e semplificare il workflow del progetto in SIS

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages