Hallo,
ich bin gerade dabei eine kleine Schaltung mit hilfe eines CPLD noch
weiter zu verkleinern. Im Prinzip funktioniert inzwischen alles wie
gewünscht.
Was mich jedoch noch beunruhigt, ist die Tatsache, dass mir ISE 10.1
einen Eingang zum Multiplexer scheinbar nicht "verdrahtet".
Im normalfall würde ich davon ausgehen, dass ich Mist gebaut habe, aber
ich habe mir den Code inzwischen zig mal angesehen und nichts
verdächtiges gefunden.
Das Problem ist im RTL Schematic sichtbar während im technology
schematic alles zu stimmen scheint.
Die Synthese verläuft Fehler- und Warning- frei.
Die Simulation im ModelSim XE III 6.3c verläuft ebenfalls OK.
Ich habe den Multiplexer aus dem Projekr herausgelöst. Er sieht so aus:
1 | entity CK_MUX is
|
2 | port(
|
3 | CK_SEL : in bit_vector (1 downto 0);
|
4 | CK_IN : in bit_vector (3 downto 0);
|
5 | CK_OUT : out bit
|
6 | );
|
7 | end entity CK_MUX;
|
8 |
|
9 | architecture MUX of CK_MUX is
|
10 | begin
|
11 | CMUX: process (CK_SEL, CK_IN)
|
12 | begin
|
13 | case CK_SEL is
|
14 | when "00" => CK_OUT <= CK_IN(0);
|
15 | when "01" => CK_OUT <= CK_IN(1);
|
16 | when "10" => CK_OUT <= CK_IN(2);
|
17 | when others => CK_OUT <= CK_IN(3);
|
18 | end case;
|
19 | end process CMUX;
|
20 | end architecture MUX;
|
Da ich nicht sicher bin, ob meine Beschreibung verständlich war, hänge
ich hier noch ein PNG-Screenshot des Fehlers an.
In meinem VHDL Beispiel verwende ich die typen bit und bit_vector. Mit
std_logic und std_logic_vector bekomme ich exakt das gleiche Ergebnis.
Auch wenn ich das ganze statt im process als nebenläufige Anweisung
(select) definiere, bekomme ich auch dieses Ergebnis.
Hat jemand eine Idee woran das liegt?
lg. JK