Página 1 de 2

Faça sua própria placa de vídeo

MensagemEnviado: 25 Jan 2008 18:02
por phophollety

MensagemEnviado: 26 Jan 2008 11:10
por B-EAGLE
Oloko meu!!! xique hein! quando eu era mulequinho sempre sonhava em fazer uma placa de vídeo! huhuhuhu

MensagemEnviado: 26 Jan 2008 19:34
por Maurício
Muitooo show!

Oxe!!! Com essa placa aí, agora eu posso montar meu computador com transistores!!

Demais!!!!!

[]'s

MensagemEnviado: 26 Jan 2008 22:17
por phophollety
uahuaauahua, por falar nisso..

uns tempos atrás eu achei o esquema dos I4004... **

legal.. aliás, queria um daqueles para colecionar...

MensagemEnviado: 27 Jan 2008 09:06
por brasilma
A uns 20 anos eu fiz uma - VGA, monocromatica - não usei transistores, mas foi qse, apenas circuitos integrados discretos, a imagem foi gravada em uma EPROM e o circuito fazia sua varredura e gerava os sinais de sincronismo.

Quem é desse tempo sabe que nos TK82, apenas um Z80 varria teclado, gerava video, cuidava de todo I/O e ainda executava o programa da usuário, no tempo que restava entre os retraços verticais e horizontais do vídeo, rs, rs

MensagemEnviado: 27 Jan 2008 14:07
por msamsoniuk
pois eh, a diferenca fundamental entre os microcomputadores de 8 bits e os mais modernos eh que a resolucao gerada pelos microcomputadores antigos era 1/4 da gerada por um VGA padrao (640x480), q por sinal nem eh tao moderno, foi lancado pela IBM em 1987, de modo q hoje um desktop tipico consegue mais de 4x a resolucao gerada por um VGA padrao (1280x1024). alem disso, o numero de bits por pixel aumentou drasticamente. enquanto nos microcomputadores antigos nao se usava mais de um bit por pixel, o VGA chegava a 4 bits por pixel no melhor modo de imagem e hoje consegue-se tranquilamente 32 bits por pixel.

soh para comparar:

- 320x240 pixels com 1 bit por pixel, usando temporizacao NTSC (15.75KHz), resulta em um pixel clock de 7MHz e 0.8MB/s de banda.

- 640x480 pixels com 1 bit por pixel, usando temporizacao VGA (31.5KHz), resulta em um pixel clock de 28MHz e 3.5MB/s de banda. mas os tipicos 4 bits por pixel consomem na verdade 14MB/s em uma VGA tipica.

- 1280x1024 pixels com 1 bit por pixel, nao-entrelacado a 60Hz de refresh, resulta em um pixel-clock de uns 112MHz e 14MB/s de banda. mas os tipicos 32 bits por pixel consomem na verdade 448MB/s de banda!

de quebra, dizer q a placa eh VGA significaria emular as quase 20 combinacoes de modos de video, para ter retrocompatibilidade com MDA (texto 40x25 e 80x25, monocromatioco), CGA (graficos 320x200 e 640x200, alem de texto colorido), EGA (graficos 640x35) e VGA (graficos 640x480), alem da simulacao dos diversos modos planares de com 1, 2 e 4 planos por pixel, alem de um modo linear 320x200 com 1 byte por pixel, do contrario vc nao vai conseguir jogar prince of persia, por exemplo :)

bom, o cara ateh q foi tranquilo ficando soh no VGA, pq tem uns caras mais malucos ainda:

http://wiki.duskglow.com/tiki-index.php ... fdbd2f0813

o detalhe q a placa roda quake III a 1280x1024 pixels a 30 fps e tah sendo comparada lado a lado com placas 3D comerciais.

MensagemEnviado: 27 Jan 2008 16:55
por phophollety
é um belo trabalho de mestrado..

aliás, legal a aula de vga =D

MensagemEnviado: 27 Jan 2008 20:27
por msamsoniuk
para o mestrado eu tava pensando em algo tipo um blackfin dual-core hehehe

mas essa OGD1 eh um massacre:

1x S Video Connector (Middle Left)
2x DVI-I Connector (Top and bottom left)
1x PCI Edge Connector (base)
1x Power plug (Top middle right)
1x 100 Pin IDC Connector (right)

DVI Head 1 is connected to 330MHz analog and dual-link DVI.
DVI Head 2 is connected to TV/s-video and dual-link DVI.

performance:

The 2 dual-link DVI-I can each support resolutions up to 2560x1600, and the analogue output can reach a theoretical limit of 2048x1536 at 60 Hz. While the actual performance that will be reached cannot be predicted at this stage, our target for the OGD1 development board is similar to a Radeon 7000 Source OGPN18. OGD1 is not sold as an end user board as it is our development board for testing and development of code for the end user board called OGC.

outro projeto interessante eh o minimig:

http://en.wikipedia.org/wiki/Minimig

