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

Реализация задержек в QuartusII 91

Всем Привет!!!! Пожалуста помогите разобратся. Раньше програмировал 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 почемуто неработает

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

держите меня семеро :1111493779:

 

Автору, вы хотя про туториал почитайте для начала

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

.

 

FSM??? Спасибо конечно но

Может всетаки есть примеры уже реализованныйх задержек?

или конкретные сылки

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

или конкретные сылки

 

скачайте с сайта xilinx документ xst.pdf

там есть реализация счетчиков , регистров и.т.д (синтез)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Может ктонибудь обьяснить принцип реализации задержки

Все, что написано внутри блока выполняется за один такт. но как тогда сделать последовательную задержку??? через if ???

 

 

t=t+1;

if t>17

-----

if t>20

------

if t>500

---

---

if t>5000

if

if

только так???

 

пробовал через always но тогда тоже будет нагромождение :wacko:

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Задержки несинтезируемы.

Если Вам это не понятно, то прежде, чем чего-то писать, почитайте про ПЛИС вообще. ПЛИС - это совсем не микроконтроллеры!!!

Начните хотя бы отсюда: http://fpga-faq.narod.ru/

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если несинтезируемы тогда как их получают???????

ведь у меня задержка всеравно получается примерно

17 тактов ок 500 нс

Зная сколько длится один такт можно подсчитать задержку или всетаки нетак?

Предложите вариант если знаете как сделать

например

E=1;

200 нс

E=0;

500нс

E=1;

400нс

D=DATA;

400нс

E=0;

800нс

RN=1;

Как такое реализовать,пожалуйста предложите ваши варианты

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если несинтезируемы тогда как их получают???????

На счетчиках, схемах сравнения, автоматах

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Мой совет - отложите пока Verilog в сторону. Рисуйте в схематике, используя LPM-модули. Разберетесь что к чему - вернетесь к языку. Иначе очень долго будете топтаться на месте.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

неужели никто незнает как получить такое ?

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

------

Получается очень громозко и неуниверсально

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ПЛИС не контроллер. Конструкция типа delay(время) несинтезируема.

Поэтому, чтобы сделать задержку надо взять частоту с известным периодом и просчитать нужное количество тактов. А как делать - разницы нет - HDL или схемный редактор.

А задержка в контроллере делается тоже не универсально - в реальности вместо функции подставляется код.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ПЛИС не контроллер. Конструкция типа delay(время) несинтезируема.

Поэтому, чтобы сделать задержку надо взять частоту с известным периодом и просчитать нужное количество тактов. А как делать - разницы нет - HDL или схемный редактор.

А задержка в контроллере делается тоже не универсально - в реальности вместо функции подставляется код.

т.е написать всю прогу через if ?

 

t=t+1;

if t>17

-----

if t>20

------

if t>500

---

---

if t>5000

if

if

только так???

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Типа того.

Фактически это один счетчик с несколькими компараторами.

Но я бы посмотрел для верности еще и временные диаграммы в Квартусе - раз уж Вы на циклоне делаете.

 

Попутно еще вопрос - а что будет делать сиклон в проекте? Только ЖКИ управлять?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Типа того.

Фактически это один счетчик с несколькими компараторами.

Но я бы посмотрел для верности еще и временные диаграммы в Квартусе - раз уж Вы на циклоне делаете.

 

Попутно еще вопрос - а что будет делать сиклон в проекте? Только ЖКИ управлять?

Конечно нет LCD это только небольшая часть. Остальная часть программы уже реализована в виде отдельного блока осталось только индикацию прикрутить.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...