Hallo iedereen

Kan iemand hier zeggen met de gegeven code vanwaar die synthese error vandaan komt want ik vind ze nergens

Ik wel namelijk in mijn Top entity de anode van het zeven segment display een 0 toekennen als volgt :

AN0 <= '0'; maar dit wil niet werken

Heeft iemand een idee waar die fout zit

Ik ga enkel de toplevel geven want al de rest werkt al



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 Woordgenerator IS
    PORT ( MCLOCK 	: IN  STD_LOGIC;
	  UP	 	: IN  STD_LOGIC;
           	  SPEED1	: IN  STD_LOGIC;
	  SPEED2 	: IN  STD_LOGIC;
           	  RESET 	: IN  STD_LOGIC;
	  AN3    	: IN  STD_LOGIC;
	  AN2    	: IN  STD_LOGIC;
	  AN1    	: IN  STD_LOGIC;
	  AN0    	: IN  STD_LOGIC;
           	  SEGMENT	: OUT STD_LOGIC_VECTOR (6 downto 0));
END Woordgenerator;

ARCHITECTURE Behavioral OF Woordgenerator IS

	COMPONENT Klokdeler IS
		PORT ( clk 	: IN  	 STD_LOGIC;
           			reset 	: IN  	 STD_LOGIC;
          			 Q 	: BUFFER  STD_LOGIC_VECTOR (3 DOWNTO 0));
	END COMPONENT;

	COMPONENT MUX4_1 IS
		PORT (D	: IN  STD_LOGIC_VECTOR (3 DOWNTO 0);
		           S 	: IN  STD_LOGIC_VECTOR (1 DOWNTO 0);
		           Y	: OUT STD_LOGIC);
	END COMPONENT;
	
	COMPONENT Zeven_Segment_Decoder IS
		PORT ( state_input : IN  STD_LOGIC_VECTOR (2 DOWNTO 0);
			segment_a : OUT  STD_LOGIC;
             		segment_b : OUT  STD_LOGIC;
             		segment_c : OUT  STD_LOGIC;
             		segment_d : OUT  STD_LOGIC;
             		segment_e : OUT  STD_LOGIC;
             		segment_f :  OUT  STD_LOGIC;
             		segment_g : OUT  STD_LOGIC);
	END COMPONENT;
	
	COMPONENT Counter_8 IS
		PORT( rst		: IN  STD_LOGIC;
		           clk		: IN  STD_LOGIC;
			up		: IN  STD_LOGIC;
			state_output 	: OUT  STD_LOGIC_VECTOR (2 DOWNTO 0));
	END COMPONENT;
	
	SIGNAL temp1, temp2, temp3, temp4, temp5,
			 temp6, temp7, temp8 : STD_LOGIC; 
BEGIN

	IC1: Klokdeler PORT MAP(clk => MCLOCK, 
				reset => RESET,
				Q(3)  => temp1,
				Q(2)  => temp2,
				Q(1)  => temp3,
				Q(0)  => temp4);
									
	IC2: MUX4_1 PORT MAP(D(3) => temp1,
				D(2) => temp2,
				D(1) => temp3,
				D(0) => temp4,
				S(0) => SPEED1,
				S(1) => SPEED2,
				Y    => temp5);
	
	IC3: Counter_8 PORT MAP(clk => temp5,
				rst => '1',
				up  => UP,
				state_output(0) => temp6,
				state_output(1) => temp7,
				state_output(2) => temp8);
	
	IC4: Zeven_Segment_Decoder PORT MAP(state_input(0) => temp6,
				state_input(1) => temp7,
				state_input(2) => temp8,
				segment_a => SEGMENT(0),
				segment_b => SEGMENT(1),
				segment_c => SEGMENT(2),
				segment_d => SEGMENT(3),
				segment_e => SEGMENT(4),
				segment_f => SEGMENT(5),
				segment_g => SEGMENT(6));
													
	AN3 <= '0';
	AN2 <= '1';
	AN1 <= '1';
	AN0 <= '1';

END Behavioral;

Ik krijg deze fout in XLinx

