vhdl-problem z kompilacją prostego projektu

Dyskusje ogólne na temat "cyfrówki" czyli wszystko o TTL/CMOS, językach VHDL i VERILOG, bramkach, rejestrach, przerzutnikach... Dobre miejsce na pytania odnośnie uniwersalnych programatorów (np. Willem) a także podłączania własnych peryferiów do komputera PC.
ODPOWIEDZ
voltron2
-
Posty: 2
Rejestracja: 21 lis 2009, 22:28
Lokalizacja: z ukrycia

vhdl-problem z kompilacją prostego projektu

Post autor: voltron2 » 21 lis 2009, 22:38

Witam, właśnie się uczę programowania w VHDLu i jedna z części mojego pierwszego projektu średnio się kompiluje. może ktoś mi podpowie co jest nie tak. poniżej podaje kod i błędy dane od kompilatora:

Kod: Zaznacz cały


library ieee;
	use ieee.std_logic_1164.all;
	use work.FA.all;
	
entity CSA is
	port( ac, bc, cinc : in std_logic_vector ( m-1 downto 0);
	      sumac, coutc, : out std_logic_vector ( m-1 downto 0));
end CSA;

------------
architecture struct1 of CSA is

    constant m: integer :=8;
   

 component FA is  --fulladder
	port (
		a,b,cin: in std_logic;
		suma,cout: out std_logic);
end component;

begin

		for i in (m-1) downto 0 loop
		    -- use sign "=>" to clarify the pin mapping
			gate1 : FA port map (a => ac(i), b => bc(i), cin => cinc(i), suma => sumac(i), cout => coutc(i));
		end loop;

		
end struct1;
	  
i błędy(jeśli ktoś się chce doliczać linijek to "library ieee;" jest linijką nr. 7 wcześniej były tylko komenatrze.)

Kod: Zaznacz cały

Error (10500): VHDL syntax error at CSA.vhd(13) near text ":";  expecting an identifier
Error (10523): Ignored construct CSA at CSA.vhd(11) due to previous errors
Error (10500): VHDL syntax error at CSA.vhd(30) near text "for";  expecting "end", or "(", or an identifier ("for" is a reserved keyword), or a concurrent statement
Error (10500): VHDL syntax error at CSA.vhd(30) near text "downto";  expecting "<="
Error (10500): VHDL syntax error at CSA.vhd(33) near text "loop";  expecting ";", or an identifier ("loop" is a reserved keyword), or "architecture"
z góry dzięki za pomoc :D

pisulski
-
Posty: 6
Rejestracja: 11 kwie 2008, 9:50
Lokalizacja: łódź

Post autor: pisulski » 22 lis 2009, 22:41

[sumac, coutc, : out std_logic_vector ( m-1 downto 0));]
przecinek przed :
Przekompiluj i sprawdź błędy.

voltron2
-
Posty: 2
Rejestracja: 21 lis 2009, 22:28
Lokalizacja: z ukrycia

Post autor: voltron2 » 22 lis 2009, 23:28

o super...rzeczywiście to był jedne z błędów. ale nie załatwia to błędów:

Kod: Zaznacz cały

Error (10500): VHDL syntax error at CSA.vhd(30) near text "for";  expecting "end", or "(", or an identifier ("for" is a reserved keyword), or a concurrent statement
Error (10500): VHDL syntax error at CSA.vhd(30) near text "downto";  expecting "<="
Error (10500): VHDL syntax error at CSA.vhd(33) near text "loop";  expecting ";", or an identifier ("loop" is a reserved keyword), or "architecture"
w 30 linijce zaczyna się pętla "for"

[ Dodano: 2009-11-24, 09:43 ]
oki dla potomnych,

for-loop nie może wisieć w przestrzeni. musi być w procesie:D

Kod: Zaznacz cały

use work.FA.all; 
był niepotrzebny

no i zamist delarować stałą w architecture powinienem napisać napisać w porcie już:

Kod: Zaznacz cały

	generic( m: integer :=8);

więcej mi nie trzeba, do zamknięcia:D

ODPOWIEDZ