Stephane1976
Stefke
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%)]
Goeievraag
Mijn posts dienen u in perfecte staat te bereiken. Mocht u op wat voor wijze dan ook ontevreden zijn, stuur dan de site, met post en leesdatum, naar: ongeldig@dres.nl
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;Stephane1976
Stefke
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
flipflop
"We cannot solve our problems with the same thinking we used when we created them" - Albert Einstein
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.
Stephane1976
Stefke
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?
Goeievraag
Mijn posts dienen u in perfecte staat te bereiken. Mocht u op wat voor wijze dan ook ontevreden zijn, stuur dan de site, met post en leesdatum, naar: ongeldig@dres.nl
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?
flipflop
"We cannot solve our problems with the same thinking we used when we created them" - Albert Einstein
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.