Merhaba, Ziyaretçi. Lütfen giriş yapın veya üye olun.

Kullanıcı adınızı, parolanızı ve aktif kalma süresini giriniz

  Gelişmiş Arama
insanın içinde varsa, commodore.gen.tr açığa çıkarır bunu.. bir nevi retro olaylarının dolunayıyız.(Arda)
commodore.gen.trCommodoreCommodore DonanımFPGA Günlükleri - I, II, III ve IV (FPGA ile HDMI Görüntü Üretme) SON
Sayfa: 1 [2] 3 4 ... 18   Aşağı git
Yazdır
Gönderen Konu: FPGA Günlükleri - I, II, III ve IV (FPGA ile HDMI Görüntü Üretme) SON  (Okunma Sayısı 170323 defa)
0 Üye ve 6 Ziyaretçi konuyu incelemekte.
hades
Üye
****
Mesaj Sayısı: 391



Üyelik Bilgileri
« Yanıtla #15 : Şubat 24, 2016, 16:03:36 ÖS »

Proje HDMI için. VGA girişli monitörlere uygulanabilirmi.
Logged
eins
Uzman
*****
Mesaj Sayısı: 1.816


A.K.A. deliMawi


Üyelik Bilgileri
« Yanıtla #16 : Şubat 24, 2016, 16:06:19 ÖS »

Proje HDMI için. VGA girişli monitörlere uygulanabilirmi.

VGA Biraz sıkıntılı. VGA'de 50Hz olan bir standart format var mı monitörlerin desteklediği? Eğer varsa olabilir.
Logged

Doberman ♦ megaOne ♦ HDMI-64 ♦ HDMI-520 ♦ NewSchool
EMREZ
Deneyimli
*****
Mesaj Sayısı: 1.940



Üyelik Bilgileri
« Yanıtla #17 : Şubat 24, 2016, 16:18:30 ÖS »

harika bir proje bence, yeni monitörlerin hepsi ya hdmi yada displayport. vga benim kullandığım eski monitörde var Masum)
Logged

this is amiga speaking.
EMREZ
Deneyimli
*****
Mesaj Sayısı: 1.940



Üyelik Bilgileri
« Yanıtla #18 : Şubat 24, 2016, 16:19:17 ÖS »

görselleri neden bilmiyorum ama bu bilgisayarda göremiyorum merak ettim doğrusu
Logged

this is amiga speaking.
wizofwor
Genel Yönetici
*****
Mesaj Sayısı: 4.785


Gosub ile gidilen yerden goto ile dönen adam


Üyelik Bilgileri WWW
« Yanıtla #19 : Şubat 24, 2016, 17:05:34 ÖS »

Verilog kısımlarını hızlı geçsemde zevkle okuyorum. Acaba kullanılan FPGA hız durumu nedir? Mesela C64'den her pixel yerine iki tane basarak ve her raster satırına karşılık ikisi karartılmış 4 satır gönderek 640x800 çözünürlüğe çıkabilir miyiz? TV'nin upscaler'ına fazla iş bırakmamış oluruz.

Diğer bir soru pal blending emulasyonu yapacak vakit kalır mı?  
Logged

eins
Uzman
*****
Mesaj Sayısı: 1.816


A.K.A. deliMawi


Üyelik Bilgileri
« Yanıtla #20 : Şubat 24, 2016, 17:24:55 ÖS »

Verilog kısımlarını hızlı geçsemde zevkle okuyorum. Acaba kullanılan FPGA hız durumu nedir? Mesela C64'den her pixel yerine iki tane basarak ve her raster satırına karşılık ikisi karartılmış 4 satır gönderek 640x800 çözünürlüğe çıkabilir miyiz? TV'nin upscaler'ına fazla iş bırakmamış oluruz.

Diğer bir soru pal blending emulasyonu yapacak vakit kalır mı?  

Sanıyorum ki FPGA'in hız durumundan öte, gerçek bir HDMI transmitter kullanmadan HDMI hattında basılacak olan sinyalin bant genişliği daha önemli.

