BESOIN DE GENIE EN FPGA-VHDL

AnonymeXIIII
2021-12-20 17:28:51

Qui s'y connait en VHDL ici ? -(
Je n'arrive pas à insérer des constantes facilement modifiables dans mon VGA :-(

library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
use work.MY.all;

ENTITY VGA_controleur IS
PORT(
CLK_25M : IN STD_LOGIC; -- Horloge principale
RESET : IN STD_LOGIC;
BUTTON_LEFT : IN STD_LOGIC;
BUTTON_RIGHT : IN STD_LOGIC;
HS_SIGNAL, VS_SIGNAL : OUT STD_LOGIC;-- Signaux de synchronisation
VGA_R,VGA_G,VGA_B : OUT STD_LOGIC_VECTOR(3 DOWNTO 0)
);

END VGA_controleur;

ARCHITECTURE MAIN OF VGA_controleur IS


SIGNAL SQ_X1,SQ_Y1: INTEGER:=500;
SIGNAL DRAW1:STD_LOGIC:='1';
SIGNAL RGB: STD_LOGIC_VECTOR(3 downto 0);
SIGNAL CNT_H, CNT_V: INTEGER := 0;
------------
CONSTANT H_VISIBLE:INTEGER:=635;
CONSTANT H_FP:INTEGER:=15;
CONSTANT H_SYNC:INTEGER:=95;
CONSTANT H_BP :INTEGER:=48;
------------
CONSTANT V_VISIBLE:INTEGER:=480;
CONSTANT V_FP:INTEGER:=10;
CONSTANT V_SYNC:INTEGER:=2;
CONSTANT V_BP:INTEGER:=33;

BEGIN
SQ(CNT_H,CNT_V,SQ_X1,SQ_Y1,RGB,DRAW1);
PROCESS(CLK_25M,RESET)
BEGIN
IF(RESET='1') THEN
CNT_H <= 0;
CNT_V <= 0;

VGA_R <= (OTHERS => '0');
VGA_G <= (OTHERS => '0');
VGA_B <= (OTHERS => '0');


ELSIF(rising_edge(CLK_25M)) THEN
-- Creation du compteur cnt_h
IF(CNT_H=792) THEN
CNT_H <= 0;
ELSE
CNT_H <= CNT_H+1;
END IF;
-- Creation du compteur cnt_v
IF(CNT_H=792) THEN
IF(CNT_V=(V_VISIBLE+V_FP+V_SYNC-1)) THEN
CNT_V <= 0;
ELSE
CNT_V <= CNT_V+1;
END IF;

--Gestion du signal horizontal
IF((CNT_H>=(H_VISIBLE+H_FP)) AND (CNT_H <(H_VISIBLE+H_FP+H_SYNC))) THEN
HS_SIGNAL <= '0';
ELSE
HS_SIGNAL <= '1';
END IF;

--- Gestion du signal vertical
IF ((CNT_V>=(V_VISIBLE+V_FP)) AND (CNT_V <(V_VISIBLE+V_FP+V_SYNC))) THEN
VS_SIGNAL<= '0';
ELSE
VS_SIGNAL<= '1';
END IF;


-- Gestion des couleurs R/G/B


IF(CNT_H<211) THEN
VGA_R<= "1111";
VGA_G<= "0000";
VGA_B<= "0000";

END IF;

IF ((211<CNT_H) AND (CNT_H<422)) THEN
VGA_R<="0000";
VGA_G<="1111";

END IF;

IF((422<CNT_H)AND (CNT_H<635)) THEN
VGA_G<="0000";
VGA_B<="1111";

END IF;


-- Gestion du carré à modéliser
IF(DRAW1='1')THEN
VGA_R<=RGB;
VGA_G<=RGB;
VGA_B<=RGB;
END IF;

IF(BUTTON_RIGHT='1')THEN
SQ_X1<=SQ_X1+5;
END IF;
IF(BUTTON_LEFT='1')THEN
SQ_X1<=SQ_X1-5;
END IF;
END IF;




END IF;
END PROCESS;

END MAIN;

MeoaRst
2021-12-20 17:30:08

Attends je lis

AnonymeXIIII
2021-12-20 17:31:45

Voilà la consigne de l'étape 1 -> peut être que ça sera plus facile à comprendre :-(

https://image.noelshack.com/fichiers/2021/51/1/1640017903-etape-1.jpg

AnonymeXIIII
2021-12-20 17:35:28

+
https://image.noelshack.com/fichiers/2021/51/1/1640017977-001.jpg

Voilà ce que j'ai conclu avec mon prof quand il a quasiment fait tout en m'expliquant j'ai fait mon VGA :(
Il me manquait plus que les constantes et déplacer ma bande :(

Le 20 décembre 2021 à 17:30:08 :
Attends je lis

Merci khey :(

MeoaRst
2021-12-20 17:37:00

En fait j'ai un peu la flemme :hap:
Mais je connais justes les bases du VHDL, donc je sais pas quel niveau de compétence t'as besoin pour t'aider

AnonymeXIIII
2021-12-20 17:43:38

Le 20 décembre 2021 à 17:37:00 :
En fait j'ai un peu la flemme :hap:
Mais je connais justes les bases du VHDL, donc je sais pas quel niveau de compétence t'as besoin pour t'aider

C'est pas grave :(
Je ne connais que les bases aussi, faire une serrure + un diviseur de fréquence :(
Pour déclarer une constante du peu que t'as vu on est d'accord qu'il y a pas de soucis ? :(
Quand je lance la simulation sur Quartus, il y a absolument rien qui sort depuis que j'ai mis ces constantes :(

CACHETFOU
2022-01-06 01:07:00

C'est bon j'ai réussi à le réafficher :fete:

Merci Google :content:

CACHETFOU
2022-01-06 01:09:05

Bordel je pensais pas que ce serait si dur de ne serait-ce qu'afficher des couleurs :(
Dire que je trouvais les jeux téléphones du type Snake hypersimple et sûrement fastoche à réaliser avant :(

Infos
Gestion du forum

contact@geevey.com

API disponible. Utilisez le paramètre "api" en GET, peu importe le contenu, sur une page du site.

Notes

    Partenaire: JVFlux
    Ce site n'est pas associé à Jeuxvideo.com ou Webedia. Nous utilisons seulement des archives publiques.
    Il est inutile de me spammer par e-mail pour supprimer un topic. Au contraire, en conséquence, je mettrais votre topic dans le bloc ci-dessous.
Non-assumage
    Personne n'a pas assumé de topic pour le moment.