ElectraLord 0 Posted April 2, 2011 · Report post Всем Привет!!!! Пожалуста помогите разобратся. Раньше програмировал PIC и таких проблем невозникало . А сейчас решил прикрутить LCD к Cyclone 1 и задержки неработают Может есть другие методы мне нужно реализовать передачу данных пробовал E=1; delay(15); DATA=DD; delay(15); E=0; task delay //// endtask Интересует Verylog always @ (posedge clk) begin t=t+1; if ((t>17)||q) begin p=1; t=0; end end always @ (posedge p) пробовал делать то что выше но так неудобно Мне нужна универсальная задержка Почемуто в разных примерах встречается запись # но в quartus 91 почемуто неработает Quote Ответить с цитированием Share this post Link to post Share on other sites
des00 0 Posted April 2, 2011 · Report post держите меня семеро :1111493779: Автору, вы хотя про туториал почитайте для начала Quote Ответить с цитированием Share this post Link to post Share on other sites
tAmega 0 Posted April 2, 2011 · Report post . Quote Ответить с цитированием Share this post Link to post Share on other sites
ElectraLord 0 Posted April 2, 2011 · Report post . FSM??? Спасибо конечно но Может всетаки есть примеры уже реализованныйх задержек? или конкретные сылки Quote Ответить с цитированием Share this post Link to post Share on other sites
sazh 0 Posted April 2, 2011 · Report post или конкретные сылки скачайте с сайта xilinx документ xst.pdf там есть реализация счетчиков , регистров и.т.д (синтез) Quote Ответить с цитированием Share this post Link to post Share on other sites
ElectraLord 0 Posted April 3, 2011 · Report post Может ктонибудь обьяснить принцип реализации задержки Все, что написано внутри блока выполняется за один такт. но как тогда сделать последовательную задержку??? через if ??? t=t+1; if t>17 ----- if t>20 ------ if t>500 --- --- if t>5000 if if только так??? пробовал через always но тогда тоже будет нагромождение Quote Ответить с цитированием Share this post Link to post Share on other sites
StewartLittle 0 Posted April 3, 2011 · Report post Задержки несинтезируемы. Если Вам это не понятно, то прежде, чем чего-то писать, почитайте про ПЛИС вообще. ПЛИС - это совсем не микроконтроллеры!!! Начните хотя бы отсюда: http://fpga-faq.narod.ru/ Quote Ответить с цитированием Share this post Link to post Share on other sites
ElectraLord 0 Posted April 3, 2011 · Report post Если несинтезируемы тогда как их получают??????? ведь у меня задержка всеравно получается примерно 17 тактов ок 500 нс Зная сколько длится один такт можно подсчитать задержку или всетаки нетак? Предложите вариант если знаете как сделать например E=1; 200 нс E=0; 500нс E=1; 400нс D=DATA; 400нс E=0; 800нс RN=1; Как такое реализовать,пожалуйста предложите ваши варианты Quote Ответить с цитированием Share this post Link to post Share on other sites
vetal 0 Posted April 3, 2011 · Report post Если несинтезируемы тогда как их получают??????? На счетчиках, схемах сравнения, автоматах Quote Ответить с цитированием Share this post Link to post Share on other sites
Джеймс 0 Posted April 3, 2011 · Report post Мой совет - отложите пока Verilog в сторону. Рисуйте в схематике, используя LPM-модули. Разберетесь что к чему - вернетесь к языку. Иначе очень долго будете топтаться на месте. Quote Ответить с цитированием Share this post Link to post Share on other sites
ElectraLord 0 Posted April 3, 2011 · Report post неужели никто незнает как получить такое ? E=1; 200 нс E=0; 500нс E=1; 400нс D=DATA; 400нс E=0; 800нс RN=1; на Veryloge Мне сказали что легко можно перенести прогу для контроллера на плис но сдесь нет таких задержек как там. Но все же может ктото может помочь Что же касается схематика так я и так из veryloga создаю модуль в схематике. На счетчиках, схемах сравнения, автоматах Ну собственно я так и сделал t=t+1 if t>17 begin ---end if t>20 ------ Получается очень громозко и неуниверсально Quote Ответить с цитированием Share this post Link to post Share on other sites
canny 0 Posted April 3, 2011 · Report post ПЛИС не контроллер. Конструкция типа delay(время) несинтезируема. Поэтому, чтобы сделать задержку надо взять частоту с известным периодом и просчитать нужное количество тактов. А как делать - разницы нет - HDL или схемный редактор. А задержка в контроллере делается тоже не универсально - в реальности вместо функции подставляется код. Quote Ответить с цитированием Share this post Link to post Share on other sites
ElectraLord 0 Posted April 3, 2011 · Report post ПЛИС не контроллер. Конструкция типа delay(время) несинтезируема. Поэтому, чтобы сделать задержку надо взять частоту с известным периодом и просчитать нужное количество тактов. А как делать - разницы нет - HDL или схемный редактор. А задержка в контроллере делается тоже не универсально - в реальности вместо функции подставляется код. т.е написать всю прогу через if ? t=t+1; if t>17 ----- if t>20 ------ if t>500 --- --- if t>5000 if if только так??? Quote Ответить с цитированием Share this post Link to post Share on other sites
canny 0 Posted April 3, 2011 · Report post Типа того. Фактически это один счетчик с несколькими компараторами. Но я бы посмотрел для верности еще и временные диаграммы в Квартусе - раз уж Вы на циклоне делаете. Попутно еще вопрос - а что будет делать сиклон в проекте? Только ЖКИ управлять? Quote Ответить с цитированием Share this post Link to post Share on other sites
ElectraLord 0 Posted April 3, 2011 · Report post Типа того. Фактически это один счетчик с несколькими компараторами. Но я бы посмотрел для верности еще и временные диаграммы в Квартусе - раз уж Вы на циклоне делаете. Попутно еще вопрос - а что будет делать сиклон в проекте? Только ЖКИ управлять? Конечно нет LCD это только небольшая часть. Остальная часть программы уже реализована в виде отдельного блока осталось только индикацию прикрутить. Quote Ответить с цитированием Share this post Link to post Share on other sites