Перейти к содержанию
    

andryblack

Новичок
  • Постов

    4
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный

Посетители профиля

137 просмотров профиля
  1. Пока ограничусь простым оверсэмплингом 5x: IDES10 принимаем по 2 бита IDES10 des( .D(screen_data), .FCLK(des_fclk), // frame_clk * 20 * 5 / 2 .PCLK(des_clk), // frame_clk * 20 / 2 .RESET(!resetn), .Q0(des_out[0]), .Q1(des_out[1]), .Q2(des_out[2]), .Q3(des_out[3]), .Q4(des_out[4]), .Q5(des_out[5]), .Q6(des_out[6]), .Q7(des_out[7]), .Q8(des_out[8]), .Q9(des_out[9]) ); Oversample5to1 oversample0( .clk(des_clk), .D(des_out[4:0]), .O(oversample_read[0]) ); Oversample5to1 oversample1( .clk(des_clk), .D(des_out[9:5]), .O(oversample_read[1]) ); always @(posedge des_clk or negedge resetn) begin if(~resetn) begin frame_data <= 22'd0; frame_cntr <= 4'd0; end else begin frame_data <= {oversample_read[1:0], frame_data[19:2] }; if (frame_cntr < 4'd9) begin frame_cntr <= frame_cntr + 3'd1; end else begin frame_cntr <= 4'd0; end end end module Oversample5to1 ( input wire clk, input wire [4:0] D, output wire O); assign O = ( D == 5'b00111 ) || ( D == 5'b01110 ) || ( D == 5'b11100 ) || ( D == 5'b01111 ) || ( D == 5'b11110 ) || ( D == 5'b11111 ); endmodule для захвата и разбора должно хватить, дальше найти паттерны перехода data/contol и синхронизироваться с началом слова впринципе тоже что и оригинал делает: When locking to REFCLK is complete, the serial input is monitored for a transition word. When a transition word is found, LOCK is driven low indicating valid output data, and the paral- lel rate clock recovered from the serial input is output on PCLK_OUT. PCLK_OUT is stretched on the change from REFCLK to recovered clock (or vice versa). На первый взгляд для rgb данных выглядит как простое чередование прямого/инверсного слова
  2. Для начала пропустил поток через fpga: wire screen_data; ELVDS_IBUF screen_ibuf( .I(screen_in_p), .IB(screen_in_n), .O(screen_data) ); ELVDS_OBUF screen_obuf ( .I(screen_data), .O(screen_out_p), .OB(screen_out_n) ); assign test_out = screen_data; картинка сохранилась, согласование линий верное. С тестового пина захватил поток ЛА на 400MHz. PCLK 8.192MHz, т.е сэмплинг нужен "всего" на 163.84MHz. Вопрос как делать синхронизацию. Я так понимаю нужно клок восстанавливать из принятых данных, подавать на PLL *20 и по нему сэмплировать, замкнутый круг получается)
  3. В автомобиле ГУ выдает сигнал на монитор по 1й lvds паре посредством серилизатора max9218 и десириализатора max9217. Хочу "перехватывать" картинку посредством fpga GW1NR-LV9. Подскажите с отправную точку для реализации декодера.
×
×
  • Создать...