Dans le vocodeur, le rôle du modulateur-mélangeur est double :
Si le vocodeur travaille sur bandes de fréquences, le modulateur-mélangeur reçoit signaux d’enveloppe , et porteuses . La sortie est calculée comme une somme de produits :
Mixer
L’entité Mixer
traite un flux de données en utilisant le protocole ready/valid.
À la différence des autres entités du projet, les données d’entrées sont des
vecteurs d’échantillons.
Elle joue à la fois les rôles de consommateur et de producteur :
Port | Direction | Type | Rôle |
---|---|---|---|
clk_i |
Entrée | Logique | Le signal d’horloge global du système |
reset_i |
Entrée | Logique | La commande de réinitialisation du système |
valid_i |
Entrée | Logique | Indique que de nouveaux vecteurs d’échantillons sont disponibles en entrée |
ready_o |
Sortie | Logique | Indique que ce composant est prêt à recevoir de nouveaux vecteurs d’échantillons d’entrée |
env_data_i |
Entrée | Tableau de valeurs en virgule fixe (vocoder_data_vector_t ) |
L’enveloppe du signal à générer pour chaque voie |
carrier_data_i |
Entrée | Tableau de valeurs en virgule fixe (vocoder_coef_vector_t ) |
La porteuse du signal à générer pour chaque voie |
valid_o |
Sortie | Logique | Indique qu’un nouvel échantillon est disponible en sortie |
ready_i |
Entrée | Logique | Indique que le consommateur relié à ce filtre est prêt à recevoir un nouvel échantillon |
data_o |
Sortie | Virgule fixe (vocoder_data_t ) |
La valeur d’un échantillon filtré |
La gestion du protocole ready/valid est assurée par une machine à trois états sur le modèle présenté dans la page Connecter producteurs et consommateurs.
Dans son état busy, le circuit traite les voies une par une. Il effectue une multiplication et une addition par cycle d’horloge, ce qui permet de n’utiliser qu’une cellule DSP48E1 dans le FPGA.
Nous ne vous demandons pas de réaliser l’architecture. Utilisez l’implémentation de référence fournie.
Nous fournissons une version de cette entité prête à l’emploi dans le fichier
src/Mixer/Mixer-ref.vhd
.
Le contenu de ce fichier a été volontairement rendu illisible.
Nous vous conseillons de ne pas perdre de temps à essayer de le rendre lisible.