Hallo zusammen. Ich habe damit begonnen, mich zur Ablenkung mit fpga zu beschäftigen..... Nun auf jeden Fall hoffe ich hier Impulse und Hilfe zu finden. Ich benutze ein Nexys2 Board von Digilent mit Spartan3E. VGA ist langweilig und anscheinend macht das jeder Student... dennoch ist es motivierend etwas am Bildschirm zu finden und kann nachher beliebig komplizierter werden um neue Techniken zu lernen. So habe ich mich dafür entschieden. Einige Wochen uc.net und Internet Studium habe ich hinter mir und jetzt will ich mal konkreter werden. Es gibt aber Probleme. Ich habe meinen Code angehängt. Vielleicht findet sich ja jemand der mir schnell helfen kann....bei folgendem Problem: ich gabe ein Schachbrett aus Linien aus. (Speicher, Framebuffer oder Linien sind mir viel zu kompliziert ich weiß noch nich einmal wie ich vorgehen würde) Dabei fällt mir auf, dass ich einige Senkrechte Linien, also bei einem festen x verscmiert sehe. Das ist bei 32 px Breite nicht da, bei 16 sehe ich einen und bei 8 3. Wobei im letzten Fall es so scheint, als ob die Nachbarpixel auch etwas flattern, also als ob da alle ca 300 Pixel eine Art Störung sichtbar ist. Ich habe im isim einen Takt auf das Design gegeben und nachgehalten ob da etwas außer Plan zu sein scheint. Wie zu erwarten sehe ich das da nicht. Meine (erste) Frage an euch: Seht ihr einen grundlegenden Fehler im Design? Was kann/sollte ich prinzipiell ändern? Oder kann es am Interpolieren liegen? VGA 640x480 ist ja auch für ein altes 19'' tft grenzwertig. Ich habe den 50 MHz TAkt halbiert. 25 MHz Pixeltakt schien mir für VGA zu passen. Was tun.
Christian F schrieb: > als ob die Nachbarpixel auch etwas flattern, also als ob da alle ca 300 > Pixel eine Art Störung sichtbar ist. Welche Auflösung hat denn dein Monitor ermittelt? Das hört sich nach Skalierungs-Artefakten an... Der Monitor synchronisiert sich ja nicht auf dein Signal, sondern tastet es mit seiner Frequenz ab. Und die ist offenbar um 0,3% daneben. So kommt immer nach 300 Pixel ein "Sprung".
:
Bearbeitet durch Moderator
Danke schon mal für die Hilfe. Ich werde zu Hause nachschauen - ich habe mich wegen der 25 MHz Pixeltakt für vga entschieden. 1200x768 hatten diese Monitore glaube ich. Da gibt es dann schon unangenehm hohe Pixeltakte für einen ersten Versuch und einen möglichen Framebuffer würde ich auch kaum intern hinbekommen..... Ich habe wegen Familie und Arbeit leider nicht die Muße die ich gerne hätte (und bestimmt bräuchte). 'Autoadjust' habe ich aber als erstes probiert. Wobei ich mir aber unsicher bin, ist die Farbgenerierung mit dem osl_viden Signal. Das wird in dem Block der das Timing macht aus den Pixel- und Zeilenzählern gemacht.
1 | osl_viden <= '1' WHEN usig_hcount < c_hdisp AND usig_vcount < c_vdisp ELSE '0'; |
Darf ich das dann wie hier im color_gen in anderen Prozessen benutzen
1 | grid : process(isl_viden,islv_xpos,islv_ypos) |
2 | (....) |
3 | if( isl_viden = '1' ) then |
oder muss das auch irgendwie wieder in einem Flipflop gespeichert werden? Ich bin verunsichert bis paranoid wegen logischer Signale die unregistriert durch das design gereicht werden. Das hat das Forum immerhin erreicht. Und zum Fehlerbild eines solchen theoretischen Fehlers: Dann würde nicht eine ganze x Zeile betroffen sein, sondern sporadischer Grafikfehler auftauchen?
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.