Remarques sur «FPGA amusant»

En ce qui concerne ce livre, je l'ai lu tout autour. Beaucoup de gens sur Internet recommandent ce livre, et l'évaluation est très bonne. De mon point de vue, c'est en effet un bon livre sur le FPGA. L'auteur est en effet expérimenté. Il y a beaucoup de choses à apprendre dans le livre, mais il n'est peut-être pas très adapté aux débutants. Il est plus adapté aux personnes ayant une certaine expérience des projets. . Parce que ce livre lui-même est une compilation de nombreuses expériences personnelles de l’auteur, celui-ci peut aussi être ennuyé par la lecture. De nombreuses lectures sur le marché insistent sur l’introduction d’un certain type de savoir, et ce doit être du début à la fin. Style, donc l'auteur a très peu d'introduction aux bases. Pour que les débutants apprennent le développement et le débogage FPGA, il est préférable de lire un autre "FPGA / CPLD Practice and Learn-Quick Start Verilog / VHDL" de l'auteur.

Après tout, en tant que recrue, je connais encore une grande partie du contenu de ce livre, et j'ai peut-être besoin de plus d'accumulation. Enregistrez ici les nouveaux gains que ce livre m'a apportés.

1. Principaux points de la conception de l'horloge:

(1) Évitez d'utiliser des horloges gated ou des horloges générées par la logique interne du système et utilisez plutôt des horloges d'activation.

L'horloge fermée fait référence à la technologie consistant à désactiver l'horloge du registre lorsque les données ne sont pas valides, ce qui peut réduire efficacement la consommation d'énergie et constitue l'une des méthodes importantes de conception à faible consommation d'énergie. Les horloges gated sont souvent utilisées dans la logique combinatoire.En général, la logique qui pilote l'horloge gated ne contient qu'une seule porte ET (porte OU). S'il existe une autre logique supplémentaire, il est facile de produire des problèmes indésirables dus à la concurrence.

(2) Pour les horloges qui doivent être divisées ou multipliées, utilisez l'unité de gestion d'horloge dédiée (telle que PLL ou DLL) à l'intérieur de l'appareil pour générer.

Je crois comprendre que les ressources logiques internes du FPGA sont précieuses et qu'il est trop coûteux de les utiliser pour la gestion de l'horloge, et pourquoi pas d'utiliser des ressources dédiées.

(3) Essayez de verrouiller le signal asynchrone d'entrée avec une horloge.

Le signal dit asynchrone fait référence à deux signaux sous une fréquence d'horloge ou une commande de phase différente. S'il n'y a pas de mécanisme de synchronisation fiable pour de tels signaux lors de l'interfaçage les uns avec les autres, il y a un grand danger caché, et il est même très susceptible de provoquer la collecte de données par erreur. Nous devons donc apprendre quelques mécanismes de synchronisation pour les signaux asynchrones.

(4) Évitez d'utiliser des signaux asynchrones pour réinitialiser ou régler le contrôle.

De toute évidence, les signaux asynchrones augmenteront la possibilité de problèmes.

 

2. Style de code pour améliorer les performances du système

(1) Réduisez le niveau logique du chemin critique

Dans de nombreux cas, la synchronisation n'est pas à la hauteur des exigences car les délais de porte logique interne de plusieurs chemins critiques sont trop longs. Vous pouvez modifier le code pour réduire le niveau de certains chemins, mais cela conduit généralement à une ou plusieurs portes logiques dans d'autres chemins. la vitesse".

