entrée et sortie en meme temps [VHDL] - Divers - Programmation
MarshPosté le 11-12-2005 à 15:23:06
Bonjour ! Voici mon problème. Je débute en vhdl. J'ai un bête bloc à réaliser et je m'en sors pas. Ca m'aiderait vraiment que qqun d'habitué m'indique ou est mon erreur.
Le bloc est le suivant : Il y a un port de 8bits bidirectionnel. Un chip select, un read et un write tous les 3 actifs bas. Un port 7bits + 1 pin de sortie.
Un read lit les sorties et les recopie sur le port bidirectionnel. Un write lit le port bidirectionnel et le recopie sur les sorties.
Ca parait nul mais ca m'en pose des problemes je vous jure. Voici le code : ------------
LIBRARY ieee; USE ieee.std_logic_1164.all; use IEEE.STD_LOGIC_ARITH.all; use IEEE.STD_LOGIC_UNSIGNED.all;
-------------------------
ENTITY comp IS PORT ( CS : IN STD_LOGIC; WR : IN STD_LOGIC; RD : IN STD_LOGIC; D : INOUT STD_LOGIC_VECTOR(7 downto 0); scmpr : BUFFER STD_LOGIC_VECTOR(6 downto 0); sens : BUFFER STD_LOGIC ); END comp;
----------------------------
ARCHITECTURE comp_architecture OF comp IS BEGIN PROCESS(CS,WR,RD) BEGIN --SI LE CHIP SELECT EST ACTIF-- IF(CS = '0') THEN IF(WR = '0') THEN --PRIORITE D'ECRITURE-- scmpr <= D(6 downto 0); sens <= D(7);
ELSIF(RD = '0') THEN --LECTURE SI PAS D'ECRITURE ?-- D(6 downto 0) <= scmpr; D(7) <= sens;
END IF;
END IF;
END PROCESS; END comp_architecture;
--------------------------
Pas d'erreurs à la compil mais bcp de warnings qui me parlent de loop combinatoires La simulation ne marche pas.
Voilà bcp de blabla pour un si petit bazar. On sait jamais si qqun à le temps de jeter un oeil rapide !!
Marsh Posté le 11-12-2005 à 15:23:06
Bonjour ! Voici mon problème. Je débute en vhdl. J'ai un bête bloc à réaliser et je m'en sors pas. Ca m'aiderait vraiment que qqun d'habitué m'indique ou est mon erreur.
Le bloc est le suivant : Il y a
un port de 8bits bidirectionnel.
Un chip select, un read et un write tous les 3 actifs bas.
Un port 7bits + 1 pin de sortie.
Un read lit les sorties et les recopie sur le port bidirectionnel.
Un write lit le port bidirectionnel et le recopie sur les sorties.
Ca parait nul mais ca m'en pose des problemes je vous jure.
Voici le code :
------------
LIBRARY ieee;
USE ieee.std_logic_1164.all;
use IEEE.STD_LOGIC_ARITH.all;
use IEEE.STD_LOGIC_UNSIGNED.all;
-------------------------
ENTITY comp IS
PORT
(
CS : IN STD_LOGIC;
WR : IN STD_LOGIC;
RD : IN STD_LOGIC;
D : INOUT STD_LOGIC_VECTOR(7 downto 0);
scmpr : BUFFER STD_LOGIC_VECTOR(6 downto 0);
sens : BUFFER STD_LOGIC
);
END comp;
----------------------------
ARCHITECTURE comp_architecture OF comp IS
BEGIN
PROCESS(CS,WR,RD)
BEGIN
--SI LE CHIP SELECT EST ACTIF--
IF(CS = '0') THEN
IF(WR = '0') THEN --PRIORITE D'ECRITURE--
scmpr <= D(6 downto 0);
sens <= D(7);
ELSIF(RD = '0') THEN --LECTURE SI PAS D'ECRITURE ?--
D(6 downto 0) <= scmpr;
D(7) <= sens;
END IF;
END IF;
END PROCESS;
END comp_architecture;
--------------------------
Pas d'erreurs à la compil mais bcp de warnings qui me parlent de loop combinatoires
La simulation ne marche pas.
Voilà bcp de blabla pour un si petit bazar. On sait jamais si qqun à le temps de jeter un oeil rapide !!
Un grand merci d'avance !!!
@@@