![]() |
3 Attachment(s)
:confused: помогите разобраться что не так.
пытаюсь написать на ВХДЛ ту часть, которая выводит графику на экран - что то ну ни как не поддается, в схемном вводе все нормально было, показывало как надо, а вот на ВХДЛе все ни как не получается:v2_conf2: вот кусок проекта: Code:
process(CLK25,TI,vcnt,hcnt)если убрать загрузку атрибутов и выводить только пикселы - все четко, чб картинка отличная (pic02.jpg). а стоит только вернуть загрузку атрибутов обратно и выводить только пикселы - получается что выводятся атрибуты вместо пикселов, хотя данные загружаю в разные регистры(pic03.jpg).:v2_conf2: |
Адрес нужно как минимум на один клок раньше задавать. А так у тебя адреса атрибутов и пикселей получаются перепутаны. Для наглядности, поменяй местами строчки:
PIXd<=VD; VA<=PIXa; Ничего не изменится. |
поменял-все по прежнему.
вроде они должны выполнять параллельно? а может у кого есть примеры других разработок спека на ВХДЛе? пытался подсмотреть в исходниках SPECCY2007 - сложно разобраться для новичка, много сигналов и регистров без коментов что за они. |
Quote:
Сначала ставится адрес на шину, спустя клок/полклока считываются данные. У тебя же это не сделано. И в результате в "цветной регистр" считываются данные пикселей, а не аттрибутов. ---------- Post added at 16:23 ---------- Previous post was at 16:21 ---------- посмотри реализацию в u10_speccy, к примеру. |
Quote:
1) Зачем в процессе смешаны асинхронные присвоения в PIXa и ATRa с синхронными присвоениями по CLK25? Если хотелось их тоже обрабатывать синхронно, то надо было их засунуть под if (CLK25'event ..., ну а если они действительно асинхронные, то лучше их убрать из-под процесса. Понятность кода увеличится, кроме того уменьшится вероятность случайно сделать latch во время правок кода. Ну и наконец некоторые синтезаторы потупее такой код не переваривают. 2) Я надеюсь, VA -- это вывод FPGA, а не какой-то её провод? Внутри FPGA проводов с Z-состоянием нету. И если это вывод, то лучше вынести Z-присвоение на верхний уровень проекта. Облегчает дальнейшую правку кода. Плюс Квартус не всегда распознаёт "похороненные" Z-присвоения, я на эти грабли уже натыкался. Теперь по функционированию: 1) b2m совершенно правильно сказал про работу с памятью. В этом коде ставится адрес и сразу читаются данные, так нельзя. Надо хотя бы один такт подождать, пока память не отработает. 2) В этом коде пиксель читается сразу же, а атрибут -- в середине знакоместа. То есть атрибуты будут показываться на 4 пикселя правее, чем надо. Так и задумано? ;) |
Quote:
Quote:
|
Quote:
|
Quote:
|
спасибо всем за коменты и замечания, приму к сведению, теперь данную часть буду переписывать заново, а то исправлять все придется :)
|
Правильно ли я все понял: https://docs.google.com/fileview?id=...thkey=CPq3w6sK
|
| All times are GMT +4. The time now is 06:39. |
Powered by vBulletin® Version 3.8.3
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.