Vidéo RAM: lecture et l'écriture?

J

J90

Guest
Salut à tous,

Je suis la conception d'un générateur de signaux VGA.Je suis actuellement coincé dans la conception de l'interface de RAM.La RAM devrait contenir les données qui doivent être mis sur l'écran par le générateur de signaux.

Le générateur de signaux exige (devrait-il?) Un accès continu à la RAM, car l'écran est en permanence actualisé.En conséquence, le bus d'adresse de ce bélier est constamment entraîné par le générateur de signaux.
Donc, si mon composant en permanence accès à la RAM, en gardant le bus d'adresse occupée, comment est-on censé écrire des données dans la RAM?Une recherche sur Internet essayer de trouver quelques exemples j'ai ceci:

Code:

entité est vga80x40

port (

......

TEXT_A: std_logic_vector à (11 downto 0); - tampon de texte

TEXT_D: en std_logic_vector (07 downto 0);

......

);

vga80x40 fin;
 
Votre système fonctionne de cette façon?
Un générateur de signaux écrit en permanence des données dans le RAM.And au même temps des données sont lues à partir de la RAM pour l'afficher sur le VGA.Is ce que vous voulez?
Si c'est votre exigence Ensuite, il suffit d'utiliser un double port RAM.You peut écrire et lire la mémoire à une adresse différente et en même temps en utilisant un port double RAM.If vous utilisez FPGA Xilinx puis générateur de base ont des cœurs d'IP disponibles pour RAM .

- Vipin
http://vhdlguru.blogspot.com/

 
Oui vipinlal, c'est tout!

Mais si un jour je vais avoir besoin de plus d'espace et de décider de passer à un RAM DDR externe?Est-il possible d'obtenir le même comportement d'un tel RAM?Ou devrais-je chercher quelque spécifiques RAM d'autres?

Je vous remercie

<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Sourire" border="0" />
 
vous auriez alors besoin de faire tourner la RAM à une fréquence d'horloge approprié.vous devriez être en mesure de tampon petits blocs de données sur le FPGA, puis effectuer les accès mémoire à la DDR.

Vous auriez besoin pour planifier l'accès à la mémoire de sorte que la lecture combinée / écriture de la bande passante a été possible.la SRAM serait de dimensions telles que suffisamment de données pourrait être tamponné à prendre en compte les cas d'exécution pire moment, et devraient probablement être au moins 1k grands éléments.C'est parce que DDR prend une pénalité de performance énorme lorsque l'écriture et la lecture des lignes différentes dans la même banque.

 
Puisque vous avez à écrire 80 * 40 pixels pour un écran ne marche pas dire que vous avez besoin pour stocker tous en mémoire à un seul time.What vous pouvez faire est de stocker les 2 rangées de magasins pixels.This ne vous prendra que 2 * 40 octets de la mémoire.
Maintenant, écrivez les pixels (de la première rangée) dans la première rangée au départ, puis écrire la 2ème ligne de pixels dans le premier row.Once deuxième ligne est entièrement écrite, vous pouvez commencer la lecture de l'it.By fois que vous démarrez la lecture de la 2e rangée, la 3ème ligne du générateur de signal peut être écrit en première ligne.

Ainsi, la première ligne va à la première rangée dans la mémoire.
2e rangée va à la 2e rangée dans la mémoire.
3ème ligne va à la 1ère rangée dans la mémoire.
4ème à la 2ème passe.
et 5 va au 1er et ainsi de suite ...

lire la mémoire à l'aide d'un démultiplexeur.
1er rang est lu pour la première rangée time.Then 2e read.Then 1er rang est lu again.Then nouveau 2e rangée.

Cela réduira la quantité de mémoire dont vous avez besoin et vous n'aurez pas besoin memory.I DDR supplémentaire j'espère na pas vous induire en erreur beaucoup.

- Vipin
http://vhdlguru.blogspot.com/

 
Merci à vous deux pour vos conseils, ils sont précieux

<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Sourire" border="0" />permute, l'idée tampon interne sonne bien.

vipinlal je ne pense pas que je l'ai eu à 100% droite.Pour ce que j'ai compris que tu dis d'utiliser une technique de mise en mémoire tampon double pour accomplir la lecture et l'écriture simultanées.Pour ce faire j'aurais besoin pour obtenir 2 puces de mémoire vive DDR autonome, ne ferais-je?

 

Welcome to EDABoard.com

Sponsor

Back
Top