forked from tanchou/Verilog
Readme
This commit is contained in:
200
README.md
200
README.md
@@ -1,12 +1,208 @@
|
|||||||
# Verilog
|
# Verilog
|
||||||
|
|
||||||
|
## Semaine 1
|
||||||
|
|
||||||
|
Jour 1 :
|
||||||
|
|
||||||
|
Matin :
|
||||||
|
|
||||||
|
Exercices HDLbits :
|
||||||
|
|
||||||
|
- Vectors
|
||||||
|
|
||||||
|
- Modules : hierarchy
|
||||||
|
|
||||||
|
- Procedures (commencer)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Aprèm :
|
||||||
|
|
||||||
|
Exercices HDLbits :
|
||||||
|
|
||||||
|
- Procedures
|
||||||
|
|
||||||
|
- More Verilog features
|
||||||
|
|
||||||
|
- Circuits
|
||||||
|
|
||||||
|
Début de la mise en place de l’environnement :
|
||||||
|
|
||||||
|
Téléchargement de oss-cad (tools chain) pour simuler et synthétiser le verilog HDL
|
||||||
|
|
||||||
|
Essaie sur des modules verilog
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Jour 2 :
|
||||||
|
|
||||||
|
Matin :
|
||||||
|
|
||||||
|
Exercices HDLbits :
|
||||||
|
|
||||||
|
Latches & flip flop
|
||||||
|
|
||||||
|
Lecture de doc
|
||||||
|
|
||||||
|
Aprèm :
|
||||||
|
|
||||||
|
Exercices HDLbits :
|
||||||
|
|
||||||
|
Counters
|
||||||
|
|
||||||
|
Galère sur la mise en place de l’environnement avec de outils open source :
|
||||||
|
|
||||||
|
Telechargement et instalation du driver opensource pour le tang nano avec Z-Diag,
|
||||||
|
|
||||||
|
Étape
|
||||||
|
|
||||||
|
Outil
|
||||||
|
|
||||||
|
Etat
|
||||||
|
|
||||||
|
Synthèse
|
||||||
|
|
||||||
|
yosys
|
||||||
|
|
||||||
|
✅
|
||||||
|
|
||||||
|
Placement/Routage Probleme ici
|
||||||
|
|
||||||
|
nextpnr-gowin
|
||||||
|
|
||||||
|
X
|
||||||
|
|
||||||
|
Packer bitstream
|
||||||
|
|
||||||
|
apicula (ou gowin_pack open source)
|
||||||
|
|
||||||
|
X
|
||||||
|
|
||||||
|
Flash USB
|
||||||
|
|
||||||
|
dfu-util
|
||||||
|
|
||||||
|
X
|
||||||
|
|
||||||
|
Simulation
|
||||||
|
|
||||||
|
iverilog, gtkwave
|
||||||
|
|
||||||
|
✅
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Jour 3 :
|
||||||
|
|
||||||
|
Matin :
|
||||||
|
|
||||||
|
Lecture documentation sur le capteur ultrasonic
|
||||||
|
|
||||||
|
Implémentation du fonctionnement du capteur afin de tester du code en simulation
|
||||||
|
|
||||||
|
Aprèm :
|
||||||
|
|
||||||
|
Implementation du module qui permet de mesurer la distance en communiquant avec le capteur
|
||||||
|
|
||||||
|
Implémentation du module qui permet de transformer la distance en affichage sur les 6 leds pour faire comme un capteur de recul
|
||||||
|
|
||||||
|
Implémentation du module top qui met en corrélation les deux module précédent afin de faire le system de radar de recul
|
||||||
|
|
||||||
|
Installation de logiciel propriétaire gowin fpga en attendant
|
||||||
|
|
||||||
|
Prise en main du logiciel avec des programme simple
|
||||||
|
|
||||||
|
Premier montage du capteur sur la breadboard
|
||||||
|
|
||||||
|
Refonte du module de mesure car finalement le capteur fonctionne sur un seul fil bi directionnel + implémentation de la mesure continue
|
||||||
|
|
||||||
|
Programmation sur fpga fonctionnel
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Lecture de doc sur la led ws2812
|
||||||
|
|
||||||
|
Implémentation des modules et du test bench
|
||||||
|
|
||||||
|
Fail
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Jour 4 :
|
||||||
|
|
||||||
|
Matin :
|
||||||
|
|
||||||
|
Lecture documentation sur le protocole UART (serial)
|
||||||
|
|
||||||
|
Implémentation du module uart_tx transmision encoding ainsi que sa tb
|
||||||
|
|
||||||
|
Implémentation du module uart_rx reception decoding ainsi que sa tb
|
||||||
|
|
||||||
|
Implémentation du module uart_tx_rx qui permet de communiquer facilement en uart ainsi que sa tb
|
||||||
|
|
||||||
|
Il suffit de lier le fils TX au RX du deuxième dispositif et lier son TX a notre RX, quand on souhaite envoyer des données il suffit d’y inscrire un byte (octet) dans data_in puis de donner une impulsion sur start, pour recevoir on sais que l’on a des données a lire quand valid est a 1
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Preparation pour cree un top-module qui permet de transmettre la distance mesurer par le capeur au pc en uart
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Aprèm :
|
||||||
|
|
||||||
|
Implémentation d’un nouveau module qui regroupe celui de la transmission et du capteur ultrason afin d'essayer d'envoyer la distance mesurée par le capteur à l'ordinateur
|
||||||
|
|
||||||
|
Essaie reussi, valeur envoyer par le tx depuis le fpga et recupéré par un script python
|
||||||
|
|
||||||
|
Création nouveau modules pour utiliser l’uart dans les deux sens, depuis le pc on envoie un chiffre entre 0 & 5 et sa toggle la led correspondante sur le fpga et celui-ci nous renvoie son état actuel.
|
||||||
|
|
||||||
|
Plein de soucis et de bug
|
||||||
|
|
||||||
|
Lecture de code exemple trouver sur un git, résolution de certain problème
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Jour 5 :
|
||||||
|
|
||||||
|
Lecture de code d’autrui
|
||||||
|
|
||||||
|
Essaie de différent code
|
||||||
|
|
||||||
|
Réflexion sur la conception du projet qui consiste a utiliser un esp32 avec le tang nano 20k
|
||||||
|
|
||||||
|
## Semaine 2
|
||||||
|
|
||||||
|
Jour 6 :
|
||||||
|
|
||||||
|
Matin :
|
||||||
|
|
||||||
|
Remise dans le bain
|
||||||
|
|
||||||
|
Réflexion sur projet à faire avec un FPGA (tang nano 20k) et un esp32 :
|
||||||
|
|
||||||
|
Le but global est de pouvoir se connecter à l'esp32 et ensuite de pouvoir communiquer avec le pc (ou autre appareil connecté en USB au FPGA)
|
||||||
|
|
||||||
|
l'esp 32 agis comme esclave pour le FPGA et sert uniquement de portail wifi, le FPGA quand à lui, fera le lien entre les appareils en wifi et le périphérique USB
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
[ PC via USB-C ] ←→ [ FPGA (Tang Nano 20K) ] ←→ [ ESP32 ] ←→ [ Clients en Wi-Fi ]
|
||||||
|
|
||||||
|
|
||||||
## Commands
|
|
||||||
|
|
||||||
|
## Cheat sheet
|
||||||
|
### Commands
|
||||||
Compile code
|
Compile code
|
||||||
iverilog -o Nom_de_sortie.vvp .\source1.v .\tb_1.v
|
iverilog -o Nom_de_sortie.vvp .\source1.v .\tb_1.v
|
||||||
|
|
||||||
|
|
||||||
### Upload on fpga
|
#### Upload on fpga
|
||||||
yosys -p "synth_ecp5 -json design.json" counter.v
|
yosys -p "synth_ecp5 -json design.json" counter.v
|
||||||
nextpnr-gowin --chip GW2AR-LV18QN88C8/I7 --json design.json --asc design.asc
|
nextpnr-gowin --chip GW2AR-LV18QN88C8/I7 --json design.json --asc design.asc
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
Projet à faire avec un FPGA (tang nano 20k) et un esp32 :
|
Projet à faire avec un FPGA (tang nano 20k) et un esp32 :
|
||||||
Le but global est de pouvoir se connecter à l'esp32 et ensuite de pouvoir communiquer avec le pc (ou autre appareil connecté en usb au FPGA)
|
Le but global est de pouvoir se connecter à l'esp32 et ensuite de pouvoir communiquer avec le pc (ou autre appareil connecté en USB au FPGA)
|
||||||
l'esp 32 agis comme esclave pour le FPGA et sert uniquement de portail wifi, le FPGA quand à lui, fera le lien entre les appareils en wifi et le périphérique usb
|
l'esp 32 agis comme esclave pour le FPGA et sert uniquement de portail wifi, le FPGA quand à lui, fera le lien entre les appareils en wifi et le périphérique USB
|
||||||
|
|
||||||
[ PC via USB-C ] ←→ [ FPGA (Tang Nano 20K) ] ←→ [ ESP32 ] ←→ [ Clients en Wi-Fi ]
|
[ PC via USB-C ] ←→ [ FPGA (Tang Nano 20K) ] ←→ [ ESP32 ] ←→ [ Clients en Wi-Fi ]
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user