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
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
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
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
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.