Forum: FPGA, VHDL & Co. S3E Reset wird nicht geroutet


von mac4ever (Gast)


Lesenswert?

Hallo zusammen,
ich habe heute ein S3E Starterkit bekommen und gleich ein kleines 
Problem damit.

Ich wollte ein kleinen Test durchführen ... LEDs blinken lassen, etc.
1
entity s3e_core_body is
2
port(
3
CLK_50MHZ:  in std_logic;
4
reset  :  in std_logic;
5
SW  :  in std_logic_vector(3 downto 0);
6
LED  : out std_logic_vector(7 downto 0)
7
  );
8
end s3e_core_body;

Der Reset ist der globale Reset des FPGA. Nur leider wird der beim P&R 
nicht korrekt geroutet. Schuld daran ist scheinbar der Pegel, der ist 
LVCMOS25 lt. PAD-Report. Die restlichen Anschlüsse ( LED ) liegen auf 
LVTTL

Im .ufc ist der Reset nicht definiert, also sollte ja der GSR benutzt 
werden. In einer AppNote habe ich einen Weg gefunden, den Pegel 
anzupassen ( über einen IBUF_LVCMOS33 ) ... dadurch erhalte ich 
wenigstens keinen Fehler beim P&R.

Jetzt die Frage: Kann ich das so machen ? Und warum kommt es überhaupt 
zu diesem "Fehler" ? Ich habe vorher mit den S2 Starterkit gearbeitet 
und so ein Problem nie gehabt.

Danke für Eure Antworten.

von Jan M. (mueschel)


Lesenswert?

Da fehlt einfach die Angabe des I/O-Standards in der UCF-Datei, ergänze 
das einfach entsprechend der Angabe bei den anderen Leitungen, z.B. so:

NET "RESET" LOC = "g12" | IOSTANDARD = "LVTTL"


Der Reset arbeitet ziemlich sicher auch mit LVTTL-Pegeln, LVCMOS25 ist 
einfach der Standard, wenn nichts angegeben ist im UCF-File. (Außerdem 
sind die beiden Standards so ähnlich, dass es bei zeitlich unkritischen 
Signalen wie dem Reset sicher keine Probleme geben wird)


>Im .ufc ist der Reset nicht definiert, also sollte ja der GSR benutzt werden

Der Reset muss angegeben sein, sonst liegt er auf irgendeinem Pin der 
der Software gerade passt und nicht da, wo er auch wirklich 
angeschlossen ist!

von mac4ever (Gast)


Lesenswert?

Danke für die schnelle Antwort !

Wenn ich den Reset in die .ucf-Datei eintrage, dann ist ja quasi ein 
Soft-Reset ... über einen Taster o.ä.
Ich möchte aber nur den GSR als Resetsignal benutzen ... und der ist ja 
nur intern vorhanden ... oder ? Dafür müsste ich ja dann keinen Eintrag 
in der .ucf-Datei vornehmen.

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


Lesenswert?

> GSR als Resetsignal
GSR ist das Globale Set-Reset-Netzwerk. Das wird zum einen verwendet, um 
nach der Konfiguration die Register auf einen definierten Zustand zu 
setzen, zum anderen kann damit ein externer Reset auf das ganze FPGA 
geroutet werden.

Du willst offenbar "nur" Defaultwerte nach der Konfiguration haben. Das 
geht bei Xilinx ganz einfach über die Zuweisung von 
Initialisierungwerten bei der Instatiierung der Signale.

Soll die Initialisierung eines Signals ungleich null sein, kann das 
angegeben werden. Wird z.B. geschrieben
1
signal irgendwas : std_logic := '1';
dann hat das Signal nach der Konfiguration den Wert '1'. Bei
1
signal irgendwasanderes : std_logic_vector(7 downto 0) := x"aa";
wird das Signal mit dem Wert 0xAA initialisiert. Auf die selbe Weise 
kann z.B. eine SM auf den Start-Zustand (hier AUS) gesetzt werden:
1
type   Status_Type is (START, MITTE, SCHLUSS, AUS);
2
signal status   : Status_Type := AUS;

Mit deiner Beschreibung
1
entity s3e_core_body is
2
  port(
3
    CLK_50MHZ:  in std_logic;
4
    reset  :  in std_logic;
5
    SW  :  in std_logic_vector(3 downto 0);
6
    LED  : out std_logic_vector(7 downto 0)
7
  );
8
end s3e_core_body;
deklarierst du ja wirklich ein Signal reset, und das will auch 
irgendwohin verdrahtet sein ;-)

von mac4ever (Gast)


Lesenswert?

Danke für die Antwort !
Diese Art der Initialisierung wollte ich eigentlich umgehen ... die 
gefällt mir rein optisch nicht wirklich :) Ist aber wie immer 
Geschmacksache und ich werde mich mit Sicherheit daran gewöhnen können. 
:)

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


Lesenswert?

> die gefällt mir rein optisch nicht wirklich :)
Der Vorteil daran ist: Die Simulation und die synthetisierte Hardware 
haben die selben Ausgangszustände, ohne dass ein zusätzliches 
Reset-Signal nötig wäre.

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.