
Сообщение от
dosikus
Счас так:
Чего НЕ вижу - отсутствует blank, т.е. не будет привязки к уровню черного, да и гашения видеосигнала тоже.
Чего вижу - регистры pix_x и pix_y. Зачем они?

Сообщение от
dosikus
Осталось решить соответствие pix_x - v_addr.
На счетчик адреса у тебя всё равно отдельный регистр v_addr, ну так его по НЕ_бланку и инкременируй.
На 1 такт раньше LINE_END, в дальнейшем будет на 2, так как тебе ещё знакогенератор читать.
В результате у тебя добавятся 2 флага:
1 - разрешение инкремента счётчика адреса, он же открывает доступ к видеопамяти;
2 - blank
blank отстаёт от первого (сейчас) ровнёхонько на 1 такт, проще сделать просто задержку на триггере, чтоб не плодить компараторы.
- - - Добавлено - - -
Вероятно я хреново объясняю...
Неприятность в том, что у тебя происходит задержка счёта адреса относительно развёртки. Вот здесь:
первый такт
Код:
disp_enable <= ((pix_count < H_ACTIV) & (line_count < V_ACTIV));//строка 56
второй такт
Код:
if ( pix_count < H_ACTIV ) pix_x <= pix_count; else pix_x <= 0;//строка 53
трерий такт
Код:
if(disp_enable)v_addr <= ((pix_y*H_ACTIV)+pix_x);// строка 57
Если считать с нуля и использовать счётчики развёрток, то задержка будет всегда.
Ты хочешь видеопамять линейную, то есть с 0 до 799 строка 1, а с 800 до 1599 строка 2 и т.д. Это пожалуйста, это сколько угодно.
У тебя счетчик адреса видеопамяти отдельный и нет никакого смысла привязываться к счетчикам синхросигналов.
Также нет никакого смысла начинать растр сразу с видеоданных, более того, это неприятно ещё и тем, что когда счётчик строк используется в формировании адреса видеопамяти, то первая строка растра остаётся без преамбулы (для спека это бордюр), приходится немного "колдовать", чтоб это выправить - инкремент счетчика строк делать в определённом месте.
Сейчас у тебя горизонтальный счётчик по первому варианту на картинке, чтобы не вывихивать моск при расчётах, я бы сдвинул растр как во втором или в третьем варианте, тогда не надо будет колдовать с разрядностью парамов/локалпарамрв так как не будет отрицательных значений в расчётах и будет проще забить координаты всех синхросигналов в автомат.