Я бы объеденил пункты 5 и 6 в один процесс. Потому что и сдвиг, и запись в выходные регистры нужно делать либо по фронту, либо по спаду. Иначе будет нестыковка на полпикселя.
Вид для печати
Я бы объеденил пункты 5 и 6 в один процесс. Потому что и сдвиг, и запись в выходные регистры нужно делать либо по фронту, либо по спаду. Иначе будет нестыковка на полпикселя.
тогда получиться, что на 8-ом такте будет происходить одновременно сдвиг и загрузка данных в регистре, на что квартус жалуется сильно. да и последний пиксель будет всегда из следующего знакоместа вроде.
Я думал, сам догадаешься :)
Самый первый пиксел образуется не после сдвига, а после записи в выходной регистр (крайний пискел которого ты используешь как видео-выход), о остальные 7 - в результате сдвига.
ок, попробуемс :) (наверно прийдется сдвигающий регистр организовать по иному, через "CASE IS ..." привязанным к томуже клоку, что и загрузка во вторые регистры)
В моих проектах сделано так:
Цитата:
process(hcnt,vidb) --Video data shift registers--
begin
case hcnt(2 downto 0) is
when "000"=>vid<=vidb(7);
when "001"=>vid<=vidb(6);
when "010"=>vid<=vidb(5);
when "011"=>vid<=vidb(4);
when "100"=>vid<=vidb(3);
when "101"=>vid<=vidb(2);
when "110"=>vid<=vidb(1);
when "111"=>vid<=vidb(0);
end case;
end process;
---------- Post added at 17:46 ---------- Previous post was at 17:44 ----------
На самом деле это не шифт-регистр, а самый обычный мультиплексор на 8 входов-1выход.
Неплохо. Наверное, самое оптимальное решение.
Хотя, неизвестно, что лучше: семь мультиплексоров 2-в-1 (в случае со сдвиговым регистром) или один 8-в-1 (как у тебя). Мультиплексор 2-в-1 будет в той же LE, что и бит регистра, а вот 8-в-1 после регистра - это дополнительные LE.
ну наконец то добился толку от своего нагромождения кода :D
что имею: четкий спековский экран, все точки и атрибуты там где им и положено; бордер пока выставляю в ручную.
:mad: больше времени прострадал из-за собственной криворукости
PIXa<="0"&"000"&vcnt(8 downto 7)&vcnt(3 downto 1)&vcnt(6 downto 4)&hcnt(7 downto 3);
ATRa<="0"&"000"&"110"&vcnt(8 downto 4)&hcnt(7 downto 3);
привязял к клоку - от этого и шел косяк, стоило убрать привязку - ка все бульк и в порядке :eek:
то что получилось в прицепе (мот кто глянет если не лень будет, подскажет что где подправить чтоб правильно и грамотно было :v2_blush:)
ЗЫ: может у кого есть картинка тестового экрана (:v2_dizzy_photo: или :v2_dizzy_photo:) для спека (или вся прошика этого теста) на которой изображены круги полоски градации? помню пролетала прошивка данного теста на форуме, да вот теперь все никак найти ее не могу.