|
|
  |
Констрейны ввода ввывода, Помогите с констрейнами |
|
|
|
Aug 1 2013, 16:01
|
студент
   
Группа: Свой
Сообщений: 571
Регистрация: 3-07-08
Из: Russia
Пользователь №: 38 712

|
Привет Всем. Сделал SPI модуль для связи CIII с АЦП AD7457. Охота проверить времянки. Опыта в написании констрейном ввода/вывода - ноль. Помогите написать констрейны для тайминговой диаграммы представленной на рисунке. Кстати, попутный вопрос SCLK сделал на обычном счетчике делителе и вывел на обычный пин IO ПЛИС. Надо ли внутри плис делать эту линию GLOBAL? Да и ещё, имеется ли в ModelSim возможность посмотреть реальные задержки после Квартусовского размещения компонентов?
Эскизы прикрепленных изображений
--------------------
С Уважением...
|
|
|
|
|
Aug 1 2013, 17:24
|
Профессионал
    
Группа: Свой
Сообщений: 1 700
Регистрация: 2-07-12
Из: дефолт-сити
Пользователь №: 72 596

|
я бы сделал fast output register, fast output enable register, fast input register, и обеспечил бы все остальные временные характеристики - кратно тактам, и заданием одного единственного constraint - на тактовый сигнал, а не ковырялся бы с отдельными времянками. Цитата Надо ли внутри плис делать эту линию GLOBAL она у вас во всем проекте тянется или только в одном блоке? если второе - то лучше не надо, на прилично "забитом" кристалле можете сделать хуже, чем без.
--------------------
провоцируем неудовлетворенных провокаторов с удовольствием.
|
|
|
|
|
Aug 1 2013, 18:04
|
студент
   
Группа: Свой
Сообщений: 571
Регистрация: 3-07-08
Из: Russia
Пользователь №: 38 712

|
Цитата(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)  она у вас во всем проекте тянется или только в одном блоке? Ну как...ммм... все клоки регистров я так понимаю по ней идут...
--------------------
С Уважением...
|
|
|
|
|
Aug 1 2013, 18:25
|
Профессионал
    
Группа: Свой
Сообщений: 1 700
Регистрация: 2-07-12
Из: дефолт-сити
Пользователь №: 72 596

|
можно через 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?
--------------------
провоцируем неудовлетворенных провокаторов с удовольствием.
|
|
|
|
|
Aug 2 2013, 05:40
|
студент
   
Группа: Свой
Сообщений: 571
Регистрация: 3-07-08
Из: Russia
Пользователь №: 38 712

|
Цитата(krux @ Aug 1 2013, 21:25)  вы обрабатываете данные на той же частоте, на которой работает SPI? обработка данных ведется на тактовой clk получаемой с выхода pll - 50 MHz. Я "ловлю" спад SCK и этот спад служит разрешающим для записи в приемный буфер очередного бита с линии. Ну а сам этот приемный буфер тактируется от clk.
--------------------
С Уважением...
|
|
|
|
|
Aug 6 2013, 12:56
|
студент
   
Группа: Свой
Сообщений: 571
Регистрация: 3-07-08
Из: Russia
Пользователь №: 38 712

|
Цитата(krux @ Aug 1 2013, 20:24)  я бы сделал fast output register, fast output enable register, fast input register... погодите... если я правильно понимаю, то каждая IO-ячейка имеет некоторую задержку, которую можно уменьшить используя триггер находящийся в этой ячейке? Тогда получается сигнал CS_N, который идет с моего компонента SPI должен быть пропущен через этот ещё один триггер и я получу дополнительную задержку в такт при выводе сигнала. Если это так, то имеется ли возможность выходной триггер компонента как-то физически вынести в эту IO-ячейку не изменяя при этом верилоговский код компонента?
--------------------
С Уважением...
|
|
|
|
|
Aug 9 2013, 07:00
|
студент
   
Группа: Свой
Сообщений: 571
Регистрация: 3-07-08
Из: Russia
Пользователь №: 38 712

|
Цитата(krux @ Aug 6 2013, 20:13)  А что вам мешает описать ваш регистр, формирующий CS_N который находится в вашем блоке, как fast output? Назначил как fast output. Реально переместился. Посмотрел в Chip Planner. Осталось проверить SPI с новыми назначениями
--------------------
С Уважением...
|
|
|
|
|
Aug 14 2013, 05:48
|
студент
   
Группа: Свой
Сообщений: 571
Регистрация: 3-07-08
Из: Russia
Пользователь №: 38 712

|
В компоненте используется делитель тактового сигнала, выход которого подаётся на внешний вывод ПЛИС, собственно это 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, каким коонстрейном воспользоваться чтобы контролировать смещения между этими сигналами???
--------------------
С Уважением...
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|