o minimig implementa dentro de um FPGA os ASICs utilizados nos computadores amiga menores, baseados no 68000, vendidos pela commodore na decada de 80. o grande lance eh que essas maquinas eram simplesmente as melhores em termos de recursos graficos: elas conseguiam gerar imagens de 640x400 pixels em 16 cores ou 320x400 pixels em 4096 cores, com suporte a overlays e coprocessamento grafico relativamente avancado, bem como som stereo de 4 canais (ou seja, nao foi facil colocar tudo isso num FPGA).

MensagemEnviado: 27 Jan 2008 21:20
por brasilma
Depois dos primeiros computadores populares utilizarem o "coitado" do processador a exaustão para fazer tudo no sistema, surgiram nas gerações seguintes, como nos MSX, processadores de vídeo dedicados, como o http://en.wikipedia.org/wiki/Yamaha_V9938 e posteriormente o http://en.wikipedia.org/wiki/Texas_Instruments_TMS9918, com memória de vídeo separada da principal de incríveis 16Kbytes.

MensagemEnviado: 28 Jan 2008 11:55
por msamsoniuk
brasilma escreveu:Depois dos primeiros computadores populares utilizarem o "coitado" do processador a exaustão para fazer tudo no sistema, surgiram nas gerações seguintes, como nos MSX, processadores de vídeo dedicados, como o http://en.wikipedia.org/wiki/Yamaha_V9938 e posteriormente o http://en.wikipedia.org/wiki/Texas_Instruments_TMS9918, com memória de vídeo separada da principal de incríveis 16Kbytes.


bons tempos hein...

a ideia de memoria compartilhada eh bem antiga, mas nao eh tao ruim assim, visto q o apple2, macintosh, amiga, palm e varios outros computadores pela decada de 70, 80 e 90 usaram a ideia com relativo sucesso. em muitos deles a implementacao era tao bem feita q nem chegava a impactar 10% da performance.

mas um caso particular eh o sinclair (creio q sao os TK80 aqui), cuja implementacao era tao simploria q soh deixava o processador funcionar durante os intervalos de retraco vertical, tornando o computador impressionamente lento, pois consumia 80% da cpu.

o proprio PC tinha um problema nas primeiras placas de video baseadas com o 6845, em que era recomendavel testar o flag de blank p/ acessar a memoria de video, do contrario o 8088 e o 6845 acessando simultaneamente o mesmo bus gerava um efeito de "neve" na tela.

embora o 8088 pudesse fazer outras coisas enquanto o bus de video estava sendo usado pelo 6845, efetivamente podia acessar o video apenas 20% do tempo, como no caso do sinclair. em aplicacoes intensivamente orientadas a video, isso significava escolher entre ver neve na tela ou perder 80% da performance da maquina.

o defeito soh foi corrigido mais tarde, com placas de video mais modernas, mas deixou o PC na decada de 80 bastante atrasado em relacao ao macintosh e amiga, cuja arquitetura de memoria compartilhada nao impactava mais de 10% na performance dos sistemas, daih a tal fama de serem maquinas rapidas p/ trabalhar com video.

estranhamente a historia nao acaba aih. corrigidos os problemas com o compartilhamento, o 8088 podia usar 100% de sua performance, mas nao as maquinas mais potentes com 286, 386 e 486: o barramento ISA de 16 bits operando a 8MHz segurava as coisas.

em uma maquina com bus compartilhado, como o macintosh iici, o barramento era de 32 bits operando a 25MHz com burst e interleaving, o q permitia gerar imagens melhores que VGA com uma performance melhor que uma placa VGA espetada num barramento ISA.

depois surgiram melhores barramentos e a coisa acabou realmente separando, mas nao me assustaria se cedo ou tarde surgissem novamente maquinas com memoria compartilhada, pois a historia mostra q o resultado depende mais da qualidade da implementacao do que da arquitetura escolhida propriamente.

MensagemEnviado: 28 Jan 2008 12:53
por brasilma
No caso dos TK82, como havia comentado, não só a memória era compartilhada, mas a própria geração de vídeo era realizada pela CPU da maquina.

Memória de vídeo compartilhada existe em todas as Placas Mãe com video on-board.

MensagemEnviado: 28 Jan 2008 23:56
por msamsoniuk
mas hoje em dia placa mae com memoria compartilhada eh sinonimo de coisa ruim, o contrario do q aconteceu em algumas epocas ;)

MensagemEnviado: 29 Jan 2008 08:22
por mastk
Eu tó aqui apanhado para gerar video no GT60 e QG8 e os caras destruindo com black fin e dsps :)

MensagemEnviado: 29 Jan 2008 11:35
por msamsoniuk
opa, vc esta fazendo de que jeito mastk ?

MensagemEnviado: 29 Jan 2008 12:33
por mastk
TPM pra sinc vertical e rodando as linhas hozontais por mov's contados, tudo certo, olhei no osciloscopio e tudo blz, coloco na tv e nada.

Chato que eu já fiz isso 2 duas vezes na mão sem problema.Desanima isso...