48 lines
2.7 KiB
VHDL
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;
|