ERROR:HDLParsers:1402 - "C:/D1_3_FPGA/Woordgenerator/Woordgenerator.vhd" Line 119. Object AN3 of mode IN can not be updated.
ERROR:HDLParsers:1402 - "C:/D1_3_FPGA/Woordgenerator/Woordgenerator.vhd" Line 120. Object AN2 of mode IN can not be updated.
ERROR:HDLParsers:1402 - "C:/D1_3_FPGA/Woordgenerator/Woordgenerator.vhd" Line 121. Object AN1 of mode IN can not be updated.
ERROR:HDLParsers:1402 - "C:/D1_3_FPGA/Woordgenerator/Woordgenerator.vhd" Line 122. Object AN0 of mode IN can not be updated.
-->

Total memory usage is 113704 kilobytes

Number of errors : 4 ( 0 filtered)
Number of warnings : 0 ( 0 filtered)
Number of infos : 0 ( 0 filtered)

Process "Synthesize" failed

[Bericht gewijzigd door Stephane1976 op (18%)]

Je probeert een ingang een bepaalde waarde te geven, dat gaat natuurlijk niet.....

Pas het zo aan:

AN3    	: [b]OUT[/b]  STD_LOGIC;
	  AN2    	: OUT STD_LOGIC;
	  AN1    	: OUT STD_LOGIC;
	  AN0    	: OUT STD_LOGIC;

Bedankt ik heb het nu geprogrammeerd maar ik zie hem geen woord vormen, wat zit hier verkeerd in mijn code want ik zie het echt niet

Hier mijn code files:



Woordgenerator.vhd (Toplevel)

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 Woordgenerator IS
    PORT ( MCLOCK : IN  STD_LOGIC;
--           Q 		: OUT STD_LOGIC_VECTOR (3 downto 0);
			  UP	 	: IN  STD_LOGIC;
           SPEED1	: IN  STD_LOGIC;
			  SPEED2 : IN  STD_LOGIC;
           RESET 	: IN  STD_LOGIC;
			  AN3    : OUT STD_LOGIC;
			  AN2    : OUT STD_LOGIC;
			  AN1    : OUT STD_LOGIC;
			  AN0    : OUT STD_LOGIC;
           SEGMENT: OUT STD_LOGIC_VECTOR (6 downto 0));
END Woordgenerator;

ARCHITECTURE Behavioral OF Woordgenerator IS

	COMPONENT Klokdeler IS
		PORT ( clk 	: IN  	 STD_LOGIC;
           reset 	: IN  	 STD_LOGIC;
           Q 		: BUFFER  STD_LOGIC_VECTOR (3 DOWNTO 0));
	END COMPONENT;

--	COMPONENT Ontdendering IS
--		PORT( clk 	: in  STD_LOGIC;
--            key 	: in  STD_LOGIC;
--            pulse : out  STD_LOGIC);
--	END COMPONENT; 

	COMPONENT MUX4_1 IS
		PORT (D 		: IN  STD_LOGIC_VECTOR (3 DOWNTO 0);
				S	 	: IN  STD_LOGIC_VECTOR (1 DOWNTO 0);
				Y 		: OUT STD_LOGIC);
	END COMPONENT;
	
	COMPONENT Zeven_Segment_Decoder IS
		PORT ( state_input : IN  STD_LOGIC_VECTOR (2 DOWNTO 0);
				 segment_a : OUT  STD_LOGIC;
             segment_b : OUT  STD_LOGIC;
             segment_c : OUT  STD_LOGIC;
             segment_d : OUT  STD_LOGIC;
             segment_e : OUT  STD_LOGIC;
             segment_f : OUT  STD_LOGIC;
             segment_g : OUT  STD_LOGIC);
	END COMPONENT;
	
	COMPONENT Counter_8 IS
		PORT( rst 	 			: IN  STD_LOGIC;
				clk	 			: IN  STD_LOGIC;
				up 	 			: IN  STD_LOGIC;
				state_output 	: OUT  STD_LOGIC_VECTOR (2 DOWNTO 0));
	END COMPONENT;
	
	SIGNAL temp1, temp2, temp3, temp4, temp5,
			 temp6, temp7, temp8 : STD_LOGIC; 
