www.mikrocontroller.net

Forum: FPGA, VHDL & Co. CPLD - Projekt


Autor: Siegfried Saueressig (dieleena)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo, guten Abend
@Holger
habe mal die Anzahl der I/O Pin's überschlagen. Liege bei ca. 100 Pin's, 
wobei davon 32 Pin's Ausgäge sind, die Optokoppler treiben müssen.
Wenn ich die Elemente in TTL's aufliste, benötige ich folgende.

1.   32 x 273
2.   16 x 686
3.   16 x 155
4.   2  x 244
5.   1  x 245
6.   1  x 688
7.   32 x 20
8.   32 x 04
9.   32 x 08
10.  32 x 00

Wenn ich dies in 2 x I/O und 1 x Steuerung unterteile, benötige ich 
immer noch max. 48 I/O Pin's
Wenn ich dies in 4 x I/O und 1 x Steuerung unterteile, benötige ich 
immer noch max. 36 I/O Pin's

Welchen XILINX ist dazu geeignet?
Ich habe bereits etwas in XILINX gestöbert, finde aber nicht alle dieser 
"TTL-Elemente". Muß ich diese einzel nachbilden ?

Wenn ich hier einsteige, möchte ich zumindest am Anfang dieses mit der 
Grafischen Oberfläche (Schaltplan-Layout) beginnen.

Habe ich überhaupt eine Chance?

@Forumsteilnehmer
Wer weiß zufällig, ob es in Raum 55743 Idar-Oberstein Schul-Bereiche 
gibt für Informatik. Würde gerne mich mit einem/mehreren erfahreren 
Menschen kurzschließen. Kaiserslautern ist zu weit.

Gruß Siegfried

: Gesperrt durch Moderator
Autor: Falk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Siegfried Saueressig

>Welchen XILINX ist dazu geeignet?

Einer Mit 100 Macrozellen und mehr, z.B. XC95144XL.

>Ich habe bereits etwas in XILINX gestöbert, finde aber nicht alle dieser
>"TTL-Elemente". Muß ich diese einzel nachbilden ?

Ja, dabeikannst du deine Funktionen maßschneidern, was ggf. auch noch 
Resourcen spart.

>Habe ich überhaupt eine Chance?

Du hast keine Chance, nutze sie ;-)

MFG
Falk

Autor: Siegfried Saueressig (dieleena)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
Habe mir die Datenblätter von XC9532, XC9572 und XC95144 
heruntergeladen.
Für den Anfang möchte ich gerne mit PLCC Gehäuse arbeite.
Holger hatte mir eine kurze Anleitung für den XC9532 geschrieben. Frage, 
kann ich den vorgegebene Typ im Projekt nachträglich ändern, wenn pin, 
macro, gates nicht reichen sollten?
Wer kann mir erklären, wie ich z.B. einen 8Bit-Vergleicher mit kleiner 
und gleich Ausgang erstelle.
Gruß Siegfried

Autor: Siegfried Saueressig (dieleena)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo, guten abend

Bin bald am ende mit meiner Weisheit. Komme in Xilinx nicht weiter. Wo 
finde ich Link's mit Beispiele. Habe bisher mir Beispiele angesehen, und 
daraus gelernt.

gruß Siegfried

Autor: Siegfried Saueressig (dieleena)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo,
wo bekomme ich Dokumentation über die ABEL Befehle / Schreibweise her?
Gruß Siegfried

