Forum: FPGA, VHDL & Co. Multi-Sources - Wieso!


von Mario (Gast)


Lesenswert?

Hallo Leute!

Ich bastle gerade einen Matrix-Decoder.
Beim Synthetisieren mit Xilinx-ISE gibt es aber ein Problem.
Es erscheinen 4 Fehlermeldungen.
Error:xst:528 - Multi-source in Unit <matrixdecoder> on signal 
<keyf<1><2>>
<keyf<1><3>>
<keyf<1><4>>
<keyf<3><3>>


In einem Process habe ich folgende Konstruktion.
1
 type keyfeld is array (col'left to col'right,row'left to row'right) of std_ulogic;
2
 signal keyf: keyfeld;
3
4
begin
5
..
6
..
7
8
       -- Rowabfrage und Keyzuweisung.
9
        for count in col'left to col'right loop
10
          if countper=collow(count)-1 then
11
             for count2 in row'left to row'right loop
12
               if row(count2)='1' then
13
                 keyf(count,count2)<='1';
14
               else
15
                 keyf(count,count2)<='0';
16
               end if;
17
             end loop;
18
          end if;
19
        end loop; 
20
21
..
22
..

Ich verstehe nicht, wie es zu dieser Meldung kommt, wenn doch die 
Schleifen und die Verzweigung garantieren, dass nur eine Zuweisung auf 
den Treiber passiert?

Danke für eure Hilfe.
Tschüss
Mario

von Kim N. (kim)


Lesenswert?

Du änderst in 2 Verschiedenen Prozessen den Wert von keyf das mag er 
nicht nehme ich jetzt mal stark an...

von Matthias (Gast)


Lesenswert?

Genau, du kannst das ganze entweder in einen Prozess schreiben damits 
geht, oder du änderst das wie folgt:
keyf(count,count2) <='1' when row(count2)='1' else '0';

von Mario (Gast)


Lesenswert?

Ich schau mir das Ganze nochmal an.

Danke Leute.

Tschüss
Martin

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.