Changes between Version 3 and Version 4 of Component/trx_ofdm


Ignore:
Timestamp:
Jan 29, 2009, 1:46:26 PM (15 years ago)
Author:
ivan.miro-panades@…
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Component/trx_ofdm

    v3 v4  
    173173 
    174174
    175 
     175== 4) Envoi de la configuration du cœur à travers de MWMR ==
     176Les configurations du cœur ne sont pas visibles directement dans le memory map du système. On ne peut pas faire une lecture/écriture à une adresse pour obtenir la valeur à configurer/lire. Pour configurer ces registres, il faut passer par un mécanisme d'indirection mise en place par le wrapper du trx_ofdm. Ce mécanisme permet uniquement de faire des écritures de configuration, on ne peut pas faire de lecture.
     177
     178Pour charger les configurations au cœur TRX_OFDM on utilise une FIFO (FIFO d'entrée de configuration) et un registre de configuration (Adresse de configuration: registre @5) de MWMR. La procédure est la suivante:
     179
     180 * On écrit dans le registre @5 l'adresse de début à configurer.
     181 * On écrit dans la FIFO les données de configuration de maniérer séquentielle.
     182
     183Par exemple, si on veut configurer les adresses 10 à 25, on écrit 10 dans le registre @5 et puis on écrit les 15 valeurs de configuration dans la FIFO.
     184
     185Avant d'envoyer des données au cœur, on doit s'assurer que tous les paramètres de configuration on été reçus. On doit utiliser la fonction 'mwmr_wait_fifo_empty' pour s'en assurer.
     186
     187== 5) Chargement des données dans le cœur ==
     188Le module OFDM travaille avec des paquets de données, par exemple pour une FFT de 1024 données, le paquet de données sont les 1024 valeurs nécessaires pour réaliser la FFT.
     189
     190Pour que le module OFDM puisse travailler avec un nouveau paquet de données il faut:
     191
     192 1. Ecrire dans le registre SlotID (registre @1) du cœur le numéro de configuration à exécuter.
     193 2. Reseter à 0 le registre Excute (registre @0).
     194 3. Ecrire 1 au registre Execute pour démarrer une nouvelle exécution au module.
     195 4. Charger les données au module à travers des FIFOs
     196 5. Attendre la fin du chargement avant de charger des nouvelles données. Pour cella, faire du polling sur le registre de EOC (End of Compute, registre status @0) et attendre la valeur 1.
     197 6. On peut lire la valeur de Status du cœur 0 (registre status @1) pour savoir si tout est bien passé. La valeur 0 signifie que tout c'est bien passé.
     198
     199On peut charger un nouveau paquet de données dès que le registre de EOC du paquet précédent vaut 1. Autrement on pourrait écraser l'exécution courante.
     200
     201
     202
     203
     204== 6) Démonstrateur du bloc TRX_OFDM ==
     205Le démonstrateur du bloc TRX_OFDM est constitué de :
     206
     207 * Un processeur MIPS
     208 * Trois bancs mémoire
     209   * Mémoire du programme
     210   * Mémoire données
     211   * Mémoire des objets logiciels MWMR (non caché)
     212 * Une mémoire de locks
     213 * Un TTY
     214 * Un MWMR connecté au TRX_OFDM
     215
     216[[Image(jjj)]]
     217
     218Les objets logiciels utilisés par le MWMR sont trois:
     219 * FIFO logicielle
     220 * Etat de la FIFO logicielle
     221 * Locks
     222Nous avons séparé les objets FIFO logiciel et son état dans une mémoire (RAM MWMR) pour pouvoir définir cette mémoire comme non cachée. Autrement, il ne serait possible d'utiliser le MWMR correctement.
     223
     224Tout le code nécessaire pour faire fonctionner le bloc TRX_OFDM est embarqué dans le MIPS. Nous avons crée une API (api_trx_ofdm.h) pour permettre une programmation simple de ce bloc. De même, nous avons crée une API (api_mwmr.h et api_mwmr.cpp) pour le MWMR qui intègre toutes les fonctionnalités requises par la API du TRX_OFDM.
     225
     226
     227=== 6.1) Organisation des répertoires ===
     228
     229Le répertoire racine du démonstrateur est:
     230
     231''soclib/platform/topcells/caba-vgmn-trx_ofdm-mipsel''
     232
     233
     234Ce répertoire contient deux sous-répertoires:
     235
     236 * soft: contient le logiciel embarqué et les apis de trx_ofdm et mwmr
     237 * appli/trace: contient des informations internes du module trx_ofdm. Indispensable pour pouvoir utiliser le module.
     238
     239=== 6.2) Objets logiciels pour le MWMR ===
     240
     241Pour pouvoir utiliser le bloc TRX_OFDM il faut configurer tous les objets logiciels pour le MWMR. Ces objets sont:
     242
     243 * FIFO logicielle
     244 * Etat de la FIFO logicielle
     245 * Lock de la FIFO logicielle
     246
     247On doit configurer tous ces objets pour chacune des FIFOs utilisés: 2 FIFOs d'entrée, 2 FIFOs de sortie et une FIFO de configuration.
     248
     249=== 6.3) Application du démonstrateur ===
     250
     251A finir...
     252
     253
     254== 7) Rappel du MWMR ==
     255La mise à jour par le projet SoClib pour le bloc MWMR se trouve:
     256
     257[https://www.soclib.fr/trac/dev/wiki/Component/VciMwmrController]
     258
     259Ce module a été conçu suite à la thèse d'Etienne Faure:
     260
     261"Communications matérielles-logicielles dans les systèmes sur puce orientés télécommunications"
     262
     263[ftp://asim.lip6.fr/pub/reports/2007/th.lip6.2007.faure.1.pdf]
     264
     265
     266
     267
     268
     269
     270