Processeur/Processeur.srcs/sources_1/new/ScreenProperties.vhd
2021-07-30 10:09:20 +02:00

48 lines
2.7 KiB
VHDL

----------------------------------------------------------------------------------
-- Company: INSA-Toulouse
-- Engineer: Paul Faure
--
-- Create Date: 02.07.2021 10:07:41
-- Package Name: ScreenProperties
-- Project Name: Processeur sécurisé
-- Target Devices: Basys 3 ARTIX7
-- Tool Versions: Vivado 2016.4
--
-- Description: Rassemble les propriétés de l'écran et du VGA
----------------------------------------------------------------------------------
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
package ScreenProperties is
constant margin : Natural := 64; -- Marge laissée de tous les cotés de l'écran
constant Display_CaracterWidht : Natural := 64; -- Taille d'affichage d'un caractère (en pixels)
constant Display_CaracterHeight : Natural := 64; -- Taille d'affichage d'un caractère (en pixels)
constant screen_width : natural := 1280; -- Largeur de l'écran (en pixels)
constant screen_height : natural := 1024; -- Longueur de l'écran (en pixels)
constant X_PulseWidth : Natural := 112; -- Taille de la pulsation de synchronisation horizontale (en pixels)
constant X_FrontPorch : Natural := 48; -- Taille du temps avant la pulsation (en pixels)
constant X_BackPorch : Natural := 248; -- Taille du temps après la pulsation (en pixels)
constant Y_PulseWidth : Natural := 3; -- Taille de la pulsation de synchronisation verticale (en lignes)
constant Y_FrontPorch : Natural := 1; -- Taille du temps avant la pulsation (en lignes)
constant Y_BackPorch : Natural := 38; -- Taille du temps après la pulsation (en lignes)
subtype X_T is Natural range 0 to screen_width + X_PulseWidth + X_FrontPorch + X_BackPorch - 1; -- Type pour les coordonnées
subtype Y_T is Natural range 0 to screen_height + Y_PulseWidth + Y_FrontPorch + Y_BackPorch - 1; -- Type pour les coordonnées
constant C_Blocks : Natural := (screen_width - (2 * margin))/Display_CaracterWidht; -- Nombre de cases par ligne dans l'écran (Nombre de colonnes)
constant L_Blocks : Natural := (screen_height - (2 * margin))/Display_CaracterHeight; -- Nombre de cases par colonne dans l'écran (Nombre de lignes)
constant Ecran_Taille : Natural := C_Blocks * L_Blocks * 7; -- Nombre de bits dans l'écran (Nombre cases dans l'écran * 7)
constant L_Size : Natural := C_Blocks * 7; -- Taille en bits d'une ligne
constant Zero_Line : STD_LOGIC_VECTOR (0 to L_Size - 1) := (others => '0'); -- Constante, ligne de '0'
subtype L_T is Natural range 0 to L_Blocks - 1; -- Type pour les coordonnées
subtype C_T is Natural range 0 to C_Blocks - 1; -- Type pour les coordonnées
end package;