Autor: Klaus Falser (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oh nein, wenn Du schon eine HW-Programmiersprache lernst, dann solltest 
Du VHDL (oder Verilog) lernen.
ABEL ist wirklich nicht mehr aktuell.
Mit VHDL ist auch den 8 Bit-Vergleicher ein Klacks.

Zu den Dir gewählten Bausteinen :
XC9532, XC9572 sind wirklich sehr klein.
Wenn Du wirklich 32 x ein 74273 brauchst (= 32 FF) dann brauchst Du mehr 
als 32 Makrozellen.
Und wenn Du 100 I/0's brauchst, dann sind es mindestens 100 Macrozellen.
Erstelle erst einmal dein Design, dann siehst Du wie groß es wird.

Ob Du die 32 Optokoppler alle direkt an die Pin's anschließen kannst, 
ist auch nicht so sicher. Bei ca. 5 mA pro Optokoppler sind dies 160 mA. 
Ich habe zwar auf die Schnelle keinen maximalen I/O Summenstrom 
gefunden, ich würde bei diese Anzahl aber die Optokoppler über 
Openkollector Treiber anschließen.

Und wie ich schon einmal geschrieben habe, solltest Du die XL Familie
verwenden.

Grüße
Klaus

Autor: Siegfried Saueressig (dieleena)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo,
für welche Programmiersprache ich mich entscheide, muß ich anhand der 
gefundene Informationen, auswählen. Für meine Bedürfnisse wäre eine 
einfach zu erlernende genügen. Mir persönlich ist eine Schematic am 
liebsten.
Anhand der vielen Elemente muß ich das ganze Projekt in 3 Teile 
zerlegen.
( 2 x Output-Logic und 1 x Steuerungs-Logic )
Zu den Optokoppler ist folgendes zu sagen. Es sind bei einen Output-Chip 
maximal 16 Opto aktiv, oder bei 2 Output-Chip maximal 8 aktiv. Sollte 
laut Datenblatt der maximale I/O Summenstrom überschritten werden, 
schalte ich Treiber (ULN2803) nach.
Was mir zur Zeit noch fehlt, ist die Dokumentation über die 
Programmiersprache und Info's für die Chip's z.B. (Pinbelegung, 
Gehäuseform).
Ich möchte mir auch nicht mehrere Bücher kaufen, um dann auf eine 
Programmiersprache zu nutzen.
Auch Anfänger müssen klein anfangen.
Gruß Siegfried

Autor: Klaus Falser (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe nur gesagt, daß ich Dir VHDL empfehlen würde anstelle von ABEL.
VHDL und ABEL sind ein bischen wie C und Assembler, und wenn man ein 
Anfänger ist, dann ist Assembler auch nicht unbedingt einfacher zu 
lernen als C.

Mit VHDL sind eben gewisse Dinge (wie z.B. der 8 Bit Comparator) sehr 
einfach, und in ABEL sehr kompliziert.

Informationen zu den Bauformen und Chips gibt auf der Homepage von 
Xilinx.
PLCC Gehäuse würde ich nicht empfehlen, die TQFP Gehäuse sind genauso 
leicht zu löten und bieten mehr I/O's.

Klaus

Autor: Klaus Falser (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ABEL Dokumentation gibt es auch auf der Xilinx Homepage.

http://toolbox.xilinx.com/docsan/xilinx7/help/iseg...

Grüße
Klaus

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Klaus Falser wrote:

> Mit VHDL sind eben gewisse Dinge (wie z.B. der 8 Bit Comparator) sehr
> einfach, und in ABEL sehr kompliziert.


Ist wohl reine Ansichtssache, ich finde einen Vergleicher in Abel 
überhaupt nicht kompliziert:


 COMMAND        = [DI6..DI0];           "IEEE-Commands

Equations

 LAG            = (COMMAND >= ^h20) & (COMMAND < ^h40);
 UNL            = COMMAND == ^b0111111;


Die Syntax ist C ähnlich.

Dagegen finde ich VHDL sehr kompliziert.


Peter

Autor: Siegfried Saueressig (dieleena)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo,
suche Lieferanten für Xilinx XC95..XL
auser Reichelt habe ich nichts gefunden, und dieser bietet auch nicht 
alle Modelle.
Gruß Siegfried

Autor: Siegfried Saueressig (dieleena)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo,
ich nutze Xilinx Web Pack 9.1  Gibt es in dieser Version einen 
Simulator.
Wenn ja, wo wird dieser gestartet. Muß bei Simulator der Hardware Chip 
angeschlossen sein?
Gruß Siegfried

Autor: na (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Simulator ModelSim ist optional dabei. Eingestellt werden muss die 
Einbindung für das aktuelle Design entweder am Anfang oder nachträglich, 
durch Doppelklick auf die Chipbezeichnung im sources-Fenster. Ebenfalls 
dort kann man dann oben statt Synthesis/Implementation den Punkt 
Behavioral Simulation wählen. Dann das Modul auswählen (es empfiehlt 
sich eine testbench) und im processes-Fenster die Simulation starten.
Der Hardware-Chip hat erstmal nichts mit der Simulation zu tun. 
Simulation und Test (auf dem Chip) sind getrennt zu betrachten. Außerdem 
kann man statt einer Behavioral Simulation später eine 
Post-Fit-Simulation vornehmen, welche bestimmte Verzögerungszeiten mit 
einrechnet, die auf dem FPGA durch Verdrahtung usw. auftreten.

Autor: Holger Harten (holger-h-hennef) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Siegfried
Hier ist auch die Simulation mit drin.

Getht nicht: http://toolbox.xilinx.com/docsan/xilinx7/books/doc...

Gehe auf den Thread "Gleichung mit GAL" von dir.
ca. 10 Blöcke runter
von Rick Dangerous
da is der Link her.
------------------------------------------------------------------

Schau mal in den Thread
Synthesefähiger Code
Da ist ein VHDL pdf drin.

Gruss, Holger.

Autor: Siegfried Saueressig (dieleena)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo guten morgen,
bin am verzweifeln. Wenn ich bei Xilinx "Create Account and Password" 
anlegen möchte, wird eine "USER - ID" benötigt. Wo bekomme ich diese 
her?
Gruß Siegfried

Autor: Alban (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn ich mich recht entsinne suchst du dir die aus. Die brauchst du dann 
in Zukunft immer um dich einzuloggen.

So wie "dieleena" hier.

Gruß,

Alban

Autor: Siegfried Saueressig (dieleena)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo, guten morgen
habe nun endlich von Xilinx die Dateien runterzuladen. (Free-Version)
Sind insgesamt 4 Stück.
1.  WebPACK_WebInstall_91i
2.  WebPACK_SFD_91i
3.  ProgTools_SFD_91i
4.  mxe_3_6.2c
Ist eine gewisse Reihenfolge einzuhalten, auser das 
WebPACK_WebInstall_91i als erste installiert werden sollte?
Gruß Siegfried

Autor: Klaus Falser (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du hast ein paar Dateien zuviel heruntergeladen.
WebInstall holt die Programmteile aus dem Internet, aber Du hast die eh 
schon das SFD (Single File Downlaod) heruntergeladen.
Auch das Programmer Tool (Impact) ist schon dabei.

Also zuerst WebPACK_SFD_91i.exe und dann mxe_3_6.2c.exe.
Du brauchst aber, glaube ich, noch die Simulation Libraries falls Du 
Post-Synthese und Post-Fit (Timing) Simulation machen willst.
Das kommt aber später.

Klaus

Autor: Siegfried Saueressig (dieleena)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
die genannte 4 Zip Dateilen ergaben sich nach der Registrierung.
Hatte vergessen, das ich davor auch dies 
"mxe6.2c_9.1sp1_simulation_libraries" heruntergeladen habe. Habe bereits 
alle Zip entpackt. War einkaufen und habe bis jetzt noch keine 
Installation vorgenommen.
Wenn es dir nichts ausmacht, sage bitte mir wie ich vorgehen soll.
Die Simulation sollte dabei sein.
Noch eine Frage, diese "Free Version", wie lange kann ich diese nutzen ?
Gruß Siegfried

Autor: Klaus Falser (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie gesagt, zuerst mit WebPACK_SFD_91i.exe das WebPack 9.1 installieren.
Dabei brauchst Du vielleicht einen Registrierschlüssel, den kannst Du 
während der Installation über Internet holen.
Dann den ModelSim Simulator installieren.
Zum Schluß die Libraries.
Dann fängt der Spaß an.

Klaus

Autor: Siegfried Saueressig (dieleena)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo,
werde für heute schluß machen. Morgen ist noch ein Tag, und dann mit 
neuen Kräfte und einem freiem Kopf beginnen. Melde mich wieder. Vorerst 
vielen Dank.
Gruß Siegfried

Autor: Siegfried Saueressig (dieleena)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo,
habe die Programme installiert. Webpack 9.1 und ModelSim funktionieren.
Mit ModelSim komme ich noch nict zurecht. Dies ist aber zu Zeit noch 
nicht wichtig.
Möchte mal einfach fragen, ob Version 9.1 Probleme bereitet. Muß sagen, 
das ich sehr sauer bin.
Habe folgende Zeilen geschrieben.

MODULE EndTreib

S0 pin 1;
S1 pin 2;
!L0 pin 3;
!L1 pin 4;

 EQUATIONS

L0 = S0 & S1;
L1 = S0 # S1;

END

Habe dann Compile Design; Translate; Fit; Generate Programming File mit 
Erfolg ausgeführt
Danach habe ich den Code abgeändert.
MODULE EndTreib

S0 pin 1;
S1 pin 2;
!L0 pin 3;
!L1 pin 4;

A3..A0 pin 65..68;
A = [A3..A0];
B3..B0 pin 69..72;
B = [B3..B0];
NE,EQ,GT,LT pin 43..46 istype 'com';
No,Yes = 0,1;

 EQUATIONS

L0 = S0 & S1;
L1 = S0 # S1;

EQ = A == B;
NE = !(A == B);
GT = A > B;
LT = !((A > B) # (A == B));

END
Jetzt bekomme ich in Compile Design Fehlermeldungen. Gehe davon aus, das 
noch etwas fehlt.
Jetzt kommt der Hammer.
Stelle ich den Code wie im ersten Beispiel wieder her, habe ich die 
gleichen Fehlermeldungen wie im zweitem Beispiel. Auch das Programm neu 
starten, spielt auch keine Rolle.

Bin ich dann so doof, um ein paar Zeilen Code zu schreiben oder zu 
entfernen, und die Button zu klicken?

Gruß Siegfried

Autor: Holger Harten (holger-h-hennef) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du must weg von dem ABEL Zeug.
Schau dir mal das an, da ist ein Decoder in VHDL, mit SOURCE,Simulation
,+BILD
Lernen mit Beispielen.
http://esd.cs.ucr.edu/labs/tutorial/

Autor: Siegfried Saueressig (dieleena)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich akzeptiere gerne dies. Aber trotzdem ist doch hier war faul.
Gruß Siegfried

Autor: Siegfried Saueressig (dieleena)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo, guten Abend
wo bekomme ich eine Xilinx ISE Version 7.x oder 8.x her? Bei Xilinx gibt 
es nur noch 9.1 und Updates. Gehe stark davon aus, das mit der 9.x etwas 
nicht stimmt. Habe ein Beispiel von der University of Pennsylvania in 
Schematic erstellt, und bekomme fast die gleichen Fehler.
Gruß Siegfried

Autor: Siegfried Saueressig (dieleena)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
habe im Forum die Versionen 7.1 mit SP 4 und 8.2 mit SP 3 gefunden. bin 
am laden. Welche Version ist zu empfehlen ?
Werde vor der Installation eine Systemrückstellung durchführen, und 
hoffen, das Version 9.1 komplett entfernt ist.
Gruß Siegfried

Autor: Dirk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Ise Installation gräbt sich nicht allzutief in das System ein.
Systemrückstellung mußt Du nicht machen, nur wenn Du gefragt wirst den 
vorhandenen Parallelport Treiber überschreiben.



Autor: Holger Harten (holger-h-hennef) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Siegfried Saueressig (dieleena)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo, guten abend
habe den Rat der Forumsteimehmer angenommen, und werde meine Code in 
VHDL schreiben.

habe folgenden Code aus einem Beispiel
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;

---- Uncomment the following library declaration if instantiating
---- any Xilinx primitives in this code.
--library UNISIM;
--use UNISIM.VComponents.all;

entity Test22 is
    Port ( clk : in  STD_LOGIC;
           rst : in  STD_LOGIC;
           zaehlerstand : out  STD_LOGIC_VECTOR (3 downto 0));
end Test22;

architecture Behavioral of Test22 is
begin
process(clk, rst)
variable Z_INTERN : STD_LOGIC_VECTOR(3 downto 0):="0000";
begin
  if rst = '1' then
    Z_INTERN := "0000";
  else
    if clk'event and clk = '1' then
      Z_INTERN := "0000";
    end if;
  end if;
  zaehlerstand <= Z_INTERN;
end process;
end Behavioral;

wer kann mir die folgene Fehler erklären? bei Synthesize-XSL wird ein 
Ausrufezeichen gesetzt.
WARNING:Cpld:1006 - Design 'Test22' has no inputs.
WARNING:Cpld:997 - Error during loading TIMESPEC AUTO_TS_F2F =
WARNING:Cpld:310 - Cannot apply TIMESPEC AUTO_TS_P2P =
WARNING:Cpld:997 - Error during loading TIMESPEC AUTO_TS_P2F =
WARNING:Cpld:310 - Cannot apply TIMESPEC AUTO_TS_F2P =

eine weitere Frage, wo und wann weise ich einem Sinal mit, an welchem 
Pin dies angeschlossen ist. Kann ich nachträglich die Pin's tauschen, 
sodas im Layout wenig Kreuzungen existiern?
Gruß Siegfried


Autor: Dirk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bei jedem Clock setzt Du den Zähler auf 0, ich denke aber Du willst ihn 
um 1 erhöhen.
z_intern:=z_intern+1;
Zu den Fehler kann ich Dir leider nicht sagen.
Die Auswahl Pine am CPLD kannst Du jederzeit ändern.Das geschieht im 
Webpack
im Prozessfenster mit user constraints->assign package pins.

Grüße

Dirk

Autor: Klaus Falser (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Fehler sind nur Warnings, aber trotzdem.
Dein Zähler wird ja nie erhöht, deshalb wird alles wegoptimiert und 
zaehlerstand fix auf 0 gesetzt.

Tips zum VHDL-Code :
- Nicht

use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;

verwenden, sondern

use IEEE.Numeric_std.ALL;

Std_logic_arith ist veraltet.
- die Funktion "rising_edge(Clk)" anstelle von "clk'event and clk = '1'" 
werwenden. Ist leichter lesbar.

Aber prinzipiell ist der Code richtig,

> Kann ich nachträglich die Pin's tauschen,
> sodas im Layout wenig Kreuzungen existiern?

Ja, normalerweise schon, außer wenn das CPLD oder FPGA sehr, sehr voll 
ist, oder in ein paar anderen Spezialfällen. Die Taktleitungen solltest 
Du aber immer an die speziellen, dafür vorgesehenen Pins führen (GCLK).

Klaus



Autor: Siegfried Saueressig (dieleena)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
sind meine erste Schritte, Beispiel ist aus "CPLD-Implementierung einer 
Schaltung mittels XILINX-WEB-PACK
--
habe den Cod so geändert. Jetzt leider 4 Fehlermeldungen.
--
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.Numeric_std.ALL;

---- Uncomment the following library declaration if instantiating
---- any Xilinx primitives in this code.
--library UNISIM;
--use UNISIM.VComponents.all;

entity Test22 is
    Port ( clk : in  STD_LOGIC;
           rst : in  STD_LOGIC;
           zaehlerstand : out  STD_LOGIC_VECTOR (3 downto 0));
end Test22;

architecture Behavioral of Test22 is

begin
process(clk, rst)
variable Z_INTERN : STD_LOGIC_VECTOR(3 downto 0):="0000";

begin
  if rst = '1' then
    Z_INTERN := "0000";
  elsif(rising_edge(clk)) then
    Z_INTERN := Z_INTERN +1;
  end if;

end process;
zaehlerstand <= Z_INTERN;
end Behavioral;

die spezielle Clock-Pin würde ich gerne nutzen, weis aber noch nicht 
wie.

Gruß Siegfried

Autor: Klaus Falser (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Folgende Zeilem ändern :
  variable Z_INTERN : STD_LOGIC_VECTOR(3 downto 0):="0000";
->
  variable Z_INTERN : UNSIGNED(3 downto 0):="0000";

  elsif(rising_edge(clk)) then
->
  elsif rising_edge(clk) then

  zaehlerstand <= Z_INTERN;
->
  zaehlerstand <= STD_LOGIC_VECTOR(Z_INTERN);

Welche Pins die GCLK Pins sind, steht im Datenblatt des vom Dir 
verwendeten Baustein. Den Quarz-Oszillator mit einem von diesen Pins 
verbinden.



Autor: Rick Dangerus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Z_INTERN := Z_INTERN + 1;

muss lauten:
Z_INTERN := std_logic_vector( unsigned(Z_INTERN) + 1);

Autor: Siegfried Saueressig (dieleena)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo,

-->  keine Erfolg  <--

Line 50. Type of Z_INTERN is incompatible with type of 'conversion to 
STD_LOGIC_VECTOR'.
Line 54. Undefined symbol 'Z_INTERN'
Line 54. Z_INTERN: Undefined symbol (last report in this block)


library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.Numeric_std.ALL;

--use IEEE.STD_LOGIC_ARITH.ALL;
--use IEEE.STD_LOGIC_UNSIGNED.ALL;

---- Uncomment the following library declaration if instantiating
---- any Xilinx primitives in this code.
--library UNISIM;
--use UNISIM.VComponents.all;

entity Test22 is
    Port ( clk : in  STD_LOGIC;
           rst : in  STD_LOGIC;
           zaehlerstand : out  STD_LOGIC_VECTOR (3 downto 0));
end Test22;

architecture Behavioral of Test22 is

begin

process(clk, rst)
variable Z_INTERN : UNSIGNED(3 downto 0):="0000";

begin
  if rst = '1' then
    Z_INTERN := "0000";
  elsif rising_edge(clk) then
    Z_INTERN := STD_LOGIC_VECTOR( unsigned(Z_INTERN) + 1);
  end if;
end process;

zaehlerstand <= STD_LOGIC_VECTOR(Z_INTERN);

end Behavioral;


--Folgende Zeilem ändern :
--  variable Z_INTERN : STD_LOGIC_VECTOR(3 downto 0):="0000";
--->
--  variable Z_INTERN : UNSIGNED(3 downto 0):="0000";
--  elsif(rising_edge(clk)) then
--->
--  elsif rising_edge(clk) then
--
--  zaehlerstand <= Z_INTERN;
--->
--  zaehlerstand <= STD_LOGIC_VECTOR(Z_INTERN);
--
--Welche Pins die GCLK Pins sind, steht im Datenblatt des vom Dir
--verwendeten Baustein. Den Quarz-Oszillator mit einem von diesen Pins
--verbinden.


--Z_INTERN := Z_INTERN + 1;
--
--muss lauten:Z_INTERN := std_logic_vector( unsigned(Z_INTERN) + 1);

Gruß Siegfried

Autor: Dirk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das brauchst Du nicht mehr:
Z_INTERN := STD_LOGIC_VECTOR( unsigned(Z_INTERN) + 1);

da der Datentyp von z_intern nun kein std_logic_vector ist.

da reicht dann:Z_INTERN := Z_INTERN + 1;

Gruß

Dirk

Autor: Siegfried Saueressig (dieleena)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
die funktioniert, Danke.
allerdings mit den Pin habe ich noch nicht verstanden. Die Pins des 
"zaehlerstand" sind sehr zerstreut.  Pin 1, 17, 44, 69.
Wo finde ich Beispiele, z.B. für Zähler, Latch mit CLR, usw.


library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.Numeric_std.ALL;

entity Test22 is
    Port ( clk : in  STD_LOGIC;
           rst : in  STD_LOGIC;
           zaehlerstand : out  STD_LOGIC_VECTOR (3 downto 0));
end Test22;

architecture Behavioral of Test22 is

begin

process(clk, rst)
variable Z_INTERN : UNSIGNED(3 downto 0):="0000";

begin
  if rst = '1' then
    Z_INTERN := "0000";
  elsif rising_edge(clk) then
    Z_INTERN := Z_INTERN + 1;
  end if;
zaehlerstand <= STD_LOGIC_VECTOR(Z_INTERN);
end process;

end Behavioral;


Gruß Siegfried

Autor: Klaus Falser (kfalser)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
In der ISE gibt es einen Menu Punkt mit Code Templates, dort findest Du 
Beispiele.

Wenn Du überhaupt keine Angaben über die Pins machts, wählt die ISE sie 
frei, sie werden verstreut.
Ist Dein Design einmal durchgelaufen (Fitted), dann kannst Du anfangen 
die Pins zuzuweisen, wie es Dir passt (und wie es dem Fitter möglich 
ist).
Unter "User Constraints" -> Assign Package Pins".

Autor: Siegfried Saueressig (dieleena)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo, guten morgen
habe ein neues Projekt erstellt. Habe allerdings beim erstellen der 
Source keine Signale(Pin) definiert. Danach ein paar Zeilen Code und 
dann compiliert.
Anschließend "User Constraints" -> Assign Package Pins" aufgerufen.
Habe dann eine dreigeteilte Oberfläche.
oben links:  Design Browser
unten links:  Design Object List I/O Pins
rechts:  Package Pin for xc9572-PC84-7

Zur Pin vergabe finde ich noch keinen Hinweis. Wie muß ich weiter 
vorgehen ?

Gruß Siegfried

Autor: Rick Dangerus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich lege mir die UCF-Datei mit den Constraints immer per Hand an:
# Input
NET RESET LOC = A1;
NET CLK LOC = B2;

# Output
NET LED LOC = C3 | DRIVE = 2;
Welche Constraints bei Deinem CPLD funktionieren steht in irgendeiner 
Doku.

Beispiele wie Zähler etc. aufgebaut werden stehen im "XST User Guide" 
(xst.pdf). Es lohnt sich die 500 Seiten mal zu überfliegen.

Rick

Autor: Siegfried Saueressig (dieleena)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
guter Tip. Wenn auch Duko und die Schreibweise der Profi unterschiedlich 
sind, eine gute Quelle um nach zu lesen.
Punkt Signal und Pin Vergabe habe ich noch nicht verstanden.
Ich glaube aber, das dies bei mir in der nächsten Zeit funktioniert, da 
doch die Forumsteilnehmer einen Anfänger nicht im Regen stehen lassen.
Gruß Siegfried

Autor: Klaus Falser (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zur Benutzung von PACE (zum Zuweisen von Pins an Signale)
Im Fenster "Package Pins" siehst Du den Bauteil mit den Pins (Haxn auf 
Süddeutsch).
Nimm die Signale aus einem der linken Fenster und ziehe in rechte 
Fenster an den von dir gewählten freien Pin. 6-eckige Symbole sind GCLK 
Pins, da sollten die Taktleitungen hin.

Autor: Siegfried Saueressig (dieleena)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo, guten abend
wieviele Sterne darf ich dir vergeben. An diese einfache Drag and Drop 
Version hätte ich mir noch einige Haare ausgerissen.
Für die und alle andere Informationen, vielen Dank. Der Dank ist auch an 
alle andere Forumsteilnehmer gerichtet.
Für heute ist erst mal Schluß.
Gruß Siegfried

Autor: afsoon (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
heloo
 please help!!!

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;

---- Uncomment the following library declaration if instantiating
---- any Xilinx primitives in this code.
--library UNISIM;
--use UNISIM.VComponents.all;

entity multiplexer is

port(a:in bit_vector(3 downto 0);
     z:out bit;
     s:in bit_vector(1 downto 0));

end multiplexer;

architecture Behavioral of multiplexer is
begin
z<= a(0) when s="00" else
    a(1) when s="01" else
    a(2) when s="10" else
    a(3);
end  Behavioral;




warning: cpld:997 - Error during loading TIMESPEC AUTO_TS_F2F =

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
afsoon schrieb:
> heloo
>  please help!!!
This is NOT YOUR thread.
This is NOT the englisch forum.

So start a new thread with a useful(!!) error description (necessary 
information at least: which part of which toolchain for which target 
generates the message) over there:
http://embdev.net/forum/fpga-vhdl-verilog

Dieser Beitrag ist gesperrt und kann nicht beantwortet werden.