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
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
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
Merci Google
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