S3E Reset wird nicht geroutet

Gast #1010745
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.
#1010756
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!
Gast #1010781
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.
Moderator (Firma: Titel) Persönliche Seite #1011226
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 ;-)
Gast #1011237
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. 
:)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren