Hallo,
leider habe ich ein Problem mit der CPLD Programmierung. Ständig bekomme
ich die Fehlermeldung
"ERROR:Xst:528 - Multi-source in Unit <shift> on signal <PO<17>>
ERROR:Xst:528 - Multi-source in Unit <shift> on signal <PO<16>>
ERROR:Xst:528 - Multi-source in Unit <shift> on signal <PO<15>>
ERROR:Xst:528 - Multi-source in Unit <shift> on signal <PO<14>>
ERROR:Xst:528 - Multi-source in Unit <shift> on signal <PO<13>>
ERROR:Xst:528 - Multi-source in Unit <shift> on signal <PO<12>>
ERROR:Xst:528 - Multi-source in Unit <shift> on signal <PO<11>>
ERROR:Xst:528 - Multi-source in Unit <shift> on signal <PO<10>>
ERROR:Xst:528 - Multi-source in Unit <shift> on signal <PO<9>>
ERROR:Xst:528 - Multi-source in Unit <shift> on signal <PO<8>>
ERROR:Xst:528 - Multi-source in Unit <shift> on signal <PO<7>>
ERROR:Xst:528 - Multi-source in Unit <shift> on signal <PO<6>>
ERROR:Xst:528 - Multi-source in Unit <shift> on signal <PO<5>>
ERROR:Xst:528 - Multi-source in Unit <shift> on signal <PO<4>>
ERROR:Xst:528 - Multi-source in Unit <shift> on signal <PO<3>>
ERROR:Xst:528 - Multi-source in Unit <shift> on signal <PO<2>>
ERROR:Xst:528 - Multi-source in Unit <shift> on signal <PO<1>>
ERROR:Xst:528 - Multi-source in Unit <shift> on signal <PO<0>>"
wie kann ich diese verhindern? Manchmal half die after Syntax, leider
klappt das nicht. Ich hoffe ihr könnt mir helfen!
1 | entity shift is
|
2 | port(C, SI, inc : in std_logic;
|
3 | PO : out std_logic_vector(17 downto 0));
|
4 | end shift;
|
5 |
|
6 | architecture archi of shift is
|
7 | signal tmp: std_logic_vector(17 downto 0);
|
8 | signal ct: std_logic_vector(4 downto 0):="00000";
|
9 | begin
|
10 | process (C)
|
11 | begin
|
12 | if (C'event and C='1') then
|
13 | ct<=ct+1;
|
14 | if(ct<18 AND ct>0) then
|
15 | tmp <= tmp(16 downto 0)& SI; --Das verursacht die Fehlermeldung
|
16 | else
|
17 | ct<="00000";
|
18 | end if;
|
19 | end if;
|
20 | end process;
|
21 | ------------------------
|
22 | process (inc)
|
23 | begin
|
24 | if (inc'event and inc='1') then
|
25 | if(ct=0) then
|
26 | tmp<=tmp+5 after 100 ms;
|
27 | end if;
|
28 | end if;
|
29 | end process;
|
30 | PO <= tmp;
|
31 |
|
32 | end archi;
|