Fichiers sources

Présentation

A titre d’exemple et de point de départ d’un projet, un certain nombre de fichiers sources vous sont proposés ci-après. Certain de ces fichiers ont servi d’illustration à la partie cours. Tous ces fichiers sont en principe dénués d’erreur et ne présenteront pas de problème de bibliothèque car celles qui s’y trouvent sont totalement portables.

Le style de présentation est toujours le même, majuscule pour les mots clefs, minuscules pour les identificateurs. Cela pourrait aisément être changé par un passage par emacs.

Chaque fichier est marqué comme synthètisable ou pas. le nom du fichier décrivant un circuit est entity_circuit.vhd alors que le fichier de test de ce circuit s’appellera test_entity_circuit.vhd

Vous pouvez télécharger l’archive (Zip 82k) de l’ensemble des fichiers .vhd

Les Fichiers classés par catégorie:

Exemple de structure : Projet compteur 4 bits

compteur4_e.vhd — entité seule
compteur4_a1.vhd
compteur4_a2.vhd
compteur4_a3.vhd
compteur4_cfg.vhd
bascule_d_e.vhd
equations10.vhd
bascule_d_a1.vhd
bascule_d_a2.vhd
bascule_d_a3.vhd
utils.vhd
basc_e.vhd
bascule_jk.vhd

Circuits combinatoires

Décodeurs et multiplexeur

ls138.vhd
primitives_pack.vhd # — une fonction de conversion bcd – 7 segments
multiplexeur4.vhd # — 4 écritures différentes de multiplexeur
bin2_7seg.vhd #– conversion binaire 7 segments
bin2bcd.vhd #– conversion binaire-BCD sur 2 chiffres
hexa_to_7seg.vhd — conversion hexadecimal 7 segments

Mémoires et registres

Bascules

bascdra0.vhd
basculed_raz.vhd

Diviseur par 2 (en fréquence)

diviseur2.vhd #– bascule D rebouclée

Latch (déconseillé d’usage , donné à titre d’exemple)

latch_gen.vhd

Mémoire RAM, ROM

ram_gen.vhd — ne sera pas correctement interprété par un synthétiseur trop simple
cy7c150.vhd — Modèle comportemental de RAM
rs.vhd — Modèle comportemental
fifo_gen.vhd — FIFO générique (voir remarque ram_gen)
test_fifogen.vhd — fichier de test
rom16x8.vhd #exemple de description de ROM
rom_16x8.vhd #autre style d’écriture
test_rom16x8.vhd

Registre à décalage

reg_decalage.vhd # — Registre à décalage avec e/s parallèle et série
test_reg_dec.vhd # –Test
regdec1024.vhd # — Exemple d’emploi de « generate » (primitives Ram16x1)

Compteurs générique et leurs test

compteur_gen_synchrone.vhd # — Compteur générique
compteur_gen_asynchrone.vhd # — Compteur générique
test_compteur_gen.vhd # — Test
compteur_prog_gen.vhd # — Compteur générique avec chargement
test_compteur_prog.vhd # — Test

Fonction de résolution (non synthétisables)

Exemple de modèle de réseau tiré du livre de R.Airiau (VHDL …)

nor_res.vhd # — Fonction NOR cablée
pkg_res.vhd # — Paquetage
noeud.vhd # — Modèle d’un noeud (non synthétisable)
reseau.vhd # — Test du réseau de trois noeuds

Traitement image

utilitaires

camerapgm.vhd # — Lit un fichier pgm et extraie le flux pixel
camerappm.vhd # — Lit un fichier ppm et extraie le flux pixel
fonts.vhd # — Caracteres 8×8 pixels
interface_vga.vhd # — Interface VGA 480×640
moniteurpgm.vhd # — lit les pixels et construit un fichier pgm
moniteurppm.vhd # — lit les pixels et construit un fichier ppm
moniteur_vga.vhd # — construit un fichier ppm

Filtres

gaussien.vhd # — filtre gaussien
test_gaussien.vhd # — test
pixel2pgm.vhd # — tes
pgm2pixel.vhd # — tes
totalgaussien.vhd # — camera + filtre + moniteur
gradient.vhd # –
test_gradient.vhd # — test
totalgradient.vhd # — camera + filtre + moniteur
moyenne.vhd # — tes
test_moyenne.vhd # — tes
median.vhd # –
test_median.vhd # — test
totalmedian.vhd # — camera + filtre + moniteur

paq_tri.vhd # paquetage pour filtre médian

Circuits arithmétiques

Multiplieur par itérations

multiplieur_e.vhd # — entité
multiplieur_as1.vhd # — par additions succéssives et structuré
multiplieur_as2.vhd # — par additions succéssives en un seul process
multiplieur_ad1.vhd # — par additions et décalages et structuré
multiplieur_ad2.vhd # — par additions et décalages en un seul process
test_multiplieur.vhd # — Fichier de test des différentes versions.

Diviseurs

diviseur_e.vhd # — entité
diviseur_a1.vhd # — architecture 1
diviseur_a2.vhd # — architecture 2

Modulo (non signé)

unsigned_mod.vhd

test_unsigned_mod.vhd

Calcul du carre d’un nombre par itérations (faible surface)

carre_gen.vhd # — somme des n premiers nombres impairs
test_carre_gen.vhd # — test

Racine carrée

racine.vhd # — soustracttion des n premiers nombres impairs

Communication

Demi-uart

recept.vhd # — recepteur seul
test_recept.vhd # — test

Pilote de souris PS2

pilote_souris.vhd # — Acquisition du flux

Utilitaires

Description de caractères ASCII

ascii_pack.vhd # — codes ascii en format VHDL

Vérification de timing et conversion

utils.vhd # — type bit
verif_pkg.vhd # — type std_logic

Antirebonds et test

anti_rebonds.vhd # — signal d’un poussoir filtré de ses rebonds et décalé d’une valeur de temporisation de 5 ms
test_anti_rebonds.vhd # –preuve
bouton_poussoir.vhd # — Impulsion de largeur une période d’horloge signalant l’appui sur un poussoir filtré de ses rebonds. Elle est décalée d’une valeur de temporisation de 5 ms .
test_bouton_poussoir.vhd
#–preuve

Détection de fronts

fronts.vhd # — detection des deux fronts par mémorisation
detection_front_montant.vhd # –
test_front.vhd # — test

Leave a Reply

You must be logged in to post a comment.