Skip to content
This repository has been archived by the owner on Jan 9, 2023. It is now read-only.

marco6/FM_Receiver

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

97 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Installazione:

Prima di tutto serve un client GIT se no diventiamo cretini con la linea di comando.

Per fare sta roba serve:

  • GHDL (sudo apt-get install ghdl)
  • gtkwave (sudo apt-get install gtkwave)
  • make (se avete gcc dovrebbe essere già installato)

Per usarli su Windows invece dovete installare:

Dovete anche aggiungere tutte le cartelle con gli eseguibili al PATH (vedi http://stackoverflow.com/questions/6318156/adding-python-path-on-windows-7 )

Utilizzo

La struttura del progetto ha tre cartelle principali e una sottocartella.

Le tre cartelle principali sono:

  • build (tutto minuscolo): serve a ghdl per piazzarci i file intermedi e in generale ciò che gli serve per compilare. Viene ignorata da git
  • waves: serve a contenere i risultati delle simulazioni. Viene ignorata da git.
  • src: questa cartella contiene il codice e una sotto cartella. Nella cartella principale vanno messi i file sorgenti contenenti entità e architetture + funzioni package o quello che volete.
    • src/test: questa invece serve per i test. TUTTI i test vanno messi quì dentro, compresi i file di input!

Se questa organizzazione viene seguita, i makefile funzioneranno. Se no no.

Ci sono praticamente solo due comandi che potete fare con i makefile che ho scritto, li elenco:

  • make : semplicemente costruisce tutta la libreria (test esclusi)
  • make run/nomeTest : (dove nomeTest è il nome di uno dei file della cartella src/test senza l'estensione) fa partire uno dei test e una volta finito (se non ci sono stati errori) apre le forme d'onda del risultato.

Un esempio tipico di utilizzo sarebbe (dopo la modifica ad esempio degli Helpers):

make
make run/Helpers_test

Divisione dei compiti:

Marco:

  • NCO:
    • Controller
    • (Tuner Control ?)

Ienny:

  • Low pass filter (auguri)

##Carlo:

  • Amp (con clipping)
  • PLL (collegamenti)
  • Configurazione(Probabile visto che dobbiamo provare più cose)

SID:

  • Phase detector (vaccata)
  • Cosine Rom (non vaccata)

Nick:

  • Loop filter (auguri anche a te)

Manca ancora:

  • Input per la simulazione (questo ognuno prova a farsi il suo poi vediamo)
    • per favore usate lo stesso formato: un valore per riga, tutto scritto in decimale.. Se no anche quì diventiamo scemi.
  • l'XADC (Questo chiediamo aiuto al prof.)
  • Output (alla fine, se davvero lo mettiamo sulla scheda)

Piazzate qua sotto i file/link di documentazione

Note sul codice:

Ragazzi piazzo quì qualche regoletta/consiglio per non smadonnare come mi è successo a tirocinio!

  • Commenti. TANTI TANTI COMMENTI!
  • Possibilmente fate le cose parametriche (ovvero niente costanti magiche ma usate pesantemente i generici)
  • Nomi delle variabili/segnali comprensibili a umani
  • Se una variabile deve rappresentare numeri, usate solo e soltanto
    • signed o unsigned dalla libreria standard IEEE.numeric_std perchè quella è sintetizzabile completamente.
    • Non usate librerie non standard in generale... Alla finte tanto non servono
  • Per i numeri con la virgola, non ragionate in "bit interi" e "bit decimali" come dice di fare il prof di assembly.. E' UNA VACCATA. Ragionate piuttosto come se fosse una frazione. Ad esempio se avete da rappresentare 1.25 su 8 bit, si potrebbe usare 10100000b = 160 come numeratore e immaginare che il denominatore sia 128. 160/128 è facile da maneggiare nelle moltiplicazioni, pensare al numero di bit invece no.
  • Per far funzionare il makefile che ho scritto, dovete per forza creare due cartelle aggiuntive: build e waves .
  • Come editor:

About

Digital FM reciver in vhdl with zybo

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •