Un haut débit très fiable conception programmable FIFO asynchrone

Dans la conception moderne ASIC à grande échelle, implique souvent le contrôle du système multi-horloge, cela conduira à des problèmes de différents domaines d'horloge pour la transmission de données. Une meilleure solution consiste à utiliser un asynchrone FIFO (First In First Out) un tampon pour obtenir différents domaines d'horloge de transfert de données . En effet, seulement asynchrone des données de pointeur d'écriture FIFO dans l'ordre croissant, et les données sont lues dans le même ordre, pas de lignes d'adresse de lecture externe, très simple à utiliser, à la fois pour rendre le moment de la transmission de données sont différents domaines d'horloge les exigences se relâchent, mais aussi pour améliorer l'efficacité entre celles-ci de transmission. Ainsi, un réseau de communication asynchrone FIFO et traitement de l'information numérique et d'autres domaines ont une large application . L'étude de haute performance asynchrone FIFO deviendra l'un des domaines prioritaires de la conception VLSI, et fait beaucoup de résultats de recherche .

Par exemple, le document , méthode de comparaison de synchronisation de pointeur prise peut être réduite métastable se produire, ce qui garantit que la comparaison est en effet deux pointeurs sont synchronisées, mais lors de la conception d'une grande capacité de lire FIFO, écrire beaucoup de pointeur bits, le module de synchronisation utilise beaucoup de registres, il augmenterait considérablement les coûts de conception et de l'efficacité réduite. Et la conception de l'article mentionné lors, ajoute un bit d'adresse pour identifier la position relative des pointeurs de lecture et d'écriture ne prennent pas tant des ressources logiques, mais réduit également le système de contrôle FIFO de portabilité. Document a mentionné un code Gray est déterminé en divisant les deux premières sections de stockage, la méthode détermine en outre plein vide, mais parce que la manière de la division de cette détermination est obtenue par une section sous la forme de matériel, mauvais. Cette conception de la puce afin de satisfaire les besoins d'une conception FPGA interne, le principe d'assurer une grande fiabilité est encore améliorée programmabilité FIFO asynchrone, prévue en fonction des code Gray, peut être programmé pour FIFO asynchrone, et la méthode de fixation de la comparaison de pointeur asynchrone propose un nouveau critère complet vide, et d'améliorer la vitesse de fonctionnement et de l'efficacité du circuit, la conception finale d'une grande fiabilité, à grande vitesse et haute performance configuration de circuit FIFO asynchrone programmable .

Un système FIFO asynchrone structure proposée

idée de conception FIFO asynchrone est proposé que, dans le module FIFO traditionnel sur la structure du circuit et en améliorant et en optimisant la détermination de l'Etat est basée, pour la fiabilité, programmabilité et percée de vitesse. La principale lecture FIFO traditionnelle, écriture et fonction de jugement plein vide, il ne nécessite pas de lignes d'adresse de lecture externes, il est donc très simple, de manière à pouvoir écrire des données lues de manière séquentielle de façon séquentielle, n'est pas aussi commun que la mémoire les lignes d'adresses peuvent être déterminées par la lecture ou l'écriture d'une adresse spécifiée. Cette conception augmente la fonction complète d'avertissement est vide presque, l'utilisateur peut programmer la valeur du seuil d'alerte FIFO, et augmente l'indication vide presque pleine et proche de bit rapide état FIFO, les augmentations de programmabilité FIFO. FIFO schéma de configuration de système du module représenté sur la figure 1.

FIFO ensemble peut être divisé en quatre modules: un module de stockage, un module de génération de pointeur, un module de comparaison et un module de génération de drapeau de pointeur. r_clk une horloge de lecture; w_clk horloge d'écriture, le data_in des données d'écriture, les données lues en tant que DATA_OUT; ale_num presque vide de seuil d'alerte; alf_num seuil d'alerte presque plein; r_ptr le pointeur de lecture; pointeur w_ptr d'écriture; al_empty presque vide signes, al_full drapeau presque plein, drapeau vide vide, plein comme un drapeau complet, pointeur alr_ptr presque nul, alw_ptr pointeurs presque plein.

