Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Констрейны ввода ввывода
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
Fynjisx
Привет Всем. Сделал SPI модуль для связи CIII с АЦП AD7457. Охота проверить времянки. Опыта в написании констрейном ввода/вывода - ноль. Помогите написать констрейны для тайминговой диаграммы представленной на рисунке. Кстати, попутный вопрос SCLK сделал на обычном счетчике делителе и вывел на обычный пин IO ПЛИС. Надо ли внутри плис делать эту линию GLOBAL?
Да и ещё, имеется ли в ModelSim возможность посмотреть реальные задержки после Квартусовского размещения компонентов?
krux
я бы сделал fast output register, fast output enable register, fast input register, и обеспечил бы все остальные временные характеристики - кратно тактам, и заданием одного единственного constraint - на тактовый сигнал, а не ковырялся бы с отдельными времянками.

Цитата
Надо ли внутри плис делать эту линию GLOBAL
она у вас во всем проекте тянется или только в одном блоке? если второе - то лучше не надо, на прилично "забитом" кристалле можете сделать хуже, чем без.
Fynjisx
Цитата(krux @ Aug 1 2013, 20:24) *
я бы сделал fast output register, fast output enable register, fast input register,...

Это в Resource Property Editor надо лезть? А повторное разводка/размещение не затерет мои предыдущие настройки?
Цитата(krux @ Aug 1 2013, 20:24) *
она у вас во всем проекте тянется или только в одном блоке?

Ну как...ммм... все клоки регистров я так понимаю по ней идут...
krux
можно через Assignment editor, а можно и в самом верилоге, например так:
Код
    wire Dout;
    (* altera_attribute = {"-name FAST_OUTPUT_ENABLE_REGISTER ON"} *) reg oe_reg;
    (* altera_attribute = {"-name FAST_OUTPUT_REGISTER ON"} *) reg out_reg;
    (* altera_attribute = {"-name FAST_INPUT_REGISTER ON"} *) reg in_reg;
    assign Dout = (oe_reg) ? (out_reg) : 1'bz;


Цитата
Ну как...ммм... все клоки регистров я так понимаю по ней идут...

вы обрабатываете данные на той же частоте, на которой работает SPI?
Fynjisx
Цитата(krux @ Aug 1 2013, 21:25) *
вы обрабатываете данные на той же частоте, на которой работает SPI?

обработка данных ведется на тактовой clk получаемой с выхода pll - 50 MHz. Я "ловлю" спад SCK и этот спад служит разрешающим для записи в приемный буфер очередного бита с линии. Ну а сам этот приемный буфер тактируется от clk.
krux
Если SCK формируется от pll то задания констрейна на входной клок от генератора (который далее подаётся на pll) и derive pll clocks будет достаточно. Если както иначе, то его нужно соответственно описать SCK как тактовый сигнал.
Fynjisx
Цитата(krux @ Aug 1 2013, 20:24) *
я бы сделал fast output register, fast output enable register, fast input register...

погодите... если я правильно понимаю, то каждая IO-ячейка имеет некоторую задержку, которую можно уменьшить используя триггер находящийся в этой ячейке? Тогда получается сигнал CS_N, который идет с моего компонента SPI должен быть пропущен через этот ещё один триггер и я получу дополнительную задержку в такт при выводе сигнала. Если это так, то имеется ли возможность выходной триггер компонента как-то физически вынести в эту IO-ячейку не изменяя при этом верилоговский код компонента?
krux
А что вам мешает описать ваш регистр, формирующий CS_N который находится в вашем блоке, как fast output?
Если мешает то, что это не регистр, то советую хорошенько подумать и переделать так, чтобы это был именно регистр, иначе вам констрейны могут и не помочь вовсе.
Fynjisx
Цитата(krux @ Aug 6 2013, 20:13) *
А что вам мешает описать ваш регистр, формирующий CS_N который находится в вашем блоке, как fast output?

Назначил как fast output. Реально переместился. Посмотрел в Chip Planner. Осталось проверить SPI с новыми назначениями
Fynjisx
В компоненте используется делитель тактового сигнала, выход которого подаётся на внешний вывод ПЛИС, собственно это sck модуля spi.
Назначаю констрейн:
CODE

create_generated_clock \
-divide_by 10 \
-source [get_pins {DIV|clk}] \
-name clkdiv \
[get_pins {DIV|q} // или IO_sck??

вопрос такой: в качестве таргета при назначении выходной частоты указывают непосредственно пин регистра делителя div или все же можно указать IO/пин ПЛИС на который выводится sck сигнал. Этот сигнал тактирует внешнюю схему.
2. так как у меня в дизайне три spi модуля, то для каждого ли указывать констрейн на sck?
3. Наряду с sck подобным образом наружу выводится и сигнал cs_n, каким коонстрейном воспользоваться чтобы контролировать смещения между этими сигналами???
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.