HDMI на FPGA Cyclone II
Для генерации разрешения 800×600 необходимо во-первых заменить параметры таймингов в файле HDMI_1280.v на эти
always @(posedge pixclk) DrawArea <= (CounterX<800) && (CounterY<600);
always @(posedge pixclk) CounterX <= (CounterX==1055) ? 0 : CounterX+1;
always @(posedge pixclk) if(CounterX==1055) CounterY <= (CounterY==627) ? 0 : CounterY+1;
always @(posedge pixclk) hSync <= (CounterX>=840) && (CounterX<968);
always @(posedge pixclk) vSync <= (CounterY>=601) && (CounterY<605);
А так же сгенерить свою PLL с 2 выходами клоков на 40MHz и на 200MHz. 40MHz – частота тактования пикселей, с ней всё ясно, а вот 200 MHz это частота тактования TMDS энкодеров (в HDMI применяется TMDS 10 битное кодирование), они тактоваться должны на частоте в 10 раз быстрее пиксельклоков, однако т.к. используются DDR выходы ПЛИС-а, частота тактования TMDS делится на 2, итого (40*10)/2 = 200MHz
Leave a Reply