Conception et fabrication de microcircuits ternaires utilisant la technologie de processus CMOS habituelle



Beaucoup ont affirmé qu'ils construisaient un ordinateur ternaire à partir de composants discrets, mais certains développent et commandent des microcircuits ternaires en ce moment :)



J'ai développé et commandé mon premier microcircuit ternaire (le même cristal était conditionné en 3 tailles différentes - DIP40, DIP28 et SOIC16) en 2015. Aujourd'hui, c'était ma première et dernière expérience de ce genre, mais il y a un désir et une force d'essayer à nouveau - en tenant compte de l'expérience acquise et avec un œil sur l'utilité réelle telle que la logique programmable ternaire et / ou le microcontrôleur ternaire - quelque chose qui immédiatement peut être utilisé.

Et maintenant, comment je l'ai fait et ce qu'il en est advenu. Mon triple épopée a commencé fin 2004, lorsque nedoPC sur mon forum de fans de rétrocomputer et d'électronique maisondes discussions ont commencé sur un système de numérotation ternaire équilibré et sur la possibilité de construire de nouveaux ordinateurs sur cette base. Ensuite, les utilisateurs du forum ont commencé à rechercher des documents sur ce sujet sur le réseau et beaucoup, à leur grande surprise, ont appris que les ordinateurs ternaires ont été développés il y a longtemps et ont même été produits en série - en particulier, l'ordinateur ternaire Setun, qui est produit depuis 1959, a été conçu par Nikolai Petrovich Brusentsov et un groupe de personnes partageant les mêmes idées. dans le centre informatique de l'Université d'État de Moscou et était assez répandu dans tout le pays.

Il est important de comprendre que par le système de nombres ternaires, nous entendons principalement le triple «équilibré» (ternaire équilibré), où trois états -1,0, + 1 sont utilisés (et pas du tout 0,1,2 comme beaucoup pourraient le penser). Et donc, sur le forum, nous avons commencé à essayer diverses options pour construire des éléments ternaires à partir des composants disponibles - nous avons essayé des comparateurs (avec des diodes): des



transistors bipolaires (avec des diodes zener): des



optocoupleurs (avec des transistors):



et enfin des clés analogiques : en



cours de route, j'ai obtenu des hybrides - par exemple, des comparateurs, des diodes et des clés CMOS:



ou des transistors bipolaires, des optocoupleurs et des clés CMOS:



