Début clean
This commit is contained in:
parent
eef4708fba
commit
7230638484
12 changed files with 67 additions and 417 deletions
|
@ -1,90 +0,0 @@
|
|||
----------------------------------------------------------------------------------
|
||||
-- Company:
|
||||
-- Engineer:
|
||||
--
|
||||
-- Create Date: 29.06.2021 08:40:33
|
||||
-- Design Name:
|
||||
-- Module Name: Test_ScreenSystem - Behavioral
|
||||
-- Project Name:
|
||||
-- Target Devices:
|
||||
-- Tool Versions:
|
||||
-- Description:
|
||||
--
|
||||
-- Dependencies:
|
||||
--
|
||||
-- Revision:
|
||||
-- Revision 0.01 - File Created
|
||||
-- Additional Comments:
|
||||
--
|
||||
----------------------------------------------------------------------------------
|
||||
|
||||
|
||||
library IEEE;
|
||||
use IEEE.STD_LOGIC_1164.ALL;
|
||||
|
||||
-- Uncomment the following library declaration if using
|
||||
-- arithmetic functions with Signed or Unsigned values
|
||||
--use IEEE.NUMERIC_STD.ALL;
|
||||
|
||||
-- Uncomment the following library declaration if instantiating
|
||||
-- any Xilinx leaf cells in this code.
|
||||
--library UNISIM;
|
||||
--use UNISIM.VComponents.all;
|
||||
|
||||
entity Test_ScreenSystem is
|
||||
-- Port ( );
|
||||
end Test_ScreenSystem;
|
||||
|
||||
architecture Behavioral of Test_ScreenSystem is
|
||||
|
||||
component ScreenSystem is
|
||||
Port ( vgaRed : out STD_LOGIC_VECTOR (3 downto 0);
|
||||
vgaBlue : out STD_LOGIC_VECTOR (3 downto 0);
|
||||
vgaGreen : out STD_LOGIC_VECTOR (3 downto 0);
|
||||
Hsync : out STD_LOGIC;
|
||||
Vsync : out STD_LOGIC;
|
||||
|
||||
|
||||
btnC : in STD_LOGIC;
|
||||
CLK : in STD_LOGIC
|
||||
);
|
||||
end component;
|
||||
|
||||
signal my_vgaRed : STD_LOGIC_VECTOR (3 downto 0) := (others => '0');
|
||||
signal my_vgaBlue : STD_LOGIC_VECTOR (3 downto 0) := (others => '0');
|
||||
signal my_vgaGreen : STD_LOGIC_VECTOR (3 downto 0) := (others => '0');
|
||||
signal my_Hsync : STD_LOGIC := '0';
|
||||
signal my_Vsync : STD_LOGIC := '0';
|
||||
|
||||
|
||||
signal my_btnC : STD_LOGIC := '0';
|
||||
signal my_CLK : STD_LOGIC := '0';
|
||||
|
||||
constant CLK_period : time := 9.26 ns;
|
||||
|
||||
begin
|
||||
instance : ScreenSystem
|
||||
port map (
|
||||
vgaRed => my_vgaRed,
|
||||
vgaBlue => my_vgaBlue,
|
||||
vgaGreen => my_vgaGreen,
|
||||
Hsync => my_Hsync,
|
||||
Vsync => my_Vsync,
|
||||
btnC => my_btnC,
|
||||
CLK => my_CLK
|
||||
);
|
||||
|
||||
CLK_process :process
|
||||
begin
|
||||
my_CLK <= '0';
|
||||
wait for CLK_period/2;
|
||||
my_CLK <= '1';
|
||||
wait for CLK_period/2;
|
||||
end process;
|
||||
|
||||
process
|
||||
begin
|
||||
wait;
|
||||
end process;
|
||||
|
||||
end Behavioral;
|
|
@ -14,7 +14,6 @@
|
|||
--
|
||||
-- Dependencies:
|
||||
-- - MemoireInstruction
|
||||
-- - MemoireAdressesRetour
|
||||
----------------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
@ -224,7 +223,7 @@ begin
|
|||
end process;
|
||||
|
||||
|
||||
-- Condition horrible -> Instruction critique en lecture sur A qui lit dans A=i et Ri dans tableau ou instruction critique en lecture sur B qui lit dans B=j et Rj dans tableau ou instruction critique en lecture sur C qui lit dans C=k et Rk dans tableau
|
||||
-- Condition horrible -> Instruction critique en lecture sur A qui lit dans A=i et Ri dans tableau ou instruction critique en lecture sur B qui lit dans B=j et Rj dans tableau ou instruction critique en lecture sur C qui lit dans C=k et Rk dans tableau ou PRI en cours et un PRI ou un PRIC arrive
|
||||
bulles <=
|
||||
(
|
||||
(
|
||||
|
|
|
@ -35,11 +35,11 @@ entity Etage2_5_Registres is
|
|||
Port ( CLK : in STD_LOGIC; -- Clock
|
||||
RST : in STD_LOGIC; -- Reset
|
||||
STD_IN : in STD_LOGIC_VECTOR (Nb_bits - 1 downto 0); -- Entrée de données depuis l'exterieur du processeur
|
||||
STD_IN_Av : in STD_LOGIC;
|
||||
STD_IN_Request : out STD_LOGIC;
|
||||
STD_IN_Av : in STD_LOGIC; -- Donnée depuis l'exterieur du processeur disponible
|
||||
STD_IN_Request : out STD_LOGIC; -- Donnée depuis l'exterieur du processeur demandée
|
||||
STD_OUT : out STD_LOGIC_VECTOR (Nb_bits - 1 downto 0); -- Sortie de données vers l'exterieur du processeur
|
||||
STD_OUT_Av : out STD_LOGIC;
|
||||
STD_OUT_Int : out STD_LOGIC;
|
||||
STD_OUT_Av : out STD_LOGIC; -- Donnée vers l'exterieur du processeur disponible
|
||||
STD_OUT_Int : out STD_LOGIC; -- Type de la donnée (int ou char)
|
||||
IN_2_A : in STD_LOGIC_VECTOR (Nb_bits - 1 downto 0); -- Entrée de l'opérande A de l'étage 2
|
||||
IN_2_B : in STD_LOGIC_VECTOR (Nb_bits - 1 downto 0); -- Entrée de l'opérande B de l'étage 2
|
||||
IN_2_C : in STD_LOGIC_VECTOR (Nb_bits - 1 downto 0); -- Entrée de l'opérande C de l'étage 2
|
||||
|
|
|
@ -10,11 +10,10 @@
|
|||
--
|
||||
-- Description: Etage 4 du processeur
|
||||
-- - Gestion de la mémoire
|
||||
-- - Gestion de la sauvegarde du contexte lors des appels de fonction
|
||||
-- - Gestion de la sauvegarde du contexte et de l'adresse de retour lors des appels de fonction
|
||||
--
|
||||
-- Dependencies:
|
||||
-- - MemoireDonnees
|
||||
-- - MemoireAdressesRetour
|
||||
-- - LC
|
||||
-- - MUX
|
||||
----------------------------------------------------------------------------------
|
||||
|
@ -169,6 +168,7 @@ begin
|
|||
CALL_Aux <= '1' when IN_Instruction = Code_Instruction_CALL else
|
||||
'0';
|
||||
|
||||
-- Gestion d'EBP
|
||||
process
|
||||
begin
|
||||
wait until CLK'event and CLK = '1';
|
||||
|
@ -181,7 +181,9 @@ begin
|
|||
end if;
|
||||
end process;
|
||||
|
||||
-- Calcul de la nouvelle valeur d'EBP
|
||||
New_EBP <= EBP + IN_B (Adresse_mem_size - 1 downto 0) + 2;
|
||||
-- Valeur de EBP à stocker (bourré avec des '0')
|
||||
IN_EBP <= (Nb_bits - 1 downto Adresse_mem_size => '0') & EBP;
|
||||
|
||||
Addr_MemoireDonnees_EBP <= IN_Addr_MemoireDonnees + EBP;
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -24,15 +24,6 @@ use IEEE.STD_LOGIC_1164.ALL;
|
|||
|
||||
use work.ScreenProperties.all;
|
||||
|
||||
-- Uncomment the following library declaration if using
|
||||
-- arithmetic functions with Signed or Unsigned values
|
||||
--use IEEE.NUMERIC_STD.ALL;
|
||||
|
||||
-- Uncomment the following library declaration if instantiating
|
||||
-- any Xilinx leaf cells in this code.
|
||||
--library UNISIM;
|
||||
--use UNISIM.VComponents.all;
|
||||
|
||||
entity PeripheriqueEcran is
|
||||
Generic ( Nb_Bits : Natural);
|
||||
Port ( CLK : in STD_LOGIC;
|
||||
|
|
|
@ -1,47 +1,36 @@
|
|||
----------------------------------------------------------------------------------
|
||||
-- Company:
|
||||
-- Engineer:
|
||||
-- Company: INSA-Toulouse
|
||||
-- Engineer: Paul Faure
|
||||
--
|
||||
-- Create Date: 19.04.2021 16:57:41
|
||||
-- Design Name:
|
||||
-- Module Name: Pipeline_NS - Behavioral
|
||||
-- Project Name:
|
||||
-- Target Devices:
|
||||
-- Tool Versions:
|
||||
-- Description:
|
||||
-- Project Name: Processeur sécurisé
|
||||
-- Target Devices: Basys 3 ARTIX7
|
||||
-- Tool Versions: Vivado 2016.4
|
||||
-- Description: Version non sécurisée du pipeline, connecte les étages et fait avancer les signaux sur le pipeline
|
||||
--
|
||||
-- Dependencies:
|
||||
--
|
||||
-- Revision:
|
||||
-- Revision 0.01 - File Created
|
||||
-- Additional Comments:
|
||||
--
|
||||
-- - Etage1_LectureInstruction_NS
|
||||
-- - Etage2_5_Registres
|
||||
-- - Etage3_Calcul
|
||||
-- - Etage4_Memoire_NS
|
||||
----------------------------------------------------------------------------------
|
||||
|
||||
|
||||
library IEEE;
|
||||
use IEEE.STD_LOGIC_1164.ALL;
|
||||
|
||||
-- Uncomment the following library declaration if using
|
||||
-- arithmetic functions with Signed or Unsigned values
|
||||
--use IEEE.NUMERIC_STD.ALL;
|
||||
|
||||
-- Uncomment the following library declaration if instantiating
|
||||
-- any Xilinx leaf cells in this code.
|
||||
--library UNISIM;
|
||||
--use UNISIM.VComponents.all;
|
||||
|
||||
entity Pipeline_NS is
|
||||
Generic (Nb_bits : Natural := 8;
|
||||
Instruction_En_Memoire_Size : Natural := 29;
|
||||
Addr_Memoire_Instruction_Size : Natural := 3;
|
||||
Memoire_Instruction_Size : Natural := 8;
|
||||
Instruction_Bus_Size : Natural := 5;
|
||||
Nb_Instructions : Natural := 32;
|
||||
Nb_Registres : Natural := 16;
|
||||
Addr_registres_size : Natural := 4;
|
||||
Memoire_Size : Natural := 32;
|
||||
Adresse_mem_size : Natural := 5);
|
||||
Generic (Nb_bits : Natural := 8; -- Taille d'un mot binaire
|
||||
Instruction_En_Memoire_Size : Natural := 29; -- Taille d'une instruction en mémoire (Taille d'un code instruction + 3*Taille d'un mot binaire)
|
||||
Addr_Memoire_Instruction_Size : Natural := 3; -- Nombre de bits pour adresser la mémoire d'instruction
|
||||
Memoire_Instruction_Size : Natural := 8; -- Taille de la mémoire d'instruction (nombre d'instructions stockées)
|
||||
Instruction_Bus_Size : Natural := 5; -- Nombre de bits du bus d'instruction (Taille d'un code instruction)
|
||||
Nb_Instructions : Natural := 32; -- Nombre d'instructions dans le processeur
|
||||
Nb_Registres : Natural := 16; -- Nombre de registres du processeurs
|
||||
Addr_registres_size : Natural := 4; -- Nombre de bits pour adresser les registres
|
||||
Memoire_Size : Natural := 32; -- Taille de la mémoire de données
|
||||
Adresse_mem_size : Natural := 5); -- Nombre de bits pour adresser la mémoire
|
||||
Port (CLK : STD_LOGIC;
|
||||
RST : STD_LOGIC;
|
||||
STD_IN : in STD_LOGIC_VECTOR (Nb_bits - 1 downto 0);
|
||||
|
@ -156,6 +145,7 @@ architecture Behavioral of Pipeline_NS is
|
|||
OUT_AddrRetour : out STD_LOGIC_VECTOR (Nb_bits - 1 downto 0));
|
||||
end component;
|
||||
|
||||
-- Signaux reliant les étages
|
||||
signal A_from_1 : STD_LOGIC_VECTOR (Nb_bits - 1 downto 0) := (others => '0');
|
||||
signal A_from_2 : STD_LOGIC_VECTOR (Nb_bits - 1 downto 0) := (others => '0');
|
||||
signal A_from_3 : STD_LOGIC_VECTOR (Nb_bits - 1 downto 0) := (others => '0');
|
||||
|
@ -184,15 +174,17 @@ architecture Behavioral of Pipeline_NS is
|
|||
signal Instruction_to_3 : STD_LOGIC_VECTOR (Instruction_Bus_Size - 1 downto 0) := (others => '0');
|
||||
signal Instruction_to_4 : STD_LOGIC_VECTOR (Instruction_Bus_Size - 1 downto 0) := (others => '0');
|
||||
signal Instruction_to_5 : STD_LOGIC_VECTOR (Instruction_Bus_Size - 1 downto 0) := (others => '0');
|
||||
-- Sorties de l'ALU
|
||||
signal N : STD_LOGIC := '0';
|
||||
signal Z : STD_LOGIC := '0';
|
||||
signal O : STD_LOGIC := '0';
|
||||
signal C : STD_LOGIC := '0';
|
||||
-- Sortie de l'adresse de retour de l'étage 4 vers le 1
|
||||
signal AdresseRetour : STD_LOGIC_VECTOR (Nb_bits - 1 downto 0) := (others => '0');
|
||||
|
||||
signal intern_STD_IN_Request : STD_LOGIC := '0';
|
||||
|
||||
|
||||
-- Constantes de contrôle des MUX et LC
|
||||
constant Bits_Controle_MUX_2_A : STD_LOGIC_VECTOR (Nb_Instructions - 1 downto 0) := "111111111" & "11110011101111111111111";
|
||||
constant Bits_Controle_MUX_2_B : STD_LOGIC_VECTOR (Nb_Instructions - 1 downto 0) := "111111111" & "11111111000011000000001";
|
||||
constant Bits_Controle_LC_3 : STD_LOGIC_VECTOR (Nb_Instructions * 3 - 1 downto 0) := "000" & "000" & "000" & "000" & "000" & "000" & "000" & "000" & "000" & "000" & "000" & "000" & "000" & "000" & "000" & "000" & "000" & "000" & "000" & "000" & "000" & "000" & "000" & "000" & "111" & "110" & "101" & "100" & "010" & "011" & "001" & "000";
|
||||
|
@ -211,6 +203,7 @@ architecture Behavioral of Pipeline_NS is
|
|||
constant Code_Instruction_RET : STD_LOGIC_VECTOR (Instruction_Bus_Size - 1 downto 0) := "10101";
|
||||
constant Code_Instruction_STOP : STD_LOGIC_VECTOR (Instruction_Bus_Size - 1 downto 0) := "10110";
|
||||
|
||||
-- Constantes de contrôle des bulles
|
||||
constant Instructions_critiques_lecture_A : STD_LOGIC_VECTOR (Nb_Instructions - 1 downto 0) := "111111111" & "00001100010000000000000";
|
||||
constant Instructions_critiques_lecture_B : STD_LOGIC_VECTOR (Nb_Instructions - 1 downto 0) := "111111111" & "00000000111100111111110";
|
||||
constant Instructions_critiques_lecture_C : STD_LOGIC_VECTOR (Nb_Instructions - 1 downto 0) := "111111111" & "00000000000000011111110";
|
||||
|
|
|
@ -1,129 +0,0 @@
|
|||
----------------------------------------------------------------------------------
|
||||
-- Company:
|
||||
-- Engineer:
|
||||
--
|
||||
-- Create Date: 28.06.2021 17:27:26
|
||||
-- Design Name:
|
||||
-- Module Name: ScreenSystem - Behavioral
|
||||
-- Project Name:
|
||||
-- Target Devices:
|
||||
-- Tool Versions:
|
||||
-- Description:
|
||||
--
|
||||
-- Dependencies:
|
||||
--
|
||||
-- Revision:
|
||||
-- Revision 0.01 - File Created
|
||||
-- Additional Comments:
|
||||
--
|
||||
----------------------------------------------------------------------------------
|
||||
|
||||
|
||||
library IEEE;
|
||||
use IEEE.STD_LOGIC_1164.ALL;
|
||||
|
||||
use work.ScreenProperties.all;
|
||||
|
||||
-- Uncomment the following library declaration if using
|
||||
-- arithmetic functions with Signed or Unsigned values
|
||||
--use IEEE.NUMERIC_STD.ALL;
|
||||
|
||||
-- Uncomment the following library declaration if instantiating
|
||||
-- any Xilinx leaf cells in this code.
|
||||
--library UNISIM;
|
||||
--use UNISIM.VComponents.all;
|
||||
|
||||
entity ScreenSystem is
|
||||
Port ( vgaRed : out STD_LOGIC_VECTOR (3 downto 0);
|
||||
vgaBlue : out STD_LOGIC_VECTOR (3 downto 0);
|
||||
vgaGreen : out STD_LOGIC_VECTOR (3 downto 0);
|
||||
Hsync : out STD_LOGIC;
|
||||
Vsync : out STD_LOGIC;
|
||||
|
||||
|
||||
btnC : in STD_LOGIC;
|
||||
CLK : in STD_LOGIC
|
||||
);
|
||||
end ScreenSystem;
|
||||
|
||||
architecture Behavioral of ScreenSystem is
|
||||
|
||||
component VGAControler is
|
||||
Port ( VGA_RED : out STD_LOGIC_VECTOR (3 downto 0);
|
||||
VGA_BLUE : out STD_LOGIC_VECTOR (3 downto 0);
|
||||
VGA_GREEN : out STD_LOGIC_VECTOR (3 downto 0);
|
||||
VGA_HS : out STD_LOGIC;
|
||||
VGA_VS : out STD_LOGIC;
|
||||
|
||||
X : out X_T;
|
||||
Y : out Y_T;
|
||||
PIXEL_ON : in STD_LOGIC;
|
||||
|
||||
CLK : in STD_LOGIC;
|
||||
RST : in STD_LOGIC);
|
||||
end component;
|
||||
|
||||
component clk_wiz_0
|
||||
port
|
||||
(-- Clock in ports
|
||||
clk_in1 : in std_logic;
|
||||
-- Clock out ports
|
||||
clk_out1 : out std_logic
|
||||
);
|
||||
end component;
|
||||
|
||||
component Ecran is
|
||||
Port ( CLK : in STD_LOGIC;
|
||||
RST : in STD_LOGIC;
|
||||
Data_Av : in STD_LOGIC;
|
||||
Data_IN : in STD_LOGIC_VECTOR (0 to 6);
|
||||
X : in X_T;
|
||||
Y : in Y_T;
|
||||
OUT_ON : out STD_LOGIC);
|
||||
end component;
|
||||
|
||||
signal my_X : X_T := 0;
|
||||
signal my_Y : Y_T := 0;
|
||||
signal my_PIXEL_ON : STD_LOGIC := '0';
|
||||
|
||||
signal my_CLK : STD_LOGIC := '0';
|
||||
signal RST : STD_LOGIC;
|
||||
|
||||
begin
|
||||
|
||||
instanceVGA : VGAControler
|
||||
port map( VGA_RED => vgaRed,
|
||||
VGA_BLUE => vgaBlue,
|
||||
VGA_GREEN => vgaGreen,
|
||||
VGA_HS => Hsync,
|
||||
VGA_VS => Vsync,
|
||||
|
||||
X => my_X,
|
||||
Y => my_Y,
|
||||
PIXEL_ON => my_PIXEL_ON,
|
||||
|
||||
CLK => my_CLK,
|
||||
RST => RST);
|
||||
|
||||
|
||||
clk_wiz_0_inst : clk_wiz_0
|
||||
port map (
|
||||
clk_in1 => CLK,
|
||||
clk_out1 => my_CLK
|
||||
);
|
||||
|
||||
|
||||
instance_Ecran : Ecran
|
||||
port map ( CLK => CLK,
|
||||
RST => RST,
|
||||
Data_Av => '0',
|
||||
Data_IN => "0000000",
|
||||
X => my_X,
|
||||
Y => my_Y,
|
||||
OUT_ON => my_PIXEL_ON);
|
||||
|
||||
-- Gestion du RST (inversion d'état)
|
||||
RST <= '1' when btnC = '0' else
|
||||
'0';
|
||||
|
||||
end Behavioral;
|
|
@ -7,11 +7,14 @@
|
|||
-- Project Name: Processeur sécurisé
|
||||
-- Target Devices: Basys 3 ARTIX7
|
||||
-- Tool Versions: Vivado 2016.4
|
||||
-- Description: Environnement du processeur, mapping entre le processeur et la carte
|
||||
-- Description: Environnement du processeur, mapping entre le processeur et les periphériques, affectation des ports la carte
|
||||
--
|
||||
-- Dependencies:
|
||||
-- - Clock_Divider
|
||||
-- - Pipeline
|
||||
-- - Pipeline_NS
|
||||
-- - PeripheriqueEcran
|
||||
-- - PeripheriqueClavier
|
||||
----------------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
@ -19,8 +22,8 @@ library IEEE;
|
|||
use IEEE.STD_LOGIC_1164.ALL;
|
||||
|
||||
-- Lien avec le fichier de contraintes
|
||||
-- Récupération des leds pour STD_OUT
|
||||
-- Récupération des switchs pour STD_IN
|
||||
-- Récupération du VGA
|
||||
-- Récupération du PS2
|
||||
-- Récupération d'un bouton pour RST
|
||||
-- Récupération de la clock
|
||||
entity System is
|
||||
|
@ -117,22 +120,24 @@ architecture Structural of System is
|
|||
end component;
|
||||
|
||||
-- signaux auxiliaires
|
||||
signal my_RST : STD_LOGIC;
|
||||
signal my_CLK : STD_LOGIC;
|
||||
signal STD_IN : STD_LOGIC_VECTOR (15 downto 0) := (others => '0');
|
||||
signal STD_IN_Av : STD_LOGIC := '0';
|
||||
signal STD_IN_Request : STD_LOGIC := '0';
|
||||
signal intern_STD_OUT : STD_LOGIC_VECTOR (15 downto 0) := (others => '0');
|
||||
signal intern_STD_OUT_Av : STD_LOGIC := '0';
|
||||
signal intern_STD_OUT_Int : STD_LOGIC := '0';
|
||||
signal pipeline_STD_OUT : STD_LOGIC_VECTOR (15 downto 0) := (others => '0');
|
||||
signal pipeline_STD_OUT_Av : STD_LOGIC := '0';
|
||||
signal pipeline_STD_OUT_Int : STD_LOGIC := '0';
|
||||
signal clavier_STD_OUT : STD_LOGIC_VECTOR (15 downto 0) := (others => '0');
|
||||
signal clavier_STD_OUT_Av : STD_LOGIC := '0';
|
||||
signal clavier_STD_OUT_Int : STD_LOGIC := '0';
|
||||
signal my_RST : STD_LOGIC; -- Signal de RST (inversion par rapport au btnC)
|
||||
signal my_CLK : STD_LOGIC; -- Signal de clock (divisée par rapport CLK)
|
||||
-- signaux de gestion de l'entrée
|
||||
signal STD_IN : STD_LOGIC_VECTOR (15 downto 0) := (others => '0'); -- Entrée
|
||||
signal STD_IN_Av : STD_LOGIC := '0'; -- Entrée disponible en lecture sur le clavier
|
||||
signal STD_IN_Request : STD_LOGIC := '0'; -- Demande d'une entrée au clavier
|
||||
-- signaux de gestion de la sortie
|
||||
signal STD_OUT : STD_LOGIC_VECTOR (15 downto 0) := (others => '0'); -- Sortie vers l'écran
|
||||
signal STD_OUT_Av : STD_LOGIC := '0'; -- Sortie disponible pour l'écran
|
||||
signal STD_OUT_Int : STD_LOGIC := '0'; -- Type de la sortie (entier ou ASCII) pour l'écran
|
||||
signal pipeline_STD_OUT : STD_LOGIC_VECTOR (15 downto 0) := (others => '0'); -- Sortie depuis le Pipeline
|
||||
signal pipeline_STD_OUT_Av : STD_LOGIC := '0'; -- Sortie disponible depuis le Pipeline
|
||||
signal pipeline_STD_OUT_Int : STD_LOGIC := '0'; -- Type de la sortie (entier ou ASCII) depuis le pipeline
|
||||
signal clavier_STD_OUT : STD_LOGIC_VECTOR (15 downto 0) := (others => '0'); -- Sortie depuis le Clavier
|
||||
signal clavier_STD_OUT_Av : STD_LOGIC := '0'; -- Sortie disponible depuis le Clavier
|
||||
signal clavier_STD_OUT_Int : STD_LOGIC := '0'; -- Type de la sortie (entier ou ASCII) depuis le Clavier
|
||||
|
||||
constant SECURISED : boolean := false;
|
||||
constant SECURISED : boolean := false; -- Booléen de sélection entre la version sécurisée et non sécurisée
|
||||
|
||||
begin
|
||||
|
||||
|
@ -142,7 +147,7 @@ begin
|
|||
CLK_OUT => my_CLK);
|
||||
|
||||
|
||||
-- Generation du processeur en fonction de la condition sécurisé ou non
|
||||
-- Generation du pipeline en fonction de la condition sécurisé ou non
|
||||
instance: if (SECURISED) generate
|
||||
instance_securisee : entity work.Pipeline
|
||||
generic map (Nb_bits => 16,
|
||||
|
@ -199,9 +204,9 @@ begin
|
|||
Hsync => Hsync,
|
||||
Vsync => Vsync,
|
||||
|
||||
STD_OUT => intern_STD_OUT,
|
||||
STD_OUT_Av => intern_STD_OUT_Av,
|
||||
STD_OUT_Int => intern_STD_OUT_Int);
|
||||
STD_OUT => STD_OUT,
|
||||
STD_OUT_Av => STD_OUT_Av,
|
||||
STD_OUT_Int => STD_OUT_Int);
|
||||
|
||||
instance_perif_clavier : PeripheriqueClavier
|
||||
generic map (Nb_Bits => 16)
|
||||
|
@ -221,9 +226,10 @@ begin
|
|||
'0';
|
||||
|
||||
|
||||
intern_STD_OUT <= clavier_STD_OUT when STD_IN_Request = '1' else pipeline_STD_OUT;
|
||||
intern_STD_OUT_Av <= clavier_STD_OUT_Av when STD_IN_Request = '1' else pipeline_STD_OUT_Av;
|
||||
intern_STD_OUT_Int <= clavier_STD_OUT_Int when STD_IN_Request = '1' else pipeline_STD_OUT_Int;
|
||||
-- Gestion de l'affichage sur l'écran lors d'une demande d'entrée le clavier affiche sur l'écran
|
||||
STD_OUT <= clavier_STD_OUT when STD_IN_Request = '1' else pipeline_STD_OUT;
|
||||
STD_OUT_Av <= clavier_STD_OUT_Av when STD_IN_Request = '1' else pipeline_STD_OUT_Av;
|
||||
STD_OUT_Int <= clavier_STD_OUT_Int when STD_IN_Request = '1' else pipeline_STD_OUT_Int;
|
||||
|
||||
end Structural;
|
||||
|
||||
|
|
|
@ -1,95 +0,0 @@
|
|||
----------------------------------------------------------------------------------
|
||||
-- Company:
|
||||
-- Engineer:
|
||||
--
|
||||
-- Create Date: 01.07.2021 13:37:43
|
||||
-- Design Name:
|
||||
-- Module Name: SystemKeyboard - Behavioral
|
||||
-- Project Name:
|
||||
-- Target Devices:
|
||||
-- Tool Versions:
|
||||
-- Description:
|
||||
--
|
||||
-- Dependencies:
|
||||
--
|
||||
-- Revision:
|
||||
-- Revision 0.01 - File Created
|
||||
-- Additional Comments:
|
||||
--
|
||||
----------------------------------------------------------------------------------
|
||||
|
||||
|
||||
library IEEE;
|
||||
use IEEE.STD_LOGIC_1164.ALL;
|
||||
|
||||
-- Uncomment the following library declaration if using
|
||||
-- arithmetic functions with Signed or Unsigned values
|
||||
--use IEEE.NUMERIC_STD.ALL;
|
||||
|
||||
-- Uncomment the following library declaration if instantiating
|
||||
-- any Xilinx leaf cells in this code.
|
||||
--library UNISIM;
|
||||
--use UNISIM.VComponents.all;
|
||||
|
||||
entity SystemKeyboard is
|
||||
Port (CLK : in STD_LOGIC;
|
||||
|
||||
PS2Clk : in STD_LOGIC;
|
||||
PS2Data : in STD_LOGIC;
|
||||
|
||||
led : out STD_LOGIC_VECTOR (0 to 10);
|
||||
btnC : in STD_LOGIC);
|
||||
end SystemKeyboard;
|
||||
|
||||
architecture Behavioral of SystemKeyboard is
|
||||
|
||||
component Keyboard
|
||||
Port (CLK : in STD_LOGIC;
|
||||
|
||||
PS2Clk : in STD_LOGIC;
|
||||
PS2Data : in STD_LOGIC;
|
||||
|
||||
Data_read : in STD_LOGIC;
|
||||
Data_av : out STD_LOGIC;
|
||||
Data : out STD_LOGIC_VECTOR (0 to 6);
|
||||
|
||||
alert : out STD_LOGIC);
|
||||
end component;
|
||||
|
||||
signal intern_Data_read : STD_LOGIC := '0';
|
||||
signal intern_Data_av : STD_LOGIC := '0';
|
||||
signal Data_Read : STD_LOGIC_VECTOR (0 to 6);
|
||||
|
||||
begin
|
||||
|
||||
instance_Keyboard : Keyboard
|
||||
port map (CLK => CLK,
|
||||
|
||||
PS2Clk => PS2Clk,
|
||||
PS2Data => PS2Data,
|
||||
|
||||
Data_read => intern_Data_read,
|
||||
Data_av => intern_Data_av,
|
||||
Data => Data_Read,
|
||||
|
||||
alert => led(10));
|
||||
|
||||
led(7) <= '0';
|
||||
led(8) <= intern_Data_av;
|
||||
led(9) <= intern_Data_read;
|
||||
|
||||
process
|
||||
begin
|
||||
wait until CLK'event and CLK = '1';
|
||||
if (intern_Data_av = '1' and btnC = '1') then
|
||||
led(0 to 6) <= Data_read;
|
||||
intern_Data_read <= '1';
|
||||
else
|
||||
intern_Data_read <= '0';
|
||||
end if;
|
||||
end process;
|
||||
|
||||
|
||||
|
||||
|
||||
end Behavioral;
|
|
@ -203,12 +203,6 @@
|
|||
<Attr Name="UsedIn" Val="synthesis"/>
|
||||
</FileInfo>
|
||||
</File>
|
||||
<File Path="$PSRCDIR/sources_1/new/ScreenSystem.vhd">
|
||||
<FileInfo>
|
||||
<Attr Name="UsedIn" Val="synthesis"/>
|
||||
<Attr Name="UsedIn" Val="simulation"/>
|
||||
</FileInfo>
|
||||
</File>
|
||||
<File Path="$PSRCDIR/sources_1/new/Keyboard.vhd">
|
||||
<FileInfo>
|
||||
<Attr Name="UsedIn" Val="synthesis"/>
|
||||
|
@ -221,12 +215,6 @@
|
|||
<Attr Name="UsedIn" Val="simulation"/>
|
||||
</FileInfo>
|
||||
</File>
|
||||
<File Path="$PSRCDIR/sources_1/new/SystemKeyboard.vhd">
|
||||
<FileInfo>
|
||||
<Attr Name="UsedIn" Val="synthesis"/>
|
||||
<Attr Name="UsedIn" Val="simulation"/>
|
||||
</FileInfo>
|
||||
</File>
|
||||
<File Path="$PSRCDIR/sources_1/new/SystemKeyboardScreen.vhd">
|
||||
<FileInfo>
|
||||
<Attr Name="UsedIn" Val="synthesis"/>
|
||||
|
@ -251,12 +239,6 @@
|
|||
<Attr Name="UsedIn" Val="simulation"/>
|
||||
</FileInfo>
|
||||
</File>
|
||||
<File Path="$PSRCDIR/sources_1/new/IntToASCII.vhd">
|
||||
<FileInfo>
|
||||
<Attr Name="UsedIn" Val="synthesis"/>
|
||||
<Attr Name="UsedIn" Val="simulation"/>
|
||||
</FileInfo>
|
||||
</File>
|
||||
<File Path="$PSRCDIR/sources_1/new/ScreenDriver.vhd">
|
||||
<FileInfo>
|
||||
<Attr Name="UsedIn" Val="synthesis"/>
|
||||
|
@ -391,12 +373,6 @@
|
|||
<Attr Name="UsedIn" Val="simulation"/>
|
||||
</FileInfo>
|
||||
</File>
|
||||
<File Path="$PSRCDIR/sim_1/new/Test_ScreenSystem.vhd">
|
||||
<FileInfo>
|
||||
<Attr Name="UsedIn" Val="synthesis"/>
|
||||
<Attr Name="UsedIn" Val="simulation"/>
|
||||
</FileInfo>
|
||||
</File>
|
||||
<File Path="$PSRCDIR/sim_1/new/TestTableASCII.vhd">
|
||||
<FileInfo>
|
||||
<Attr Name="UsedIn" Val="synthesis"/>
|
||||
|
|
Loading…
Reference in a new issue