Şöyle örnek vermek gerekirse, 720x576@50Hz görüntü üretmek için, görünmeyen kısımlarla beraber 968x625pixel data basılıyor. Bu da 50Hz de, her R,G,B kanalı başına 30.25 Mega Sample veri demek. Her bir sample 10 bit olduğundan dolayı gene kanal başına 302.5 Magabit veri transfer ediliyor bu formatta. Yani FPGA bacaklarından 302.5 MHz lik bir data akıyor. Şimdi bu değeri daha da yükseltirsek artık sinyal normal yollarla iletilemez hale gelir ve örneğin DDR tipindeki bacaklara ihtiyacımız olur. Şu an kullandığım FPGA içerisinde yok.

Ama şöyle de bir durum var. C64'ün görünür çözünürlüğü 320x200. Bu formatta görünür piksel sayısı 720. Yani zaten en az iki piksel C64'ün bir pikseline denk gelecek.

Satır sayısı olarak da dediğin şey yapılabilir ama burada esas önemli olan tam 50Hz bir format seçmek. Çünkü komple frame buffer kullanmıyorum. (RAM gerektirmesi ve lag oluşturması sebebi ile.) C64 ün ürettiği 50Hz interlaced sinyal ile tam senkronize HDMI dijital görüntü oluşturmayı hedefliyorum.

Bu arada benim hedeflediğim 720x576 DVD formatına denk geliyor. Bundan daha büyük olan formatlar ise malesef ki bu tip ucuz bir donanım ile üretilebilecek gibi değil. Kahkaha

720p (HDTV) 1280 × 720
1080i, 1080p (HDTV, Blu-ray) 1920 × 1080
2160p (UHDTV) 3840 × 2160
4320p (UHDTV) 7680 × 4320

PAL blending konusunu ise hiç bilmiyorum. Hemen araştıracağım...

EDIT: Bu arada 640x800 yazarken, 800x600 mü kastettin? Eğer öyle ise zaten çok yakın bir çözünürlükte çalışıyoruz. Sadece 60Hz değil 50Hz.
« Son Düzenleme: Şubat 24, 2016, 17:32:10 ÖS Gönderen: delimawi » Logged

Doberman ♦ megaOne ♦ HDMI-64 ♦ HDMI-520 ♦ NewSchool
EMREZ
Deneyimli
*****
Mesaj Sayısı: 1.940



Üyelik Bilgileri
« Yanıtla #21 : Şubat 24, 2016, 17:49:41 ÖS »

teknik olarak c64 video sinyalleri arasında az da olsa bir sapma var, hdmi olunca da sapmadan kaynaklı o renk kirliliği az da olsa oluyor mu? yoksa temiz bir görüntü mü geliyor ? cihazın içindeki gürültü vs etkiliyor mu görüntüyü merak ettim.
Logged

this is amiga speaking.
wizofwor
Genel Yönetici
*****
Mesaj Sayısı: 4.785


Gosub ile gidilen yerden goto ile dönen adam


Üyelik Bilgileri WWW
« Yanıtla #22 : Şubat 24, 2016, 17:54:41 ÖS »

Buffer'dan kaçınmakta çok haklısın. LCD TV'lerde hali hazırda mevcut lag'la birleşince oyun oynanmaz hale geliyor.

320x200'de bir yerine 4 pixel bastığını düşünerek (2x strech) ve aralara da scanline için birer raster daha ekleyerek bulmuştum. Tabi mantıklı bir aspect ratio için 640x400 olması lazım. O zaman pixel kopyalamaya gerek yok.

Pal blending (chroma blending diye de geçiyor galiba) Pal formatında aynı brightness değerindeki iki pikselin yan yana geldiğinde renklerinin birbirine karışması durumu. 1084'de renk geçişlerinin çok daha yumşak görünmesinin başlıca sebeplerinden.
Logged

yavuzg
Genel Yönetici
*****
Mesaj Sayısı: 5.894



Üyelik Bilgileri
« Yanıtla #23 : Şubat 24, 2016, 20:07:22 ÖS »

... Ayrıca bu kod 640x480 @60Hz bir görüntü üretiyor. Bizim günün sonunda ihtiyacımız olan görüntü mutlak suretle 50Hz olmalı ki C64 ile senkron olabilelim. Şu an için benim hedeflediğim format 720x576p @50Hz. Bakalım bu formatta görüntü üretebilecek miyiz?
...

