2010-05-23 25 views
1

Je pense implanter une CPU 16 bits en VHDL. Un CPU simple. AJOUTER, MULS, NEG, BitShift, JUMP, Relitive Jump, BREQ, Relitive BREQ, je ne sais pas quelquechose le long de ces lignes> Probablement tous ne fonctionnant qu'avec des opérandes 16 bits. Je pourrais même le couper et utiliser seulement un seul opérande et un accumulateur. Avec un statut regitsters, Carry, Zero, Neg (à moins d'utiliser un Accumlator),Techniques de modularisation VHDL à grande échelle

Je sais comment concevoir toutes les pièces de portes logiques, et un plan pour les construire à partir des premiers priciples, Donc, pour mon ALU Je vais devoir 'construire' un ADDer, probablement un Carry Look, un additionneur de groupe, ce dernier est composé de deux parties, elles-mêmes composées de deux parties.

De toute façon, mon problème n'est pas la conception du CPU, ou le VHDL (je connais la langue, plus ou moins). C'est comme ça que je devrais garder les choses organisées. Comment utiliser les packages, Comment nommer mes processus et mappes de ports? (Je n'ai jamais vu le benifit de nommer les cartes de port, ou les processus)

+1

J'ai trouvé cette http://www.google.com/search?hl=fr&q=vhdl+source+project+structure être une requête fructueuse. Ayant eu une familiarité avec VHDL, deux recommandations de ce résultat de recherche étaient très logicielles: utiliser un éditeur compatible VHDL, et surtout, utiliser le contrôle de révision (git et mercurial sont des favoris pour des projets individuels). Malheureusement, de nombreux programmeurs ne considèrent pas la programmation VHDL, donc je ne m'attendrais pas à grand chose ici à SO. – msw

Répondre

0

En regardant certains existants examples ne ferait pas de mal. Au niveau dont vous parlez (conventions de nommage et autres), je n'ai jamais vraiment fait beaucoup de différence dans la conception de matériel que dans les logiciels. En outre, je conseillerais généralement contre faire des choses comme vos propres ajouts et autres, sauf si c'est quelque chose qui est nécessaire parce que c'est devoirs, ou quelque chose comme ça. Avec les ASICs FPGA et (dans une moindre mesure légèrement), vous avez une "bibliothèque" de matériel dans l'appareil, donc quelque chose comme A <= B + c utilisera typiquement un circuit additionneur qui est déjà intégré dans l'appareil dans le cas d'un FPGA ou une macro hard optimisée à la main dans le cas d'un ASIC.

Écrire le vôtre demande beaucoup de travail supplémentaire, et il produira presque toujours un résultat plus mauvais. Dans le cas d'un ASIC, ce sera un peu pire; Dans le cas d'un FPGA, ce sera généralement un peu pire.

Editer: Je devrais également noter qu'une simple CPU ne se qualifie pas vraiment comme une conception à grande échelle, au moins IMO. Peut-être que c'est en raison de mes antécédents en matière de logiciels, mais j'ai toujours trouvé la conception du processeur assez simple. Juste pour un exemple, la fois où j'ai fait un contrôleur DRAM, il m'a semblé qu'un lot plus de travail pour moi. Je ne me rappelle pas du nombre de lignes de code source, mais en fonction de la mémoire, je dirais que c'était plus grand (probablement par quelque chose comme 2x). Bien sûr, cela dépendra de la simplicité d'un processeur que vous choisirez ...

+0

Par conception à grande échelle, je demande à propos, non parce que c'est un exemple de conception à grande échelle, mais parce que les techniques utilisées dans la conception à grande échelle sont relivent. –

+0

Quant à Créer mes propres additionneurs: Ce n'est pas un travail à domicile, mais c'est ce que j'ai besoin d'étudier. Conception/compréhension Les additionneurs et les multiplicateurs font partie d'une unité que je fais (qui couvre également le VHDL, mais pas tous les deux ensemble). La conception du CPU fait partie d'une unité que je fais (mais a déjà été testée, et ne sera pas testée à nouveau). Cette unité ne couvre pas du tout le VHDL. –

2

Quoi que vous fassiez, lisez bien le travail de Jiri Gaisler sur la méthode de conception VHDL structurée.

http://www.gaisler.com/doc/vhdl2proc.pdf http://www.gaisler.com/doc/structdes.pdf

Vous serez très heureux que vous avez fait.