BEGIN

	IC1: Klokdeler PORT MAP(clk => MCLOCK, 
									reset => RESET,
									Q(3)  => temp1,
									Q(2)  => temp2,
									Q(1)  => temp3,
									Q(0)  => temp4);
									
	IC2: MUX4_1 PORT MAP(D(3) => temp1,
								D(2) => temp2,
								D(1) => temp3,
								D(0) => temp4,
								S(0) => SPEED1,
								S(1) => SPEED2,
								Y    => temp5);
	
	IC3: Counter_8 PORT MAP(clk => temp5,
									rst => '1',
									up  => UP,
									state_output(0) => temp6,
									state_output(1) => temp7,
									state_output(2) => temp8);
	
	IC4: Zeven_Segment_Decoder PORT MAP(state_input(0) => temp6,
													state_input(1) => temp7,
													state_input(2) => temp8,
													segment_a => SEGMENT(0),
													segment_b => SEGMENT(1),
													segment_c => SEGMENT(2),
													segment_d => SEGMENT(3),
													segment_e => SEGMENT(4),
													segment_f => SEGMENT(5),
													segment_g => SEGMENT(6));
													
	AN3 <= '0';
	AN2 <= '1';
	AN1 <= '1';
	AN0 <= '1';

END Behavioral;



Counter8.vhd

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 Counter_8 IS
    PORT(rst 	 			: IN  STD_LOGIC;
	      clk	 			: IN  STD_LOGIC;
         up 	 			: IN  STD_LOGIC;
         state_output 	: OUT  STD_LOGIC_VECTOR (2 DOWNTO 0));
END Counter_8;

ARCHITECTURE Behavioral OF Counter_8 IS
	SIGNAL state: std_logic_vector(2 DOWNTO 0);
	
		 CONSTANT	state_0: std_logic_vector(2 DOWNTO 0) := "000";
		 CONSTANT	state_1: std_logic_vector(2 DOWNTO 0) := "001";
		 CONSTANT	state_2: std_logic_vector(2 DOWNTO 0) := "010";
		 CONSTANT	state_3: std_logic_vector(2 DOWNTO 0) := "011";
		 CONSTANT	state_4: std_logic_vector(2 DOWNTO 0) := "100";
		 CONSTANT	state_5: std_logic_vector(2 DOWNTO 0) := "101";
		 CONSTANT	state_6: std_logic_vector(2 DOWNTO 0) := "110";
		 CONSTANT	state_7: std_logic_vector(2 DOWNTO 0) := "111";

BEGIN
		 up_down_counter:PROCESS(rst, clk)
		 BEGIN	
				IF (rst = '1') THEN
					state_output <= (others => '0');
					state        <= state_0;
				ELSIF rising_edge(clk) THEN 
					
					CASE state IS
				
						WHEN state_0 => 
							IF (UP = '1') THEN
								state <= state_1;
							ELSE
								state <= state_7;
						END IF;
					
						WHEN state_1 =>
							IF (UP = '1') THEN
								state <= state_2;
						ELSE
							state <= state_0;
						END IF;
						
						WHEN state_2 =>
							IF (UP = '1') THEN
								state <= state_3;
						ELSE
								state <= state_1;
						END IF;
						
						WHEN state_3 =>
							IF (UP = '1') THEN
								state <= state_4;
						ELSE
								state <= state_2;
						END IF;	
					
						WHEN state_4 =>
							IF (UP = '1') THEN
								state <= state_5;
						ELSE
								state <= state_3;
						END IF;
						
						WHEN state_5 =>
							IF (UP = '1') THEN
								state <= state_6;
						ELSE
								state <= state_4;
						END IF;
					
						WHEN state_6 =>
							IF (UP = '1') THEN
								state <= state_7;
							ELSE
								state <= state_5;
						END IF;
					
						WHEN state_7 =>
							IF (UP = '1') THEN
								state <= state_0;
							ELSE
								state <= state_6;
						END IF;
					
						WHEN OTHERS =>
							NULL;
					END CASE;
				END IF;
			state_output <= state;
	END PROCESS up_down_counter;
END Behavioral;




Klokdeler.vhd

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 Klokdeler IS
    PORT ( clk 	: IN  	 STD_LOGIC;
           reset 	: IN  	 STD_LOGIC;
           Q 		: BUFFER  STD_LOGIC_VECTOR (3 downto 0));
END Klokdeler;