Tam da "neden 50Hz" ile kendini kısıtlıyorsun ki diyecekken

Alıntı

... Proje tam olarak bittiğinde aslında bu sinyali C64'ten gelen video sinyalinden extract edip oluşturacağız ki tam senkronizasyon sağlanabilsin.


Bunu okuyup rahatladım. Yani tamamen bencil ve kişisel sebeplerle

Beni yakınen tanıyanlar bilir ben NTSC hastasıyımdır

Kişisel olarak gerek arcade donanımlarının 60Hz görüntü vermesi ve bu "upscaler" devresinin pekala da composite çıkış veren NTSC oyun konsollarında da iş göreceğinden (veya ufak modifikasyonlar/eklemeler ile farklı yerlere de rahatlıkla çekilebileceğinden - örn analog VGA) tasarımın giriş sinyaline PLL ile "lock" olması en doğru yaklaşım ki zaten onu görünce çok sevindim doğrusu...

Ve tabii ayrıca NTSC ürünün potansiyel ticari değerini de artıracaktır

O yüzden lütfen 60Hz'i tamamen yok sayma, bizleri de düşün

Bu arada, sana bahsettiğim decoder hala yaygın olarak piyasada mevcut. Ben geçen sene bi 10 tane sipariş etmiştim aliexpress'den, tanesi $1-1.5 seviyesinde fiyatla. NOS'mudur yoksa hala üretimde mi bilmiyorum ama gelen çipler kullanılmışa benzemiyordu, cillop gibi yeniydi (ya da yeni görünümlü) yani...

Neyse, ben senin FPGA kısmını merakla ve heyecanla takip ediyorum. Birebir olmasa bile en azından PLL ve dotclock kısımlarına çökmeyi planlıyorum Ben o kısımları basit bi microcontroller ile yapmayı planlamıştım ama hızdan gol yiyeceğimi anlayıp duvara toslamıştı proje (Hele pixel seviyesinde ve 24bit (8-bit R, G, B) AD DA dönüşümleri planlayıp analog VGA olayını hayallediğimi düşünürsen zaten imkansızdı)

Bu arada çok başarılar, çok güzel gidiyor proje...
Logged

Simon (Özay Turay)
Yönetici
*****
Mesaj Sayısı: 7.756


Commodore Forever


Üyelik Bilgileri WWW
« Yanıtla #24 : Şubat 24, 2016, 21:16:33 ÖS »

Yine güzel bir proje ile karşımızdasın, bu kadar enerjiyi nereden buluyorsun çok merak ediyorum. Emeğine sağlık.

Bu arada fpga4fun.com'da güzel bir siteymiş. Senin Cyclone II DevBoard'dan ben de almıştım. Vakit bulursam birkaç deneme yapıp FPGA ısınma turlarına başlayayım.
Logged

https://retrodergi.com - https://e-turay.com - https://karizmawow.e-turay.com

Retro: Commodore 64, Amiga 500, Amiga 1200
Retromsu: Wii, XBox360, XBox, PS3 Slim, PS2 FAT, PS1, PS Vita, Nintendo 3DS, Nintendo 2DS
eins
Uzman
*****
Mesaj Sayısı: 1.816


A.K.A. deliMawi


Üyelik Bilgileri
« Yanıtla #25 : Şubat 24, 2016, 21:39:20 ÖS »

teknik olarak c64 video sinyalleri arasında az da olsa bir sapma var, hdmi olunca da sapmadan kaynaklı o renk kirliliği az da olsa oluyor mu? yoksa temiz bir görüntü mü geliyor ? cihazın içindeki gürültü vs etkiliyor mu görüntüyü merak ettim.

Merhaba EMREZ, sözüne ettiğin kirlilik mevcut. Hatta sinyali digitize edince bu kirlilikler belki bir nebze daha artacaktır. Bunu bende bilmiyorum, videoyu decode edip HDMI'a atınca göreceğiz.

