реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Задержка MAXII + Quartus, как правильно реализовать
MSL
сообщение Jul 14 2009, 09:45
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 75
Регистрация: 25-07-04
Из: Rostov-on-Don
Пользователь №: 382



MAXII, EPM1270T144C5, Quartus 9.0, VHDL.

Есть внешняя тактовая частота, которая выставляется PLL другой микросхемы и может быть от 1MHz до 100MHz, по rising_edge этой частоты выставляются данные на выход и по этому же фронту читаем состояние результат. Если на частотах в мегагерцы нет проблем, то на частотах в десятки мегагерц уже нужно учитывать задержку которую дают буфера на входе/выходе MAXII (внешние), т.е. читать данные с задержкой в несколько ns. В общем есть что то типа

Код
CLK_RD <= CLK;
CLK_WR <= CLK;

process (CLK_WR)
begin

  if rising_edge(CLK_WR) and can_write = '1' then

    output <= data_wr;

  end if;

end process;

process (CLK_RD)
begin

  if rising_edge(CLK_RD) and can_read = '1' then

    data_rd <= input;

  end if;

end process;


Как "правильно" сделать на этой микросхеме и квартусе, чтобы CLK_RD задерживался например на 4 ns относительно CLK_WR?
Go to the top of the page
 
+Quote Post
artem79
сообщение Jul 14 2009, 10:18
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 187
Регистрация: 4-01-07
Из: Казань
Пользователь №: 24 091



Нужно ли будет вообще задавать задержку такого порядка. Сами линии в плисе дают примерно такиеже задержки. Создайте проект посмотрите в chip planner. Если мало поставть буферный элемент. Должно хватить.
Go to the top of the page
 
+Quote Post
MSL
сообщение Jul 14 2009, 10:59
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 75
Регистрация: 25-07-04
Из: Rostov-on-Don
Пользователь №: 382



Цитата(artem79 @ Jul 14 2009, 14:18) *
Нужно ли будет вообще задавать задержку такого порядка. Сами линии в плисе дают примерно такиеже задержки. Создайте проект посмотрите в chip planner. Если мало поставть буферный элемент. Должно хватить.


Проект есть и работает, это просто "доводки". Куда "поставть буферный элемент"??? Данные на входе input появляются после полтакта CLK примерно, после того, как был выставлен output, происходит задержка output и input во внешних буферах. Период при 50 MHz это 20 ns. И мне задержка в несколько ns при чтении критична при таких частотах. Вопрос с том как павильно сделать CLK_RD <= CLK after x ns; для MAXII и Quartus.

Сообщение отредактировал MSL - Jul 14 2009, 11:10
Go to the top of the page
 
+Quote Post
yura-w
сообщение Jul 14 2009, 18:17
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 305
Регистрация: 22-06-07
Из: Санкт-Петербург
Пользователь №: 28 617



Цитата(MSL @ Jul 14 2009, 14:59) *
как павильно сделать CLK_RD <= CLK after x ns; для MAXII и Quartus.

правильнее: посмотрите MAX II Device Handbook, описание возможности в разделе Programmable Input Delay, настройка описана в разделе Programmable Input Delay(эти настройки только для Quartus).
Go to the top of the page
 
+Quote Post
MSL
сообщение Jul 14 2009, 18:54
Сообщение #5


Частый гость
**

Группа: Участник
Сообщений: 75
Регистрация: 25-07-04
Из: Rostov-on-Don
Пользователь №: 382



Цитата(yura-w @ Jul 14 2009, 22:17) *
правильнее: посмотрите MAX II Device Handbook, описание возможности в разделе Programmable Input Delay, настройка описана в разделе Programmable Input Delay(эти настройки только для Quartus).


Может я не совсем понятно все описал, но пинов входных пинов CPLD в моем примере только 2 (CLK и input) и входные задержки мне на них не нужны. CLK_RD и CLK_WR это сигналы в VHDL модуле. Спасибо конечно за совет перечитать доки-)
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 00:20
Рейтинг@Mail.ru


Страница сгенерированна за 0.02499 секунд с 7
ELECTRONIX ©2004-2016