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

 
 
 
Reply to this topicStart new topic
> Вопрос новичка по ПЛИСам
D-Luxe
сообщение Jun 15 2011, 17:45
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 347
Регистрация: 24-02-10
Из: Пенза
Пользователь №: 55 642



Меня интересует следующий вопрос: допустим описываешь простейшую схему, которая входит в состав большого проекта.
Ниже примерчик.
Код
process(clk)
begin
if ( clk'event and clk='1' ) then
y <= a + b;
z <= c + d;
e <= y + z;
end if;
end process;


Допустим после трассировки y находится в одной части кристалла, а z и e в другой части кристалла. Возможна ли такая ситуация, что y подается на сложение с z со значительной задержкой, в итоге в e защелкивается неправильное значение.

Если такая ситуация возможно то как с этим бороться?

Пример возможно довольно грубый, но надеюсь проблема понятна (проблема которая возникает в синхронной схеме из-за задержек после трассировки).


--------------------
Нелегко оказаться на верном пути, но куда труднее его пройти.
(с) Уилл Роджерс
Go to the top of the page
 
+Quote Post
yuri_d
сообщение Jun 15 2011, 17:51
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 292
Регистрация: 28-01-05
Из: МО, Мытищи
Пользователь №: 2 274



Нужно описывать задержки распространения сигнала. Поищите в гугле constraints guide.
Go to the top of the page
 
+Quote Post
D-Luxe
сообщение Jun 15 2011, 17:53
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 347
Регистрация: 24-02-10
Из: Пенза
Пользователь №: 55 642



Цитата(yuri_d @ Jun 15 2011, 21:51) *
Нужно описывать задержки распространения сигнала. Поищите в гугле constrain guide.

Хотите сказать что эта проблема решается написанием констрейна на clk ?


--------------------
Нелегко оказаться на верном пути, но куда труднее его пройти.
(с) Уилл Роджерс
Go to the top of the page
 
+Quote Post
yuri_d
сообщение Jun 15 2011, 18:02
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 292
Регистрация: 28-01-05
Из: МО, Мытищи
Пользователь №: 2 274



Да, для Вашего примера будет достаточно констрейна на clk. Но это в итоге покроет только пути y -> e и z -> e. Сумматоры a+b и c+d остаются не покрытыми, так как неизвестно происхождение a, b, c и d.
Go to the top of the page
 
+Quote Post
bogaev_roman
сообщение Jun 16 2011, 08:54
Сообщение #5


Профессионал
*****

Группа: Свой
Сообщений: 1 088
Регистрация: 20-10-09
Из: Химки
Пользователь №: 53 082



Цитата
Допустим после трассировки y находится в одной части кристалла, а z и e в другой части кристалла. Возможна ли такая ситуация, что y подается на сложение с z со значительной задержкой, в итоге в e защелкивается неправильное значение

Вобще ситуация вполне возможна при большой загрузке кристалла и большой разрядности сумматоров. При задании тактовой частоты Вы сможете определить максимальную тактовую частоту register-to-register.
Если a b c d есть выходы регистра или триггера той же тактовой частоты, то задание тактовой частоты clk будет достаточным для определения максимальной тактовой частоты.
Если выходы a b c d выходные триггеры другой тактовой частоты, то требуется задать соотношения этих тактовых частот и создать схему синхронизации перехода из одного клокового домена в другой.
Если это вообще неизвестные входные сигналы, то требуется задать ограничения и соотношения по входам, но обычно в любом случае их каким то образом записывают в регистры через приемную логику.
Go to the top of the page
 
+Quote Post
nckkm
сообщение Jun 22 2011, 06:37
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 43
Регистрация: 13-04-10
Пользователь №: 56 623



Цитата(D-Luxe @ Jun 15 2011, 21:45) *
Меня интересует следующий вопрос: допустим описываешь простейшую схему, которая входит в состав большого проекта.
Ниже примерчик.
Код
process(clk)
begin
if ( clk'event and clk='1' ) then
y <= a + b;
z <= c + d;
e <= y + z;
end if;
end process;


Допустим после трассировки y находится в одной части кристалла, а z и e в другой части кристалла. Возможна ли такая ситуация, что y подается на сложение с z со значительной задержкой, в итоге в e защелкивается неправильное значение.

Если такая ситуация возможно то как с этим бороться?

Пример возможно довольно грубый, но надеюсь проблема понятна (проблема которая возникает в синхронной схеме из-за задержек после трассировки).


у меня 3 встречных вопроса:
1) делали вы функциональную симуляцию проекта или модуля? все ли там впорядке?
2) насколько чип заполнен? если заполнение небольшое, скажем 30%, то врядли это проблема задержек
3) какова рабочая частота и какие разрядности сумматоров? на небольших частотах, скажем 10-20Мгц врядли проблема с задержками распространения, если разрядности сумматоров небольшие, скажем 8-16 бит, то вряд ли это проблема задержек распространения
Go to the top of the page
 
+Quote Post
D-Luxe
сообщение Jun 22 2011, 16:30
Сообщение #7


Местный
***

Группа: Свой
Сообщений: 347
Регистрация: 24-02-10
Из: Пенза
Пользователь №: 55 642



Цитата(nckkm @ Jun 22 2011, 10:37) *
у меня 3 встречных вопроса:
1) делали вы функциональную симуляцию проекта или модуля? все ли там впорядке?
2) насколько чип заполнен? если заполнение небольшое, скажем 30%, то врядли это проблема задержек
3) какова рабочая частота и какие разрядности сумматоров? на небольших частотах, скажем 10-20Мгц врядли проблема с задержками распространения, если разрядности сумматоров небольшие, скажем 8-16 бит, то вряд ли это проблема задержек распространения

Я чисто гипотетически спрашиваю, возможна ли такая проблема. На практике пока не сталкивался с такой ситуацией.


--------------------
Нелегко оказаться на верном пути, но куда труднее его пройти.
(с) Уилл Роджерс
Go to the top of the page
 
+Quote Post
artix
сообщение Jul 7 2011, 08:30
Сообщение #8


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

Группа: Свой
Сообщений: 136
Регистрация: 19-10-10
Из: Киев
Пользователь №: 60 262



Цитата(bogaev_roman @ Jun 16 2011, 12:54) *
....Если выходы a b c d выходные триггеры другой тактовой частоты, то требуется задать соотношения этих тактовых частот и создать схему синхронизации перехода из одного клокового домена в другой.....


извиняюсь если офтоп но не хотелось плодить новую тему раз уж в этой зацепили этот вопрос. laughing.gif а как правильно обконстрейнить кросклоковую передачу сигнала между двумя клоковыми доменами в xilinx, схема синхронизации стандартная на базе тригеров. Заранее благодарен
Go to the top of the page
 
+Quote Post
Shtirlits
сообщение Jul 7 2011, 09:10
Сообщение #9


Знающий
****

Группа: Свой
Сообщений: 845
Регистрация: 18-10-04
Из: Pereslavl-Zalessky, Russian Federation
Пользователь №: 905



На границе нужно сделать лишь две вещи, на примере fifo питаемого зависимыми клоками:

1) обеспечить минимальную длину связей (MAXDELAY)
NET "*BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc(*)" MAXDELAY = 450 ps;
NET "*BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc(*)" MAXDELAY = 450 ps;

2) попросить анализатор игнорировать нарушения setup и hold, так как они неизбежны (TIG)
NET "*BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc(*)" TIG;
NET "*BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc(*)" TIG;
Go to the top of the page
 
+Quote Post

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

 


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


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