PDA

View Full Version : Decoder VHDL - ISE 10.1


lauke
25-12-2010, 10:42
Salve ragazzi, scusate il disturbo, per il giorno di natale poi... premetto che è da poco che programmo in VHDL, e non mi funziona un cavolo.

Per esempio volevo realizzare un circuito combinatorio per un decoder. Il codice è il seguente:


library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;

---- Uncomment the following library declaration if instantiating
---- any Xilinx primitives in this code.
--library UNISIM;
--use UNISIM.VComponents.all;

entity decoder is --un banale decoder...dovrebbe essere banale...
Port ( input : in STD_LOGIC_VECTOR (2 downto 0);
output : out STD_LOGIC_VECTOR (7 downto 0));
end decoder;

architecture Behavioral of decoder is
signal local_output : std_logic_vector (7 downto 0);
begin

process is
begin
case_selezione:
case input is
when '000' => local_output := '10000000';
when '001' => local_output := '01000000';
when '010' => local_output := '00100000';
when '011' => local_output := '00010000';
when '100' => local_output := '00001000';
when '101' => local_output := '00000100';
when '110' => local_output := '00000010';
when '111' => local_output := '00000001';
end case case_selezione;
end process;

output <= local_output;
end Behavioral;


Solo che non mi funziona ciò e ho alcune domande... alla luce dei seguenti errori

ERROR:HDLParsers:164 - "C:/Xilinx101/Progetti/BasiVHDL/Decoder_1/decoder.vhd" Line 43. parse error, unexpected TICK
WARNING:HDLParsers:1406 - "C:/Xilinx101/Progetti/BasiVHDL/Decoder_1/decoder.vhd" Line 39. No sensitivity list and no wait in the process

che mi vengono dati quando faccio il controllo della sintassi con l'ise.

Perchè non funziona?
Ho programmato in C, C++, Java e VB. Che chiaramente non sono linguaggi per l'HW. Quindi mi trovo un pò spaesato nel comprendere "al volo" i motivi degli errori. Se mi elencate i motivi del non funzionamento in modo "pignolo" (da rompipalle per farla breve) ve ne sarei molto grato.

Buon Natale =)

ingframin
25-12-2010, 22:52
Togli la dichiarazione del process !
Il circuito è combinatorio, non ti serve a nulla dichiarare un process.
Se lo lasci devi aggiungere la sensitivity list, altrimenti l'output non cambierà mai.