hi, kann mir jemand tipps geben wie ich mit dem fpga vom spartan 3e starter kit am DAC verschiedene signale ausgebe????? bitte euch un wirkungsvolle vorschläge für anfänger... dankee
Kann mir jemand Tips geben wie ich reich werde? Bitte um wirkungsvolle Ratschläge für Arme. dankee
Einfach den Suchbegriff modifizieren, z.B. http://lmgtfy.com/?q=rechnerarchitektur http://lmgtfy.com/?q=sonstetwas
Hallo, ich habe vor einiger Zeit mal ein Modell dafür geschrieben, ist vielleicht nicht das beste aber es funktioniert. Einfach die Ports verbinden und über DAC_DATA0-3 die gewünschten Werte auf den DAC übertragen. Der CLK Teiler ist für 50MHz Systgemclock programmiert. Ggf. ändern.
Thomas Thomas schrieb: > aber es funktioniert Glück gehabt. Takte werden für FPGAs nicht so erzeugt:
1 | if rising_edge(sys_clk) then |
2 | if clk_counter = 10 then |
3 | clk_slow <= not clk_slow; |
4 | :
|
Wie soll den der clk_slow auf ein Taktnetz kommen? Ergo wird dieser Takt mit normalen Routingressourcen an die beteiligten Komponenten verdrahtet. Das erhöht den Skew und macht das Design eher unzuverlässig...
Hallo Lothar, leider verstehe ich nicht so genau was du in deiner Antwort erklärt hast. Ich habe meine Teiler auch immer noch der Struktur aufgebaut. Kannst du etwas genauer erleutern was daran falsch ist ? Danke so habe ich das (bis jetzt?) gemacht wait until rising_edge(Clock); if (ZAEHLER = IRGENDWAS) then ZAEHLER <= 0; STATUS <= not STATUS ; else ZAEHLER <= ZAEHLER + 1; end if; Grüße Freddy
@freddy: Der Teiler an sich ist nicht falsch. Nur Dein Signal muss bei Xilix z.B. noch auf einen BUFG gefuehrt werden, damit wieder das globale (lies: geeignete) Taktnetzwerk verwendet wird. Geschickter ist es, enables zu verwenden. Rick
Freddy schrieb: > wait until rising_edge(Clock); > if (ZAEHLER = IRGENDWAS) then > ZAEHLER <= 0; > STATUS <= not STATUS ; > else > ZAEHLER <= ZAEHLER + 1; > end if; Das passt schon, solange da nicht irgendwo steht rising_edge(STATUS) oder falling_edge(STATUS) oder STATUS'event Denn dann hättest du da aus dem Status einen Takt hergezaubert. Und es ist ganz einfach: in einem schönen einfachen Design steht vor einem 'event (und dieses Attribut ist ja auch in rising_edge() und falling_edge() verwendet) immer das selbe (Takt-)Signal. Und wenns dann komplett übersichtlich werden soll, steht auch immer nur rising_edge() oder immmer falling_edge() da, aber keine Mischungen der beiden. Wenn dein Takt z.B. clock heißt, sieht jeder getaktete Prozess so aus:
1 | process begin |
2 | wait until rising_edge(clock); |
3 | :
|
4 | end process; |
Oder meinetwegen auch so:
1 | process (clk) begin |
2 | if rising_edge(clock) then |
3 | :
|
4 | end if; |
5 | end process; |
hi Thomas Thomas danke für deine hilfe erstmal.. hab alles eingestellt und das program laufen lassen... aber ich krieg kein signal an meinen Ausgängen. beim kompilieren werden mir keine fehler angeziegt.. woran kann das den liegen?? lg annika
annika schrieb: > woran kann das den liegen?? Viele Wege führen nach Rom. Was liefert denn deine Simulation, die du sicher durchgeführt hast?
annika schrieb: > kein signal an meinen Ausgängen. An welchen Ausgängen? An den FPGA-Pins oder am DAC-Ausgang?
an den dac-ausgängen krieg ich nicht die gewünschten signale... nur rauschen...
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.