CACHETFOU
2022-01-05 20:35:25
Je ne comprends pas. Regardez ma simulation :
https://image.noelshack.com/fichiers/2022/01/3/1641411297-erreur.jpg
Pourquoi mon programme ne fonctionne pas ? Pourquoi l'écran ne fonctionne pas alors que ma simulation indique que j'ai raison ?
CACHETFOU
2022-01-05 20:36:07
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.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; -- Reset. Permet de réintialiser le contrôleur VGA
HS_SIGNAL, VS_SIGNAL : OUT STD_LOGIC;-- Signaux de synchronisation
VGA_R,VGA_G,VGA_B : OUT STD_LOGIC_VECTOR(3 DOWNTO 0)--- Couleurs RGB du VGA
);
END VGA_controleur;
ARCHITECTURE MAIN OF VGA_controleur IS
--SIGNAL SQ_X1,SQ_Y1: INTEGER:=500;
--SIGNAL DRAW1:STD_LOGIC:='1';
SIGNAL CNT_H : INTEGER:= 0;
SIGNAL CNT_V: INTEGER:=0; -- Compteur horizontal et vertical.
------------
--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
-- Si le reset est allumé, mettre le compteur et les les couleurs RGB à 0
IF(RESET='1') THEN
CNT_H <= 0;
CNT_V <= 0;
VS_SIGNAL<='0';
HS_SIGNAL<='0';
VGA_R <= (OTHERS => '0');
VGA_G <= (OTHERS => '0');
VGA_B <= (OTHERS => '0');
ELSIF(CLK_25M'EVENT AND CLK_25M = '1') THEN
-- Creation du compteur cnt_h. Tant que le compteur horizontal n'est pas égal à 792, incrémenter le compteur de 1.
IF(CNT_H = 792) THEN
CNT_H <= 0;
ELSE
CNT_H <= CNT_H + 1;
END IF;
-- Creation du compteur cnt_v. Tant que le compteur horizontal n'est pas égal à 792 et le compteur vertical ) 524, mettre à 0.
-- Autrement incrémenter le compteur vertical à 1
IF(CNT_H=792) THEN
ELSIF(CNT_V=524) THEN
CNT_V <= 0;
ELSE
CNT_V <= CNT_V + 1;
END IF;
--Gestion du signal horizontal.
-- Si le compteur horizontal est entre 650, et 745, enclencher le Blanking Time. Autrement, enclencher le Blanking Time.
IF((CNT_H>650) AND (CNT_H <745)) THEN
HS_SIGNAL <= '0';
ELSE
HS_SIGNAL <= '1';
END IF;
--- Gestion du signal vertical. Même chose qu'en haut mais avec le compteur vertical.
IF((CNT_V>490) AND (CNT_V <492)) THEN
VS_SIGNAL<= '0';
ELSE
VS_SIGNAL<= '1';
END IF;
-- Gestion des couleurs R/G/B
IF(CNT_H<635) THEN
VGA_R<= "1111";
VGA_G<= "0000";
VGA_B<= "0000";
ELSE
VGA_R<= "0000";
VGA_G<= "0000";
VGA_B<= "0000";
END IF;
END IF;
END PROCESS;
END MAIN;
CACHETFOU
2022-01-05 21:19:32
Le 05 janvier 2022 à 21:13:20 :
Ça sert à quoi le VGA ?
A afficher des couleurs avec des signaux de synchronisations verticaux et horizontaux
Le 05 janvier 2022 à 21:13:32 :
C'est le HDMI mtn
C'est pour un projet scolaire