ARCHITECTURE Behavioral OF Klokdeler IS
BEGIN

		deler_50MHz : PROCESS(clk) IS
		
		VARIABLE count1, count2, count3, count4 : INTEGER RANGE 0 TO 49999999 := 0;
		BEGIN
		
			IF (clk 'EVENT) AND (clk = '1') THEN
			
				-- Frequentie van 1Hz
				IF(count1 = 49999999) THEN
					count1 := 0;
					q(0) <= NOT q(0);
				ELSE 
					count1 := count1 + 1;
					q(0) <= '0';
				END IF;

				-- Frequentie van 2Hz
				IF(count2 = 24999999) THEN
					count2 := 0;
					q(1) <= NOT q(1);
				ELSE 
					count2 := count2 + 1;
				END IF;
			
				-- Frequentie van van 5Hz
				IF(count3 = 10000000) THEN
					count3 := 0;
					q(2) <= NOT q(2);
				ELSE 
					count3 := count3 + 1;
					q(2) <= '0';
				END IF;
				
				-- Frequentie van 
				IF(count4 = 5000000) THEN
					count4 := 0;
					q(3) <= NOT q(3);
				ELSE 
					count4 := count4 + 1;
					q(3) <= '0';
				END IF;
			END IF;
		END PROCESS deler_50MHz; 
END Behavioral;



Mux4_1.vhd

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 MUX4_1 IS
	PORT (D 	: IN  STD_LOGIC_VECTOR (3 DOWNTO 0);
         S 	: IN  STD_LOGIC_VECTOR (1 DOWNTO 0);
         Y 	: OUT STD_LOGIC);
END MUX4_1;

ARCHITECTURE Behavioral OF MUX4_1 IS

BEGIN

	Mux: PROCESS(D,S)
	
	VARIABLE sel : INTEGER RANGE 0 TO 3;
	BEGIN
		IF S(0) = '0' AND S(1) = '0'  THEN
			sel := 0;
		
		ELSIF  S(0) = '1' AND S(1) = '0' THEN
			sel := 1;
	
		ELSIF  S(0) = '0' AND S(1) = '1' THEN 
			sel := 2;
		ELSE 
		sel := 3;
		END IF;

		CASE sel IS
			WHEN	0 =>	Y 	<= 	D(0);
			WHEN  1 =>	Y 	<= 	D(1);
			WHEN  2 =>	Y 	<= 	D(2);
			WHEN	OTHERS 	=>	y	<=	D(3);
		END CASE;
	END PROCESS Mux;

END Behavioral;



seven_segment_decoder.vhd

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 Zeven_Segment_Decoder IS
    PORT ( state_input : IN  STD_LOGIC_VECTOR (2 DOWNTO 0);
           segment_a : OUT  STD_LOGIC;
           segment_b : OUT  STD_LOGIC;
           segment_c : OUT  STD_LOGIC;
           segment_d : OUT  STD_LOGIC;
           segment_e : OUT  STD_LOGIC;
           segment_f : OUT  STD_LOGIC;
           segment_g : OUT  STD_LOGIC);
END Zeven_Segment_Decoder;

ARCHITECTURE Behavioral OF Zeven_Segment_Decoder IS

		 CONSTANT	state_0: std_logic_vector(2 DOWNTO 0) := "000";
		 CONSTANT	state_1: std_logic_vector(2 DOWNTO 0) := "001";
		 CONSTANT	state_2: std_logic_vector(2 DOWNTO 0) := "010";
		 CONSTANT	state_3: std_logic_vector(2 DOWNTO 0) := "011";
		 CONSTANT	state_4: std_logic_vector(2 DOWNTO 0) := "100";
		 CONSTANT	state_5: std_logic_vector(2 DOWNTO 0) := "101";
		 CONSTANT	state_6: std_logic_vector(2 DOWNTO 0) := "110";
		 CONSTANT	state_7: std_logic_vector(2 DOWNTO 0) := "111";
		 
BEGIN
	seven_segment_decoder: PROCESS(state_input)
	
		BEGIN
			CASE state_input IS
				WHEN state_0 =>-- De letter P
						 	segment_a <= '1';
						  	segment_b <= '1';
						  	segment_c <= '0';
						  	segment_d <= '0';
						 	segment_e <= '1';
						  	segment_f <= '1';
						  	segment_g <= '1';
							
			    WHEN state_1 => -- De letter L
						 	segment_a <= '0';
						  	segment_b <= '0';
						  	segment_c <= '0';
						  	segment_d <= '1';
						  	segment_e <= '1';
						  	segment_f <= '1';
						  	segment_g <= '0';
				
				WHEN state_2 =>-- De letter A
						 	segment_a <= '1';
						  	segment_b <= '1';
						  	segment_c <= '1';
						  	segment_d <= '0';
						  	segment_e <= '1';
						  	segment_f <= '1';
						  	segment_g <= '1';
							
				WHEN state_3 =>-- De letter Y 
						 	segment_a <= '0';
						  	segment_b <= '1';
						  	segment_c <= '1';
						  	segment_d <= '1';
						  	segment_e <= '0';
						  	segment_f <= '1';
						  	segment_g <= '1';
							
				WHEN state_4 =>-- De letter L 
						 	segment_a <= '0';
						  	segment_b <= '0';
						  	segment_c <= '0';
						  	segment_d <= '1';
						  	segment_e <= '1';
						  	segment_f <= '1';
						  	segment_g <= '0';
				
				WHEN state_5 =>-- De letter I
						 	segment_a <= '0';
						  	segment_b <= '1';
						  	segment_c <= '1';
						  	segment_d <= '0';
						  	segment_e <= '0';
						  	segment_f <= '0';
						  	segment_g <= '0';
				
				WHEN state_6 =>-- De letter S
						 	segment_a <= '1';
						  	segment_b <= '0';
						  	segment_c <= '1';
						  	segment_d <= '1';
						  	segment_e <= '0';
						  	segment_f <= '1';
						  	segment_g <= '1';
				
				WHEN state_7 =>-- De letter t
						 	segment_a <= '0';
						  	segment_b <= '0';
						  	segment_c <= '0';
						  	segment_d <= '0';
						  	segment_e <= '1';
						  	segment_f <= '1';
						  	segment_g <= '1';
				WHEN OTHERS  =>
							NULL;
		END CASE;
	END PROCESS seven_segment_decoder;
END Behavioral;

Kan iemand eens zien waarom die woordgenerator geen sequence wilt doorlopen op ritme van de klok

Wijzig je post aub even naar een downloadlinkje, dit is veel te veel code voor op een forum.

Ik heb geen webserver, hoe kan ik het dan wel doen?

Ik denk ook niet dat je veel feedback krijgt zo. Je kunt toch niet verwachten dat we al die code gaan zitten reviewen?

Tip: je hebt de zaak al gesimuleerd? Niet, dan eerst doen. Testbench maken waarmee je je design een stimulus kunt aanbieden. En dan maar in het waveform window kijken of alle signalen zich gedragen zoals je het bedoeld hebt.

ModelSim heb ik geinstalleerd en hij vraagt een Licence key heb ik niet en ben student ze mogen dat toch geven dat we tenminste een testbench kunnen maken, maar neen je krijgt niks meer gratis is het maar een licence version voor 90 dagen hoe kunnen we dat anders aanleren????

Op 15 november 2007 19:49:19 schreef Stephane1976:
Ik heb geen webserver, hoe kan ik het dan wel doen?

http://www.uploadarchief.net/overview.html

En idd kan je zo weinig respons verwachten. Veel te weinig uitleg, was dat bij je vorige topic niet duidelijk?

Heb je dit allemaal gedaan?: http://www.model.com/resources/student_edition/download.asp

En ISE heeft ook een simulator ingebouwd. (Linksboven in het uitklapmenu die standaard op 'implemention/synthesis' staat) Deze heeft echter wat kleine bugs waar je je aan zou kunnen ergeren.

Ook heeft Modelsim een 'Xilinx edition', maar deze is begrensd in snelheid. (De student edition misschien ook wel, dat weet ik niet)

Ik weet of de ISE simulator of Modelsim sneller is, misschien dat iemand dat weet?

Alles behalve de full version is in snelheid gelimiteerd. De een iets meer dan de andere. Ik weet ook niet of ISE of Modelsim sneller is, maar dat zal in het geval van TS ook niet merkbaar uitmaken met zo'n klein design.
Bij mijn weten is ISE nogal beperkt en onhandig. Ik zou altijd voor Modelsim XE kiezen.