Coder Social home page Coder Social logo

lib_componenti_sis's Introduction

LIBRERIA COMPONENTI SIS

Questo repository contiene file blif con componenti pronti per essere simulati su SIS.

Sono presenti anche file specifici dell'elaborato di architettura degli elaboratori.

Il repository contiene anche script e file di test.

Test

Badge test Descrizione
Tester comparatori testa i comparatori: verificano se due dati sono uguali o diversi

richiedono la porta logica xnor (che a sua volta dipende dalla porta not e dalla porta nor)

Tester funzione maggiore testa funzione maggiore: indica se il primo dato e' maggiore del secondo dato

richiedono la porta logica xor

Tester funzione minore uguale testa funzione minore uguale: indica se il primo dato e' minore uguale del secondo dato

richiedono la funzione complementare (maggiore) e le loro dipendenze (porta logica xor)

Tester multiplexer testa multiplexer: permettono di selezionare uno dei dati in ingresso e ritrasmetterli in uscita
Tester porte logiche testa porte not, or, and, ...
Tester registri testa registri che si occupano di memorizzare dati
Tester shifter a sinistra testa shifter a sinistra: permettono di moltiplicare un numero per 2
Tester sommatori testa i sommatori: sommano due ingressi (e eventuale riporto in ingresso) e mette in uscita il risultato con eventuale riporto
Tester sottrattori testa i sottrattori: effettuano la differenza tra due ingressi e restituiscono il risultato

il bit meno siginificativo in uscita e' sempre 1. Questo bit non fa parte del risultato ed e' necessario per evitare warning di fanout di SIS

i sottrattori necessitano della porta not e del sommatore fulladder a 2 bit

Test specifici dell'elaborato:

Badge test Descrizione
Tester FSM testa la macchina a stati finiti
Ottimizzatore FSM ottimizza automaticamente la macchina a stati finiti
Tester datapath testa il datapath
Tester FSMD testa la FSMD
Ottimizzatore FSMD ottimizza automaticamente la FSMD
Tester progetto completo testa i file finali del progetto
Tester uguaglianza file si assicura che i file finali del progetto sono uguali a quelli delle altre sottocartelle

Descrizione

Nel repository ci sono...

... le cartelle:

  • _optimizer_scripts: contiene script di ottimizzazione che possono essere importati da SIS

  • _simulates: contiene script che eseguono i comandi simulate per simulare le diverse combinazioni degli ingressi di un circuito

  • .github contiene file yml per controllare le dipendenze di github actions e diverse workflow per eseguire gli script Python blif_tester.py e fsm_optimizer.py

    I workflow che eseguono blif_tester.py scaricano il repository, installano SIS e Python e infine eseguono lo script Python di test per controntare i risultati ottenuti dalle simulazioni con i risultati attesi

    Il workflow che esegue fsm_optimizer.py scarica il repository, installa Python e SIS, esegue lo script e infine carica come artifact il file di log e il file blif ottimizzato della fsm

  • comparatori: contiene i comparatori e output attesi dai test

  • datapath: contiene il file del datapath specifico dell'elaborato

  • fsm: contiene il file della macchina a stati finiti specifica dell'elaborato e la fsm ottimizzata

  • fsmd: contiene il file della macchina a stati finiti specifica dell'elaborato

  • maggiore: contiene circuiti che verificano se il primo ingresso e' maggiore del secondo e i relativi output attesi dai test

  • minoreuguale: contiene circuiti che verificano se il primo ingresso e' minore uguale del secondo e i relativi output corretti

  • multiplexer: contiene multiplexer e output corretti

  • porte_logiche contiene le 7 porte logiche e output corretti

  • registri contiene registri e output corretti

  • shiftersx: contiene shifter che moltiplicano per due l'ingresso eseguendo uno shift a sinistra dei bit

  • sis: contiene tutti i file del progetto finito per l'elaborato

  • sommatori contiene fulladder e output corretti

  • sottrattori contiene sottrattori e i file di output corretti

... gli script python:

  • blif_tester.py: di default entra nelle cartelle e cerca i file blif e una cartella "tests". Quando trova file blif cerca nella cartella tests il file di test dei singoli file blif (chiamati test_<nomefileblif>.script) e l'output atteso dalla simulazione (chiamati test_<nomefileblif>_correct_output.txt) oppure un file di configurazione chiamato blif_tester_conf.ini (questo ha priorita' sui file .script)

    Nelle cartelle sono presenti anche i file blif_tester_conf.ini. Sono usati per definire cosa occorre testare per ogni componente appartenente a quella categoria di componenti e, opzionalmente, per indicare il percorso degli script di simulate e di output corretto.

    Se entrambe i percorsi non vengono specificati verra' cercati i file test_<nomefileblif>.script e test_<nomefileblif>_correct_output.txt.

    Combinazioni ibride (file di simulate e percorso in configurazione del file di output atteso o viceversa ) non sono permesse.

    Nelle cartelle sono presenti anche i file setup.sh e teardown.sh, script bash che vengono eseguiti rispettivamente prima e dopo ogni test di un file blif.

    Nelle cartelle sono presenti anche i file setupcategory.sh e teardowncategory.sh, script bash che vengono eseguiti rispettivamente all'inizio e alla fine dei test di quella categoria di componenti.

  • fsm_optimizer.py: si occupa di ottimizzare la macchina a stati finiti contenuta nella cartella fsm

    Lo script copia il file blif diverse volte, esegue ottimizzazioni medianti SIS e lo script nella cartella _optimizer_scripts sulle copie e sulle copie delle copie (questo passaggio viene eseguito piu' volte) e infine sceglie la macchina a stati finiti piu' ottimizzata per area.

  • test_generator.py: contiene funzioni che possono automatizzare la creazione dei file *correct_output.txt

... lo script bash:

  • git_chmod_bash.sh: si occupa di cercare tutti gli script bash nelle sottocartelle e ad indicare a git che i file sono eseguibili.

lib_componenti_sis's People

Contributors

dependabot[bot] avatar farinachristian avatar mario33881 avatar

Stargazers

 avatar  avatar

Watchers

 avatar

lib_componenti_sis's Issues

Grazie

Grazie, ben fatto ragazzi!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.