Forum: FPGA, VHDL & Co. ISE synthetisiert eine Leitung nicht


von Johannes (Gast)


Lesenswert?

Hallo liebe VHDL Experten,

ich habe folgendes Problem:
Ich habe in ISE ein Design mit zwei MOdulen erstellt, die ich gerne 
miteinander verdrahten möchte. Dazu folgender Code:
1
library ieee;
2
use ieee.std_logic_1164.ALL;
3
use ieee.numeric_std.ALL;
4
library UNISIM;
5
use UNISIM.Vcomponents.ALL;
6
7
entity wholeDesign is
8
   port ( clk_24        : in    std_logic; 
9
          backLight_out : out   std_logic; 
10
          en_out        : out   std_logic; 
11
          rs_out        : out   std_logic; 
12
          rw_out        : out   std_logic; 
13
          data_out      : inout std_logic_vector (3 downto 0));
14
end wholeDesign;
15
16
architecture BEHAVIORAL of wholeDesign is
17
   signal XLXN_1                 : std_logic_vector (3 downto 0);
18
   signal XLXN_2                 : std_logic_vector (7 downto 0);
19
   signal XLXN_3                 : std_logic;
20
   signal XLXN_5                 : std_logic;
21
   signal XLXN_6                 : std_logic;
22
   signal XLXN_4                 : std_logic;
23
   component lcdController
24
      port ( clk_24    : in    std_logic; 
25
             reset_n   : in    std_logic; 
26
             posY      : in    std_logic; 
27
             writeData : in    std_logic; 
28
             dataIn    : in    std_logic_vector (7 downto 0); 
29
             posX      : in    std_logic_vector (3 downto 0); 
30
             ready     : out   std_logic; 
31
             en        : out   std_logic; 
32
             rw        : out   std_logic; 
33
             rs        : out   std_logic; 
34
             backLight : out   std_logic; 
35
             data      : inout std_logic_vector (3 downto 0));
36
   end component;
37
   
38
   component writeText
39
      port ( clk_24    : in    std_logic; 
40
             isReady   : in    std_logic; 
41
             reset_n   : out   std_logic; 
42
             posY      : out   std_logic; 
43
             writeData : out   std_logic; 
44
             char_out  : out   std_logic_vector (7 downto 0); 
45
             posX      : out   std_logic_vector (3 downto 0));
46
   end component;
47
   
48
begin
49
   XLXI_1 : lcdController
50
      port map (clk_24=>clk_24,
51
                dataIn(7 downto 0)=>XLXN_2(7 downto 0),
52
                posX(3 downto 0)=>XLXN_1(3 downto 0),
53
                posY=> XLXN_4,
54
                reset_n=>XLXN_5,
55
                writeData=>XLXN_3,
56
                backLight=>backLight_out,
57
                en=>en_out,
58
                ready=>XLXN_6,
59
                rs=>rs_out,
60
                rw=>rw_out,
61
                data(3 downto 0)=>data_out(3 downto 0));
62
   
63
   XLXI_2 : writeText
64
      port map (clk_24=>clk_24,
65
                isReady=>XLXN_6,
66
                char_out(7 downto 0)=>XLXN_2(7 downto 0),
67
                posX(3 downto 0)=>XLXN_1(3 downto 0),
68
                posY => XLXN_4,
69
                reset_n=>XLXN_5,
70
                writeData=>XLXN_3);
71
   
72
end BEHAVIORAL;


Das Problem ist, dass ISE einfach nicht die posY Leitung synthetisieren 
will. Das RTL Ergebnis ist wie im Bild.
Hat jemand eine Idee woran das liegen könnte?

Viele Grüße

: Bearbeitet durch Moderator
von Johannes (Gast)


Angehängte Dateien:

Lesenswert?

sorry, hier das Bild ;)

von Duke Scarring (Gast)


Lesenswert?

Das dürfte bloß ein Anzeigefehler im Schematic-View sein.

Duke

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Johannes schrieb:
> Hat jemand eine Idee woran das liegen könnte?
Das Problem liegt icht im geposteten Code. Es liegt sehr wahrscheinlich 
daran, dass das Signal, das darauf transporttiert wird, sich nicht 
(relevant) ändert.

Was sagt die Simulation?

von Johannes (Gast)


Lesenswert?

Duke Scarring schrieb:
> Das dürfte bloß ein Anzeigefehler im Schematic-View sein.
>
> Duke

Das Signal wird aber, im Gegensatz zu den anderen Leitunge, auch bei den 
Verbindungsleitungen nicht angezeigt. Wird also definitiv nicht 
synthetisiert.

Simulation läuft fehlerfrei.

von Johannes (Gast)


Lesenswert?

Lothar Miller schrieb:
> Johannes schrieb:
>> Hat jemand eine Idee woran das liegen könnte?
> Das Problem liegt icht im geposteten Code. Es liegt sehr wahrscheinlich
> daran, dass das Signal, das darauf transporttiert wird, sich nicht
> (relevant) ändert.
>
> Was sagt die Simulation?

Kann es denn wirklich sein, dass die Leitung einfach wegsynthetisiert 
wird. Was empfängt dann die Gegenseite? Z oder U oder 0?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Duke Scarring schrieb:
> Das dürfte bloß ein Anzeigefehler im Schematic-View sein.
Ja, ich empfehle hier mal einen Blick auf die Technology Schematic zu 
werfen. Geht zwar sehr ins Detail, funktioniert aber...

von Christoph Z. (christophz)


Lesenswert?

Johannes schrieb:
> Kann es denn wirklich sein, dass die Leitung einfach wegsynthetisiert
> wird. Was empfängt dann die Gegenseite? Z oder U oder 0?

Sie wird nur wegsynthesisiert, wenn kein Empfänger vorhanden ist (Port 
zwar in der Entity definiert, aber in der Architecture wird er nicht 
verwendet) oder der Synthesizer feststellt, dass eine Änderung an diesem 
Signal keinen Einfluss auf folgende Signale hat (Einfaches Beispiel, Ein 
Und-Gatter wo ein Eingang konstant auf '0' ist, dann optimiert der 
Synthesizer gleich das ganze Und-Gatter und die Logik an den anderen 
Eingängen weg).

Der erste Fall kann manchmal aber selten gewünscht sein, der zweite Fall 
ist so gut wie immer ein Hinweis auf ein Fehler im Design (Entsprechend 
gibt es dazu Warnungen im Synthesis Report).

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.