Benim bu işe başlarken kafamda kurguladığım şöyle bir yöntem olmuştu. Decode ettiğimiz her bir pikseli, toplam 24bit RGB datası olarak saklamak yerine, bu pikselin C64 paletinde en yakın olduğu rengi bulup, sadece renk kodunu saklamak. Bu sayede 24bit yerine işi 4bit ile bitirebiliyoruz. Bunu kurgulama amacım RAM den tasarruf etmekti. Ama şu anda RAM yeterli geldiği için bunu gündemde tutmuyorum. Bu yönteme dönecek olursam dediğin kirlilik tamamen ortadan kalkar. Çünkü renk kodunu bildiğimiz için tekrar sıfırdan bu rengi çıkışta digital olarak üretmek mümkün.

Yöntemin dez avantajı ise bu projenin sadece ve sadece C64'e özel olarak kalması olacaktır. Başka bir sisteme bağlanırsa ilgili sistemi C64 paleti üzerinden görmüş oluruz... Kahkaha (Fena da olmaz yani... )

Pal blending (chroma blending diye de geçiyor galiba) Pal formatında aynı brightness değerindeki iki pikselin yan yana geldiğinde renklerinin birbirine karışması durumu. 1084'de renk geçişlerinin çok daha yumşak görünmesinin başlıca sebeplerinden.

@wizofwor, bu bilgi enteresanmış. Formüle edebilirsek sanırım FPGA içinde buna yer olur. Şu ana kadar logic blokların %8'ini harcadım. Bence bitmiş proje bu gidişle %40-50 civarında olacak. Bana referans olabilecek link verebilir misin?


Tam da "neden 50Hz" ile kendini kısıtlıyorsun ki diyecekken
...
Bunu okuyup rahatladım. Yani tamamen bencil ve kişisel sebeplerle

Yavuz abi, çok da rahatlama. Evet haklısın tamamen bencil ve kişisel sebepler söz konusu. Varsa yoksa C64... Kahkaha Şaka bir yana gelen sinyale lock olacağız ama bu lock 50-60Hz gibi çok geniş bir aralığı kapsamaz. Kapsasa bile, HDMI tarafında PAL ve NTSC timingleri farklı. Yani bu kodu bu hali ile NTSC'ye lock etsek bile, çıkışta 60Hz lik bir PAL sinyali oluşur sanırım. Karıştı biraz, ben de emin olamadım şimdi ne çıkar. Mesela bugün timing değerleri ile oynarken 55Hz 720x576p sinyal ürettim kaza ile ama TV bunu gayet güzel gösterdi. Hiç bir standardı olmayan bir timing. Ekranda infoya baktığımda 55Hz yazısını görünce önce şaşırdım sonra dönüp FPGA PLL kısmındaki hatamı düzelttim, 50Hz oldu...

Zaten şöyle komik bir durum da var. Analog PAL sinyalini 4:2:2 olarak decode edince, endüstri standardı 27MHz lik bir piksel clock ortaya çıkıyor. Ama dijital 720x576p@50Hz sinyalinde 30.25MHz di sanırım bir piksel clock söz konusu. Bu iş nasıl oluyor yada olacak şu anda bende tam emin değilim. Tek bildiğim gelen 27MHz piksel clock ile FPGA içerisindeki PLL kullanılarak en yakın 29.7MHz üretebileceğim. Bakalım nasıl olacak göreceğiz...

Beni yakınen tanıyanlar bilir ben NTSC hastasıyımdır
...
O yüzden lütfen 60Hz'i tamamen yok sayma, bizleri de düşün

Bilmiyordum. Ama şöyle bir durum var, 60Hz ve NTSC girişim olursa bunu birçok standarda HDMI ve hatta VGA olarak dönüştürmek daha kolay. Çünkü birçok VGA ve HDMI formatı zaten 60Hz. Ben 50Hz için çok kasıyorum. Önce C64'ü halledelim, NTSC kısmı kolay, kimseyi kırmayız, çözüm üretiriz o aşamada muhtemelen...

Tüm iyi dilekleriniz için teşekkür ederim.
Logged

Doberman ♦ megaOne ♦ HDMI-64 ♦ HDMI-520 ♦ NewSchool
eins
Uzman
*****
Mesaj Sayısı: 1.816


A.K.A. deliMawi


