Forum: FPGA, VHDL & Co. Probleme mit Spartan3E (ISE8.1)


von Christian Schiffner (Gast)


Lesenswert?

Hallo,

ich habe vor kurzen ein Spartan-3E Board erworben und versuche ein 
erstes
Projekt in VHDL auf das Board zu implementieren.Leider funktioniert es 
nicht wie erhofft.Im Projekt handelt es sich um einen einfachen Zähler
bei dem einfach ein paar LED's brennen sollten:

entity counter is
    Port ( CLOCK : in  STD_LOGIC;
           COUNT_OUT : out  STD_LOGIC_VECTOR (3 downto 0));
end counter;
architecture Behavioral of counter is
signal count_int : std_logic_vector(3 downto 0) := "0000";
begin
process (CLOCK)
begin
   if CLOCK='1' and CLOCK'event then
      count_int <= count_int + 1;
   end if;
end process;
 COUNT_OUT <= count_int;
end Behavioral;
In der ISE-Software(8.1)funktioniert auch der gesamte Design Flow,von 
der Testbench bis zur Implementierung u.s.w.Also kann der Fehler 
eigentlich nur
daran liegen,das ich die Pins und CLK falsch anspreche.
Auf dem Board sitzt ein xc3s500e-,Package:FG320.Laut Excel Tabellen von 
Xilinx lauten die Pin Namen für CLK:T10,Count_out(0-3):F12,E12,E11,F11.
Kann mir jemand mit dem gleichen Board schreiben ob das richtig ist,oder
welche Portbelegung er für so ein VHDL wählen würde.

Danke im voraus

von Falk (Gast)


Lesenswert?

@Christian Schiffner

> nicht wie erhofft.Im Projekt handelt es sich um einen einfachen Zähler
> bei dem einfach ein paar LED's brennen sollten:

Na ich hoffe mal, dass die LEDs nur leuchten. ;-)

> welche Portbelegung er für so ein VHDL wählen würde.

Die Portbelegung ist unabhängig vom VHDL, sie hängt nur vom verwendetem 
Chip ab.

1)Hast du die Pins definiert? Das macht man im UCF. Am Ende kannst du 
unter Implement Design->Place & Route-> Pad Reportnachschaun, ob die 
Pins dort liegen, wo du sie haben willst.

2) Wenn der Takt nicht im Bereich von ein paar Hertz ist, wirst du nur 
ein Glimmen sehen. Dann musst du einen grösseren Zähler verwenden und 
die LEDs an die MSBs hängen.

MFG
Falk

von Christian Schiffner (Gast)


Lesenswert?

Danke für die schnelle Antwort.
Habe die Pins im Xilinx Pace definiert.Oder meinst du damit was anderes.
Im "View Design Summary" liegen sie auch so wie sie sein sollten.
Der Takt ist 40ns.Ist das zu schnell?Aber selbst wenn müssten sie doch 
dauernd leuchten.Kann ja mal den Takt runter nehmen.Hoffe sie BRENNEN 
dann. :-)

MFG
Christian

von Christian Schiffner (Gast)


Lesenswert?

Hallo nochmal,
wenn ich den Takt mit 1ms probiere,welche Constrains(Offset)müsste man
auswählen?

MFG
Christian

von Falk (Gast)


Lesenswert?

@Christian Schiffner

>Hallo nochmal,
>wenn ich den Takt mit 1ms probiere,welche Constrains(Offset)müsste man
>auswählen?

Für sowas einfaches brauchst du keine Constraints. Hast du die Pins 
überprüft (im PAD Report) ?

MFG
Falk

von Sascha (Gast)


Lesenswert?

Dein Clock ist am falschen Pin, siehe hier:

http://www.mikrocontroller.net/articles/Xilinx_ISE_Tutorial

von Christian Schiffner (Gast)


Lesenswert?

Super.Danke euch.
Funktioniert.Lichtlein leuchten.So ein Tutorial hatte ich gesucht.
Mir wurde nur ein Tutorial mit dem falschen Package mitgeschickt und bei
Xilinx hatte ich kein entsprechendes gefunden.Hatte diesselbe 
Pinbelegung
auch schon,nur Direction hatte nicht gepasst.
Die 50MHz ist doch die Frequenz des On-board Oszillators?Oder ist sie 
auch
gleichzeitig bei dir die des Counters.Hast du eine Idee wie man ein 
soein
Divider aufbauen kann?

MFG
Christian

von Falk (Gast)


Lesenswert?

@Christian Schiffner

> gleichzeitig bei dir die des Counters.Hast du eine Idee wie man ein
> soein
> Divider aufbauen kann?

Na das ist ja wohl das einfachste. Einfach deinen Zähler auf 24 Bit 
aufbohren und die LEDs an Bit 20..23 hängen.

MfG
Falk

von Christian Schiffner (Gast)


Lesenswert?

Ach so.Danke

MFG
Christian

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.