SRAM double port avec deux ports de lecture et d'écriture complètement indépendants, un orifice peut être sélectionné pour écrire le data_in, DATA_OUT un autre port de lecture, de sorte que les opérations de lecture et d'écriture indépendantes les unes des autres, plus approprié pour être utilisé pour réaliser la fonctionnalité FIFO. Comme on peut le voir sur la figure 1, peut être divisé en un domaine d'horloge lu FIFO et le domaine d'horloge d'écriture complètement indépendant de chaque deux domaines d'horloge. Le module génère le w_clk pointeur d'écriture de w_ptr et superposé sur les produits w_ptr de alf_num alw_ptr, w_ptr d'une part pour contrôler le module de stockage data_in écrit les données écrites sont lues par le r_ptr de commande, et d'autre part w_ptr alw_ptr lecture dans le module de comparaison de pointeur et la génération pointeur r_ptr alr_ptr comparer le résultat de la comparaison dans le module de génération de drapeau de détermination, générant vide, plein, presque vide et presque plein drapeau, si la lecture FIFO vide, arrêt e_ptr, si rempli, arrêt w_ptr.

Facile à voir avec la conception du système ci-dessus, la précision des données pendant le pointeur inter-fiabilité du système complet comparables entre elles et le système de contrôle des processus de détermination d'espace pour améliorer les performances du système. Ainsi, dans les sections II et III, respectivement détail la conception du système et pointeur jugement de comparaison complète vide.

Comparaison du pointeur système 2 de conception

Lorsque les données de transmission, les données reçues registre de réception des changements, si le changement se produit dans le bord d'horloge de données déclenchée, cela conduira à l'instabilité de l'état de réception de données, cet état est appelé métastable. Lorsque vous entrez dans un état métastable ne peut ni prédire le niveau de sortie de l'unité ne peut pas prédire quand la sortie peut être stabilisée à un niveau approprié. Dans cette période stable, la sortie sera un certain niveau d'étage intermédiaire, ou peut être dans un état d'oscillation, et un tel niveau de sortie inutile peut se propager le long du trajet de signal en cascade vers le bas. erreurs FIFO métastable se rendrait, lire, écrire l'horloge d'échantillonnage du pointeur d'adresse est entre la valeur réelle et différente, ce qui a conduit à écrire ou lire la mauvaise adresse. état métastable ne peut pas être complètement éliminé, pour trouver des moyens de réduire la probabilité de son occurrence. Le procédé de circuit FIFO classique pour résoudre le problème de métastabilité est d'utiliser un pointeur pour prendre module de synchronisation, par comparaison entre le pointeur de synchronisation n'existe pas le problème de métastabilité. Pointeur modules de synchronisation utilisent généralement la configuration représentée sur la Fig. CLK1 et asynchrone On suppose d'horloge CLK2, lorsque le déclencheur change de data1 B2 au bord, il peut se produire DATA2 un état métastable, cependant, à cette capture du temps et B3 est transmis ne se produit pas lorsqu'un métastable données, la prochaine arrivée de front d'horloge CLK2 de déclenchement, data2 est susceptible de se stabiliser, il devient une certaine valeur de 0 ou 1, de sorte que B3 est de capter une certaine valeur. Bien sûr, il données2 peut ne pas être stable dans un cycle d'horloge, mais la probabilité de data3 métastable semblent être considérablement réduit.

Comparer la synchronisation en utilisant la méthode de pointeur, même si une grande fiabilité, mais lorsque les données est grand pointeur de profondeur FIFO ont généralement beaucoup de bits, ce qui nécessite la synchronisation, ce qui a grandement augmenté le nombre d'utilisation du registre de chaque bit porté, augmenté coûts design.

Compte tenu de cette situation, pensez à utiliser des pointeurs de code gris. code Gray que par une conversion (symbole de code binaire est beaucoup de changements en même temps, dans de nombreux cas) entre deux symboles adjacents. Cela évitera le pointeur se produisent lorsque phénomène métastable. Avant de transmettre les écrire et les adresses de lecture, afin d'améliorer la fiabilité des données, le comptage de code Gray binaire alternatif. Donc, vous ne pouvez pas utiliser la méthode module de synchronisation de pointeur adopte des pointeurs de comparaison asynchrone, deux pointeurs asynchrones seront comparés directement, et le drapeau de comparaison résultant pour synchroniser au domaine d'horloge souhaité. Le principe de conception module de génération de pointeur montre la figure 3.

Module binaire de génération de pointeur est le principe de base d'un compteur binaire up, chaque front montant d'une horloge à venir, il sera ajouté sur la base d'une valeur avant la sortie, ce qui peut produire un pointeur binaire d'accumulation progressive, le pointeur entre demi-additionneur binaire près de seuil d'avertissement vide et plein sont additionnées pour produire un comparateur presque plein vide pour pointer binaire, enfin, les deux pointeurs seront convertis à la sortie de pointeur de module de génération de code Gray en code Gray. code Gray est utilisé dans la conception afin de réduire la probabilité d'occurrence de métastable, la logique d'économie des coûts, de réduire les coûts de conception, les types de pointeur élargi pour inclure presque vide et plein seuil d'avertissement près de pointeur complet null, afin d'améliorer la programmabilité du FIFO .

3 conception vide jugement complet

Puisque les besoins fonctionnels FIFO lors de la lecture pendant l'écriture, donc en fait pas égale à la capacité réelle de la FIFO avec la capacité du réseau de mémoire SRAM, mais dépend de la vitesse relative des pointeurs de lecture et d'écriture. L'état initial des modules FIFO doit être utilisé pointeur correctement écriture avant que le pointeur de lecture, ce qui peut faire en sorte que le contenu est lu à travers les données d'écriture période après lecture, si le pointeur de lecture depuis la prise sur le pointeur d'écriture de lecture provoquant le même pointeur d'écriture, ce qui indique l'espace de stockage dans lequel les données sont lues, puis procéder lira les données erronées, si le pointeur d'écriture est pris le pointeur de lecture, la mémoire est pleine, il procédera non lu les données sont réécrites. Dans les deux cas, il faut éviter, alors comment déterminer l'état vide plein, quant à l'exactitude et la fiabilité du FIFO.

L'approche traditionnelle consiste à augmenter un bit d'adresse pour indiquer la position relative des pointeurs de lecture et d'écriture, puisque cette méthode ajoute un bit d'adresse, le nombre de bits d'adresse de l'adresse SRAM bits de nombre différent de FIFO, le contrôleur FIFO réduit la portabilité , mais aussi l'augmentation de ce bit de la logique de bit d'adresse ajoute en fait une surcharge inutile. La prise en compte mentionné dans la conception FIFO ajoute un drapeau d'avertissement complet presque vide, il peut être généré par presque vide drapeau plein d'avertissement de drapeau. La détermination du statut principe indiqué sur la figure.

Principe complet drapeau d'avertissement est presque vide généré, la lecture et le pointeur d'écriture plus un nombre binaire comme seuil d'alerte, donc il y a quatre pointeurs différents, respectivement, lecture, pointeur d'écriture et pointeur de lecture sur presque vide, l'utilisation les quatre pointeur par rapport à l'autre sera en mesure d'obtenir les résultats souhaités. Dans le FIFO cours, si le pointeur d'écriture quasi-plein-vide est égal au pointeur de lecture, ce qui indique la vitesse du pointeur de lecture plus rapide que le pointeur d'écriture, le signal presque vide indique que le FIFO avertissement presque plein vide, alors seulement besoin de faire attention à la lecture FIFO est vide, réinscriptible l'analyse du pointeur peut être égale à la lecture FIFO vide, presque plein vide si le pointeur d'écriture est égal au pointeur de lecture et le pointeur d'écriture de la décrit vitesse rapide, devrait être une indication presque plein, il le pointeur d'écriture est seul risque FIFO rempli, à savoir, une fois est égale à la FIFO est pleine analyse . Ce procédé de détermination au moyen d'un avertissement de drapeau plein vide, pas de bits de pointeur supplémentaires, l'utilisation de la logique et le contrôleur FIFO de portabilité améliorée, et donc ne doit pas être bit de direction opérationnelle, afin d'améliorer la vitesse de fonctionnement.

4 simulation

La conception est basée UMC 28 nm processus CMOS, méthode de conception complète du circuit de mesure. Utilisez le logiciel Hspice pour la simulation de circuit. Les résultats de simulation montrent que la FIFO asynchrone proposé à une tension standard de 1 V, la fréquence de fonctionnement maximale de 666,6 MHz, la consommation de puissance de 7,1 mW. résultats de la simulation détaillée représentée sur la Fig.

Lorsque presque vide, le drapeau vide est validé, à des cycles d'horloge de lecture utilisé est de 1,5 ns (666,6 MHz), la période d'horloge d'écriture est de 2,5 ns (400 MHz), le seuil d'alerte presque vide est réglé sur 17, une utilisation totale de l'adresse binaire de 9 bits changements conformément aux lois du code Gray. Les résultats de la simulation à. La figure 5 (A) montre la Fig. La figure r_ptr le signal de pointeur de lecture, des signaux w_ptr de pointeur d'écriture, sont sous la forme de trois représentation hexadécimale; vide vide un signal de lecture (de haut actif); al_empty signal quasi vide (actif bas). Comme on peut le voir, de lire un signal vide lorsque les pointeurs de lecture et d'écriture efficaces sont égaux, et le signal presque vide 17 lecture avertissement préalable du cycle de la lecture FIFO vide.

