mikrocontroller.net

Forum: FPGA, VHDL & Co. Webpack Clock verunden


Autor: Binnesmann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

habe als erstes Projekt mit Xilinx Webpack einen 18 Bit Up Counter mit
3 verschiedenen Clocks gebastelt, der in der Simulation auch gut läuft.
Da ich hiermit ein SRAM ansteuern will und 2 der Clocks zum Schreiben
sind und die 3. Clock zum lesen, muß ich auch das RD/WR des Rams
bedienen. Leider klappt das nicht mit

assign RD_WR = Clock & <Interner Merker>

Da bekomme ich entweder Fehler oder in der Simulation bekomme ich erst
einen Flankenwechsel nach Ablauf des zählens. Zum zählen arbeite ich
mit posedge. Ich habe es dann auch schon mit

allways @(negedge Clock)

probiert. Das klappt leider auch nicht.

Kann mir jemand bitte sagen warum?? Vielleicht auch in NewBy
verständlicher Sprache.

Gute Nacht

Binnesmann

Autor: Hagen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es ist immer gut wenn du deinen VHDL postest, hier wurde noch niemand
ausgelacht falls der Source nicht so perfekt ist.

Denn deine Aussage "Vielleicht auch in NewBy verständlicher Sprache"
trifft auch im Umgekehrten zu. Ich kann nämlich deinen Ausführung nicht
so recht folgen.

Gruß Hagen

Autor: Sven Johannes (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin...

Warum drei Takte? Asynchrone Designs sind mit Vorsicht zu geniessen.
Außerdem solten Takte niemals kombinatorisch aud Logik erzeugt werden,
das provoziert ernsthaften Ärger.

Mit dem Source oder der Aufgabenstellung könte man mehr sagen.

--
 Sven Johannes

Autor: Binnesmann (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Mahlzeit,

sorry, war wohl etwas spät gestern und das hätte ich mir auch denken
können. Im Anhang ist jetzt mein Verilog File.

Zur Anwandung: Ich baue mir gerade einen einfachen Logik Analyser. Dazu
habe ich 15 ns SRAM mit jeweils 128k. 4 Stück werden von dem Zähler
durchgezählt, jeweils mit den eigenen CS Leitungen. Das scheint auch zu
laufen, bis jetzt nur mit den ersten 16 Speicherzellen, das die
Simualtion nicht zu groß wird.

3 Clocks brauche ich, um eine eigene 50 MHz Clock zu haben, eine ext.
Clock aus der Schaltung und eine Leseclock. Zwischen den Clocks kann
ich wählen, was passieren soll und eine Veriegelung gegen die anderen
läuft auch. Jetzt muß nur noch während des Schreibens das /WR Signal
erzeugt werden. Dazu stehen noch meine Versuche teilweise ausgemarkt im
Source.

Ich hoffe das war jetzt so halbwegs verständlich. Hier geht es nur um
den Zähler, der von der Triggerung einen Impuls bekommt, und dann den
Speicher bis zum Ende durchzählt. Während des Durchlaufs gibt es nach
extern ein Busy Signal und der Zähler ist bis zum Speicherende
gesperrt.

Gruß Binnesmann

Autor: Binnesmann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo nochmal,


ich habe jetzt ein wenig über das Design nachgedacht. Ich habe nur noch
eine Lese- und eine Schreibclock. Trotz allem möchte ich aber die WR und
die OE Leitung des RAMs bedienen. Das heißt, mit jeder Positiven Flanke
der Clock wird hochgezählt und an den Adressleitungen ausgegeben. Jetzt
brauche ich aber noch eine Verknüpfung von Write_Clock oder Read_Clock
um WR und OE zu erzeugen. Aber es muss doch zu machen sein, das ein
Teil des Codes den Zähler erzeugt und ein anderer Teil einfach nur ein
Logisches UND erzeugt. Oder bin ich auf dem Holzweg?? Ich habe in den
Code Examples bei Xilinx geschaut, da gibt es ein

always
begin
   <ausgang> = <eingang1> & <eingang2>
end

Warum kann ich das nicht mit einbinden?? Oder denke ich da zu umwegig?

Gruß Binnesmann

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.