J'ai besoin de 32 bits de données à HPS via l'interface mappée mémoire avalon. Le 1er et le 2ème cas ont bien fonctionné. Et j'ai eu des données sur HPS. Mais dans le 3ème cas, WHEN '2' => avs_s0_readdata = count_x (31 downto 0); il montre une erreur comme '' 2 '' n'est pas déclaré qu'est-ce que cela signifie. Vhdl a été fait dans Altera quartus 16.1 et le système HPS a été fait dans Qsys.Erreur lors de l'écriture dans le 3ème cas de l'interface mappée FPGA HPS FPGA
architecture behavior of encorder is
signal count : STD_LOGIC_VECTOR(31 DOWNTO 0);
signal countx : STD_LOGIC_VECTOR(31 DOWNTO 0);
signal count_y : STD_LOGIC_VECTOR(31 DOWNTO 0):= x"00000000";
begin
PROCESS(avs_s0_read)
BEGIN
IF avs_s0_read = '1' THEN
CASE(avs_s0_address) IS
WHEN '2' => avs_s0_readdata <= count_x(31 downto 0);
WHEN others => avs_s0_readdata <= x"00000000";
END CASE;
ELSE
avs_s0_readdata <= x"00000000";
END IF;
END PROCESS;`
Bienvenue à SO. Vous pouvez aider la personne qui abandonne le temps pour vous aider. Votre code est incomplet. Nous ne savons pas quel est le type 'avs_s0_address' (' '2' 'est de type 'character'.' Avs_s0_address' ne sera pas de ce type). Veuillez poster un [MCVE] (http://stackoverflow.com/help/mcve). –
Sans voir de déclaration pour avs_s0_address, il semblerait que '2' ne soit pas une valeur d'énumération de son type. Veuillez fournir un [exemple minimal, complet et vérifiable] (https://stackoverflow.com/help/mcve). Votre problème ne peut pas être dupliqué (ou plus précisément quelqu'un pourrait créer un exemple autour de votre extrait qui ne présente pas de problème de syntaxe). Si le type avait été std_logic (type de base std_ulogic) ses valeurs d'énumération seraient constituées des littéraux de caractère 'U', 'X', '0', '1', 'Z', 'W', 'L', 'H' , et '-'. Notez que la condition if n'a pas généré d'erreur. – user1155120
Un autre outil peut donner un message d'erreur plus descriptif - 'encorder.vhdl: 34: 6: erreur: impossible de faire correspondre le caractère littéral '2' avec le type std_ulogic'. std_logic est un sous-type résolu de std_ulogic - ('U', 'X', '0', '1', 'Z', 'W', 'L', 'H' et '-'). '2' n'est pas un choix valide dans une instruction case, ne représentant pas une valeur de std_logic. – user1155120