Lorsque presque plein, drapeau complet est validé, le cycle d'horloge de lecture utilisé est de 2,5 ns (400 MHz), la période d'horloge d'écriture est de 1,5 ns (666,6 MHz), près de seuil d'avertissement vide est fixé à 15, un total d'utilisations de 9 bits adresse binaire changements conformément aux lois du code Gray. Les résultats de la simulation à la Fig. 5 (b) montre la Fig. FIG signaux de pointeur d'écriture w_ptr, le signal r_ptr pour le pointeur de lecture, sont sous la forme de trois représentation hexadécimale, le signal complet est remplie (actif haut), le signal presque plein (actif bas) est al_full. Comme on peut le voir, lorsqu'un signal est affirmé pointeurs de lecture et d'écriture remplis sont égaux, et le signal quasi-complet 15 cycles d'écriture avertissement préalable au sujet de la lecture FIFO vide.

5. Conclusion

Sur la base de la structure FIFO classique, en déterminant l'état de la structure du circuit et l'amélioration et l'optimisation est basée, nous vous proposons une haute performance asynchrone configuration de circuit FIFO. la conception de circuits, la simulation et la vérification UMC 28 nm basée sur le processus CMOS standard. Les résultats de simulation montrent que la structure FIFO asynchrone proposée a l'avantage d'une grande fiabilité, grande vitesse, etc., et programmable pour répondre aux besoins du système développé par puce FPGA interne.

références

Le domaine d'horloge asynchrone super froid Jianwei synchronisation des signaux Tianjin University of Technology, 2017,33 (3): 40-44.

Jie, transmission scène de course d'onde de données à haute vitesse et un système de réception sur la base du double tampon SDRAM DDR2 de ping-pong L'électronique, 2015,38 (3): 650-654.

Zhuanghong Yi An FPGA avec FX2 conjointement avec le protocole de communication mis en oeuvre repose sur USB2.0 Electronic Technology mesure, 2017,40 (4): 78-81.

Feng Guofu, MA Yu Qi, Chen, et al. Navire A pour la mise en réseau "Compass" asynchrone FIFO modèle multi-canal Microelectronics and Computer Science, 2017,34 (2): 1-5.

Wu Xiuying, les gens Henry Ooi. Virgule flottante DSP asynchrone FIFO de recherche et de design Électronique mondiale, 2018,1 (69): 145-146.

Ni Lu, Zou tampon d'entrée FIFO asynchrone Xueyu .LZW conçu Electronic Technology mesure, 2015,38 (4): 19-23.

Arashiyama Division, Wu Haihong, Yong, et. Une grande capacité asynchrone FIFO Conception et mise en uvre . Microelectronics, 2013,43 (3): 405-408.

Lee Choi, la conception et la mise en uvre de Jiang Lin .OTN dans FIFO asynchrone . Communications optiques, 2015,191 (5): 55-58.

bis Qi Wang, Huang Zhenchun, Puhai Feng. FPGA asynchrones conception FIFO et fondées sur les performances . MISSILES ET ORIENTATION, 2014,34 (6): 185-189.

Xiao Jing, Daiya Wen. FPGA à base de mémoire tampon FIFO asynchrone Electronic Technology mesure, 2009,32 (11): 92-94.

Informations sur l'auteur:

Niu Bo, Zhao Hongliang

(École de physique, Université de Liaoning, Shenyang 110036)

"Tante Zhang violeur" le premier jour en hausse de 43%, Ali, Jingdong, Amazon, la plus grande contribution
Précédent
amplificateur de progression de recherche intégrée sur puce THz
Prochain
Lopez sans voix, fermé sur Broadway, il y a 42 ans, le même jour! New York, black-out cauchemar Zaixi
Les arbres à la lutte antiparasitaire comme garnitures, trouver, forage, la médecine, l'étape d'étanchéité Moins
« Événements à venir » localisation basée sur le développement SoC Chemin de RISC-V
« Good thèse de conception » Une section transversale radar ultra large bande faible de la recherche et la conception d'antenne
« AET Original » du « noyau » à la technologie « nuage » basé sur la nouvelle re-démarrage du mérite stratégique
Après grave cubicule allergique 95 cela ne peut pas venir aider le travail lui?
« Bonne thèse de conception » anti-brouillage antenne GPS conception RF frontal
US F-22 combattants pour revenir à compléter les exercices militaires américano-australiens dans la base de l'Alaska
CAN FD « original AET » ne sera plus mis à jour à la peine, la puce TI pour obtenir un
produit lire Yen fort: les équipes de Super League ont atteint les demi-finales de l'Asie orientale, l'avenir peut être prévu
Millet étaient ensemble et la conception comité approvisionnement gestion de la chaîne a saisi l'offre et le département de design industriel Groupe 6 « équipe de Goose » a été formé
« Bonne thèse de conception » racine à base de confiance et de confiance informatique de conception une architecture plate-forme PUF