Forum: FPGA, VHDL & Co. Rotary Button


von Tobias (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

Wenn ich versuche obige VHDL-Datei zu synthetisieren, erhalte ich 
folgende Fehlermeldung:

Xst:1290 - Hierarchical block <rot_but1> is unconnected in block 
<top_level>.
   It will be removed from the design.

Warum passiert das? Ich dachte ich binde es ein?

von Tobias (Gast)


Angehängte Dateien:

Lesenswert?

Hi,

Vielleicht noch eine zweite Frage. Muss ich beim einbinden eines 
Pushbuttons in ein Projekt irgendetwas beachten. Ich meine nicht 
irgendwelche Dinge wegen Jitter etc. . Es ist einfach so das ISE meint 
kein Signal außer der Clock im RTL View mit einer Komponente verbinden 
zu müssen, obwohl ich das Signal des Buttons an meheren Stellen im 
Design verwende.

Als Beispiel habe ich mal eine Datei angehängt bei der ich versuche Pong 
auf dem Spartan3 zu realisieren. Es ist etwas unübersichtlich, aber die 
VGA Ausgabe geht schon mal.

von bko (Gast)


Lesenswert?

da sieht ISE keine Ausgänge und optimiert es einfach weg.

>entity top_level is
>port(CLK50 : in std_logic;
>     ROT_A, ROT_B : in std_logic
>   );
>end top_level;

von Tobias (Gast)


Angehängte Dateien:

Lesenswert?

Hej,

Danke für deine Antwort. Da hätte ich aber auch drauf kommen können. Ich 
habe jetzt als Ausgang 2 LEDs hinzugefügt, die leuchten sollten wenn ich 
den Rotarybutton drehe bzw. nach links drehe.
Aber eine LED wird immer wegoptimiert und das Signal rota ebenso, obwohl 
ich es doch verwenden ?!

von Duke Scarring (Gast)


Lesenswert?

>library IEEE;
>use IEEE.STD_LOGIC_1164.ALL;
>use IEEE.STD_LOGIC_ARITH.ALL;
>use IEEE.STD_LOGIC_UNSIGNED.ALL;
>use IEEE.NUMERIC_STD.ALL;
Aaahhh....

Siehe (u.a.): "IEEE.STD_LOGIC_ARITH.ALL obsolete"

Beitrag "IEEE.STD_LOGIC_ARITH.ALL obsolete"

Duke

von Duke Scarring (Gast)


Lesenswert?

>clkdiv : process(CLK50) begin
>if rising_edge(CLK50) then
>    if counter = 0 then
>      clk25 <= not clk25;
>    counter <= 1;
>    else
>      counter <= counter - 1;
>    end if;
>  end if;
>end process;
Mit sowas kannst Du Dir einen VGA-Takt erzeugen, aber im FPGA verwendet 
man Clock Enables:
1
clkdiv : process begin
2
    wait until rising_edge(CLK50);
3
    clk25_en <= '0';
4
    if counter = 0 then
5
        clk25_en <= '1';
6
        counter <= 1;
7
    else
8
        counter <= counter - 1;
9
    end if;
10
end process;

Duke

von Duke Scarring (Gast)


Lesenswert?

Nochwas: Hast Du eine Testbench dazu?

Duke

von Tobias (Gast)


Angehängte Dateien:

Lesenswert?

Hi,

Ich bin inzwischen auf normale Push-Buttons gewechselt und habe das 
Design für Pong fertig geschrieben. Funktioniert so weit ganz gut.

Vielen Dank für eure Hilfe

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


Lesenswert?

Duke Scarring schrieb:
> Aaahhh....
ROTFL... :-D

Hat aber leider nichts geholfen... :-(
Tobias schrieb:
> habe das Design für Pong fertig geschrieben.
1
library IEEE;
2
use IEEE.STD_LOGIC_1164.ALL;
3
use IEEE.STD_LOGIC_UNSIGNED.ALL; 
4
use IEEE.NUMERIC_STD.ALL;
Hier in kompakter Kurzform:
http://www.lothar-miller.de/s9y/archives/14-Numeric_Std.html

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.