ISE synthetisiert eine Leitung nicht

Gast #3680499
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
Gast #3680526
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?
#3680605
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).

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 12 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.