(et en 2011 j'ai même mis en ligne une vidéole triple additionneur complet, construit sur de tels hybrides, fonctionne :)

Mais en termes de simplicité (2 microcircuits, 4 condensateurs, un peigne de contacts) et de vitesse (jusqu'à 2,5 MHz), le circuit DG403 a dépassé toutes les autres options - en novembre 2010, j'ai créé TRIMUX - un double ternaire sélecteur (multiplexeur / démultiplexeur):



Par la suitehaqreua fait sa version de ce mouchoir sur des composants de montage en surface et a commencé à construire l'ordinateur ternaire TRIADOR sur eux (dont l'architecture est également née dans les discussions sur le forum nedoPC ) - voir ici pour plus de détails .

Donc - en 2015, j'avais la ferme conviction que la base des circuits ternaires devait être le sélecteur ternaire sur lequel TOUT construire. Mais pour obtenir quelque chose de moins utile, vous avez besoin de centaines de sélecteurs ternaires. Je ne voulais pas souder des centaines de trimus, mais je voulais faire mon propre microcircuit ternaire - mais comment? Le FPGA n'est pas une méthode - tout est binaire à l'intérieur (présenter un signal ternaire avec une paire de binaires est ennuyeux et sans intérêt). Si vous fabriquez une vraie puce, alors seule la technologie de processus CMOS habituelle est disponible sur laquelle presque tout a été fait au cours des dernières décennies (seules les tailles des transistors changent - elles deviennent de plus en plus petites): l'



achat d'un produit de développement de puces commercial était irréaliste (très cher), donc je Pack Open Source Magic VLSI trouvé(il existe des assemblages pour Linux et Windows), dans lesquels il y a des fichiers de règles, par exemple, selon la technologie de processus CMOS 0.5um, sur lesquels à cette époque la société américaine MOSIS , travaillant à l'Université de Californie du Sud, prenait des commandes , et je me suis concentré sur eux, créant une entreprise officielle aux USA parce que MOSIS ne travaille pas avec des particuliers (en fait, j'ai quand même essayé de me rendre dans une entreprise européenne, qui collecte également différents modèles sur une même tranche de silicium, mais au final ils ont refusé de travailler avec moi).

Pour les expériences, j'ai d'abord pris le simulateur gratuit LTspiceIV (c'est un programme Windows qui fonctionne très bien sous Linux sous Wine). Et j'ai commencé à y construire les circuits CMOS (binaires) habituels et à les tester sur des modèles SPICE de vrais transistors PMOS et NMOS (ces modèles marchent sur Internet et peuvent souvent être trouvés dans des manuels en ligne sur les cours VLSI des universités américaines):





j'ai remarqué que dans en fonction de la façon dont les entrées de la porte logique sont connectées, le seuil de son fonctionnement est décalé:



Il s'avère que si vous prenez des blocs NAND à 3 entrées (pour lesquels le seuil de réponse pourrait se déplacer vers la droite) et des blocs NOR à 3 entrées (pour lesquels le seuil de réponse pourrait se déplacer vers la gauche) et connectez leurs entrées au sol ou à l'alimentation d'une certaine manière, vous pouvez obtenir les seuils de fonctionnement espacés de sorte que pour détecter une tension intermédiaire à l'entrée - après avoir reçu un signal logique régulier, nous pouvons l'envoyer (et son inversion) à une clé CMOS qui peut activer ou désactiver le signal analogique qui le traverse (et cette clé fonctionne dans les deux sens):



En conséquence, J'ai un tel circuit, qui a plusieurs seuils de déclenchement:



Ce circuit possède une entrée de commande S qui, lorsqu'elle est connectée à la masse, une tension ou une puissance intermédiaire, connecte le signal commun C aux contacts N (négatif), O (intermédiaire) ou P (positif), respectivement - dans ce cas, nous considérons la tension intermédiaire comme un signal zéro , respectivement, la masse du microcircuit est de -2,5V et la puissance est de + 2,5V. Au cours de la zone de travail, il y a 2 trous qui rendent impossible un court-circuit aléatoire si les touches voisines s'allument soudainement en même temps que le déclenchement des zones actives (après tout, les entrées du sélecteur ternaire peuvent être connectées à la terre ou directement à l'alimentation) car ces limites sont faites par des «trous»:



Utilisation de merveilleux tutoriels vidéo Magic ( ici et ici) J'ai commencé à dessiner des transistors - pour que le seuil de déclenchement soit exactement au milieu, la taille du transistor supérieur (PMOS) devrait être environ 2 fois la taille du transistor inférieur (NMOS):



Magic vous permet d'enregistrer le tracé dans la bibliothèque et vous permet ensuite de créer des circuits plus complexes à partir des composants de bibliothèque enregistrés, connecter les blocs avec des couches de métallisation (dont il y en avait 3 dans ce processus):



Les règles du processus vous permettent d'extraire tout le modèle SPICE de tout le circuit, puis ce modèle peut être simulé dans ngspice (simulateur SPICE open source, présent par exemple parmi les packages Debian Linux standard).

Dans le processus de travail sur ma bibliothèque, j'ai réussi à trouver un groupe de personnes intéressées, composé de citoyens de différents pays, qui ont accepté de payer la moitié de la production (le lot minimum est de 40 cristaux) en échange d'aide avec certains schémas ternaires et quaternaires - en conséquence, la moitié supérieure du cristal était occupée par certains Je n'ai probablement pas le droit de parler des choses, et celui du bas avait un module pour le test sélectif de 16 circuits de base (à gauche) et le sélecteur ternaire lui-même (à droite):



Au total, cette conception avait environ 1500 transistors situés sur une puce de 2,2 x 2,2 mm avec 40 pads (10 de chaque côté) de 100 x 100 µm, et tous les transistors, pads et signaux ont été peints manuellement par moi à partir de zéro et moi, bien sûr, Je n'ai pas manqué l'occasion d'écrire mon surnom sur le cristal sous le même sélecteur ternaire indiquant l'année :)



C'est toujours agréable de voir son propre nom sous la "petite portée", en se présentant comme un gaucher, en ferrant une puce;)



Ayant remis le design à la production en juin 2015, j'ai obtenu du silicium prêt à l'emploi cristaux et 8 puces emballés dans DIP40 seulement en octobre:



Après m'être assuré que le microcircuit fonctionne dans son ensemble, j'ai ajouté les cristaux de silicium restants (en les renvoyant) au DIP28 (pour en donner une partie aux enfants) et les cas SOIC16 où seuls les signaux du sélecteur ternaire dépassent (il en a coûté plusieurs milliers de plus):



pour des tests détaillés, je J'ai commandé une écharpe pour ces soics, soudant l'un des microcircuits là-bas:



et j'ai apporté les oscillogrammes avec un préfixe d'oscilloscope numérique à l'ordinateur - le sélecteur connecté en mode tampon ternaire:



et en mode onduleur ternaire:



Ici, la puissance était de -5 V ... + 5 V (un peu plus que la tension normale 5V entre la masse et l'alimentation recommandée pour CMOS 0.5um) et on peut voir que les seuils de l'argot se sont éloignés, mais dans l'ensemble la tension moyenne est complètement déterminée. Le seul problème avec ces puces estils ne fonctionnent qu'à des fréquences allant jusqu'à 10 kHz :(

Mon hypothèse sur les mauvaises caractéristiques dynamiques de ces microcircuits est que j'ai essayé de répondre indépendamment aux exigences spéciales du fabricant - ils ont exigé que tous les endroits libres sur la puce soient remplis de blocs avec des couches métalliques, etc. puisque leur absence peut être endommagée lorsqu'elle est gravée par des motifs voisins situés sur la même plaque, j'ai donc dû inventer mon propre remplissage de bloc:



qui remplissait tous les points libres sur le cristal:



Et il semble que j'ai oublié de le connecter au sol, des tas de capacités parasites, mangeant toutes les hautes fréquences, traînaient sur le cristal. La prochaine fois, j'essaierai d'éviter cette erreur, ou peut-être utiliserai-je un produit commercial et utiliserai ses bibliothèques, car mon sélecteur peut être composé de composants binaires STANDARD tout en travaillant avec des signaux ternaires. Il peut être possible de retrouver un groupe de personnes intéressées qui accepteraient de partager le coût du prochain lot (par exemple, une puce du dernier lot coûtera environ trois cents dollars au prix coûtant). J'attends avec impatience les opinions et commentaires de Khabrovites respectés :)

All Articles