(2) réplication logique (réduire l'émission de signaux surchargés) et partage des ressources

Si un signal sortant est relativement important, l'insertion d'un tampon peut le résoudre, mais cela augmentera le délai. Par duplication logique, c'est-à-dire en dupliquant la logique qui génère ce signal pour piloter les circuits suivants, même si la répartition moyenne est réduite sans augmenter le retard, la zone augmentera.

Le partage des ressources est le processus inverse de la réplication logique, qui peut économiser de l'espace, mais au détriment de la vitesse.

(3) Éliminer les problèmes de logique combinatoire

Introduisez une logique séquentielle, c'est-à-dire ajoutez un registre pour verrouiller le résultat de sortie, puis émettez-le sur le bord valide de l'horloge.

 

Trois, réinitialisation asynchrone, libération synchrone

La réinitialisation asynchrone est instable et la réinitialisation synchrone consomme des ressources supplémentaires. L'idée de base de ce double circuit tampon avec réinitialisation asynchrone et libération synchrone est de synchroniser les signaux asynchrones.

Circuit après synthèse:

Quatrièmement, opération de ping-pong et conception de conversion série-parallèle

Les considérations importantes de la conception FPGA sont: la vitesse de conversion de zone, le fonctionnement du ping-pong et la conception de la conversion série-parallèle, la conception du pipeline, la réplication logique et la réutilisation des modules, la conception modulaire, etc.

Opération ping-pong: une technique de traitement pour le contrôle de flux de données.

Dans le premier cycle, les données entrent dans le tampon 1; dans le deuxième cycle, les données entrent dans le tampon 2, et en même temps la commande de sélection des données de sortie envoie les données dans le tampon 1; dans le troisième cycle, les données entrent dans le tampon 1, tampon Les données en 2 sont envoyées. Un tel cycle peut permettre une mise en mémoire tampon et un traitement transparents des données.

Conversion série-parallèle: l'une des techniques importantes pour le traitement de flux de données à grande vitesse.

Une fois que les données d'entrée série ont traversé les n registres à décalage à l'intérieur du FPGA, la sortie parallèle finale est une donnée de bus parallèle de n bits.

 

Cinq, les avantages de la conception synchrone:

  1. Évitez efficacement les conflits causés par une communication de signal asynchrone;
  2. Faciliter les contraintes de timing, l'analyse du timing et la simulation du timing;
  3. Faciliter la localisation des problèmes de timing au niveau du conseil;
  4. Il est propice à la transplantation de code entre les mêmes appareils, réduisant la répétition de la conception;
  5. Minimisez l'impact des mises à niveau d'appareils sur le même projet.

L'expérience actuelle est encore superficielle et de nombreuses expériences ne sont pas très profondes.

 

Six, signal de prise de contact dédié

Le principe de la communication par prise de contact, c'est-à-dire que les deux parties en communication utilisent des signaux de commande dédiés pour l'indication d'état, qui est un procédé de traitement de signal de domaine cross-clock commun.

Lors de l'utilisation du protocole de prise de contact pour traiter la transmission de données à travers les domaines d'horloge, seuls les signaux de prise de contact (req et ack) des deux parties doivent être synchronisés à l'aide de la méthode de détection d'impulsions. Implémentation spécifique: le domaine d'envoi place d'abord les données dans le bus, puis envoie le signal valide de demande au domaine de réception; le domaine de réception reçoit le signal valide de demande et verrouille le bus de données, puis renvoie le signal valide d'acquittement au domaine d'envoi; le domaine d'envoi reçoit le signal valide d'acquittement Ensuite, le signal de demande en cours est annulé, et le domaine de réception détecte que le signal de demande est annulé et le signal d'accusé de réception est annulé A ce moment, une communication de prise de contact normale est terminée.

 

Sept, la définition des variables

Lors de l'écriture de testbench, une erreur courante dans la définition de variable est d'appliquer une variable globale définie à deux blocs always différents (comme EX1C). Comme les deux fonctionnent toujours indépendamment et en parallèle, cela aura des conséquences inattendues. .

La solution est de définir le nom de bloc de always between begin ... end, de sorte que les variables i dans les deux blocs always ne soient pas liées l'une à l'autre.

Huit, les trois idées les plus fondamentales du HDL

Connectivité (connectivité), temps (temps) et parallélisme (concurrence).

 

Neuf, compétences en rédaction Testbench

  1. Encapsulez des sous-programmes utiles;
  2. Banc de test structuré;
  3. Empêcher les opérations de lecture et d'écriture simultanées sur le même registre; (l'utilisation d'instructions non bloquantes peut être résolue)
  4. Empêchez la tâche d'être appelée en même temps. (Vous pouvez introduire un mécanisme de détection d'erreur dans la tâche pour vérifier si la tâche est actuellement appelée)

10. Configurer le temps et tenir le temps

L'heure de l'établissement rencontre:

[officiel] lequel est [officiel]

Gardez le temps de vous rencontrer:

[officiel]

L'horloge satisfait: à  [officiel] partir de là, la fréquence maximale du FPGA peut être calculée, et l'optimisation de la synchronisation du système consiste principalement à [officiel] faire des histoires sur le retard du chemin de transmission  .

 

11. Points clés de la conception logique de l'arbitrage

  1. Réinitialiser l'état
  2. Séquence de commutation: une fois l'état actuel exécuté, il peut entrer directement dans un autre état ou maintenir l'état existant par arbitrage, et il n'est pas nécessaire de revenir à l'état intermédiaire.
  3. Répondez à tour de rôle; empêchez un certain état d'occuper le bus pendant une longue période.
  4. Quittez après l'expiration du délai.

12. FPGA + CPU

  • Avantages potentiels:
  • Plus facile de répondre aux exigences fonctionnelles de la plupart des systèmes;
  • Potentiellement améliorer les performances du système;
  • La flexibilité et l'évolutivité de certaines applications sont considérablement améliorées;
  • L'interface entre le processeur et le périphérique peut être optimisée;
  • Les performances d'interface de l'interconnexion logicielle et matérielle ont été considérablement améliorées;
  • Propice à la réutilisation des conceptions et au prototypage rapide de nouveaux modèles;
  • Simplifiez la disposition PCB de la puce ou même de la carte entière.

 

En fait, je n'ai toujours pas lu ce livre clairement, je devrais donc le lire plusieurs fois.

les références:

"Fun with FPGA" troisième édition, édité par Wu Houhang

Je suppose que tu aimes

Origine blog.csdn.net/a8039974/article/details/107779376
conseillé
Classement