Üyelik Bilgileri
« Yanıtla #26 : Şubat 24, 2016, 21:51:19 ÖS »

Yine güzel bir proje ile karşımızdasın, bu kadar enerjiyi nereden buluyorsun çok merak ediyorum. Emeğine sağlık.

Bu arada fpga4fun.com'da güzel bir siteymiş. Senin Cyclone II DevBoard'dan ben de almıştım. Vakit bulursam birkaç deneme yapıp FPGA ısınma turlarına başlayayım.

Simon, teşekkürler. Aslında bu topic'i proje olarak açmamıştım. FPGA bilgimi geliştirmek için bir süre (megaOne PCB'leri gelene kadar), bu boardlar üzerinde birşeyler yapmayı planladım. Ne yapabilirim derken, C64 için yapmak istediğim projelerden biri olan HDMI çıkış işi olsun dedim. Bu arada da edindiğim tecrübeleri paylaşmak için bu tarz bir topik açtım.

Açıkçası ilk başlarda çok zor bir işe mi giriştim diye düşünürken, ikinci günde istediğim formatta HDMI çıkışı elde edince açıkçası ben de biraz gaza geldim. Aslında hakikaten bir proje olma yolunda ilerliyor. Biraz daha tünelin sonundaki ışığı görelim bir proje topiki açarak orda daha konsantre bir biçimde projelendiririz.

Enerji konusuna gelince açıkçası orada biraz bencillik söz konusu. Kendimi geliştireceğine inandığım veya son ürün olarak ihtiyacım olan bir sonucu olacaksa projeye enerji harcayabiliyorum. Aksi durumda aslında çok üşengeç biriyim. Baksana Doberman'da tünelin sonundaki ışığı gördüm, PCB ler geldi, hala loader programını yazacağım. Heyecanlı kısmı bitti ya enerjim azaldı. Ama vakit ayıracağım. Hatta 20 adet üretim için parça bile sipariş ettim kamçılar belki ümidi ile...
Logged

Doberman ♦ megaOne ♦ HDMI-64 ♦ HDMI-520 ♦ NewSchool
i_r_on
Uzman
*****
Mesaj Sayısı: 2.873



Üyelik Bilgileri WWW
« Yanıtla #27 : Şubat 25, 2016, 00:01:24 ÖÖ »

Profil resmine ayrılan alan sana artık yetmeyecek

Güzel proje, başarılar.

VIC'in analog çıkışından pixellerden renk kodunu tespit edip tekrar oluşturma enteresanmış. AEC ve benzeri sinyallerden kaynaklanan 8 sütunda bir gözüken dikey çizgiye de çözüm olur mu bu?

ps: Bu arada ben en çok şu PLL'i nasıl kullanıyorsun onu merak ediyorum. Biraz araştırıp adam akıllı bir kaynak bulamamıştım. Verilog kullanman kötü oldu, tam da vhdl'e girmiştim ben de
Logged

Every imagination is one's self reflection but not every self reflection is imagination. <I.R.on - 2001>

twitter | blog
hakanzade
Ziyaretçi
« Yanıtla #28 : Şubat 25, 2016, 00:20:42 ÖÖ »

Gerçi ayrı ayrı hepsini bulmak mümkün ama hayalimde şöyle bir cihaz var tuzlu olmazsada tadından yenmez. bi kutu düşünün bir tarafında görüntüyle ilgili bütün girişler var, compozit, component, vga, hdmi diğer tarafında öndeki girişlerin birebir aynısı gene mevcut. bir taraf input diğer taraf output. input tarafında bir tuş, tuşa bastıkça ilgili girişin ledi yanıyor. output tarafındada bir tuş, tuşa bastıkça ilgili çıkışın ledi yanıyor.
Logged
LW3D
Yönetici
*****
Mesaj Sayısı: 11.418


Günü Kurtaran Avam Hiooargggh :)


Üyelik Bilgileri WWW
« Yanıtla #29 : Şubat 25, 2016, 00:50:25 ÖÖ »

@delimawi : avatar geliştirme yöntemini beğeniyoruz... Başarılar

Logged

Sayfa: 1 [2] 3 4 ... 18   Yukarı git
Yazdır
Gitmek istediğiniz yer: