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

Пропадает имя цепи

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

 

Xilinx, ISE 12.3. Микросхема - Spartan-6.

 

В проекте на Verilog есть глобальные тактовые сигналы Clock1 и Clock2.

 

В зависимости от настроек проекта они могут как различаться (т.е. идти из разных источников), так и быть одинаковыми,

т.е. при некоторых настройках проекта синтезируется строчка

assign Clock2 = Clock1;

В проекте есть файл констрейнов, в котором задаются требования на Clock1 и Clock2.

Типа

NET "Clock1" TNM_NET = "Clock1";
TIMESPEC TS_Clock1 = PERIOD "Clock1" 10.00 ns;

NET "Clock2" TNM_NET = "Clock2";
TIMESPEC TS_Clock2 = PERIOD "Clock2" 10.00 ns;

Всё прекрасно синтезируется, разводится и работает, пока не делаю настройки проекта так, чтобы синтезировалась строчка

assign Clock2 = Clock1;

то есть два тактовых сигнала становятся эквивалентны.

В этом случае всё синтезируется, но при выполнении Translate оно начинает ругаться на констрейны и говорит, что цепи Clock1 в нетлисте нету...

 

Цепь Clock1 объявлена следующим образом:

wire        Clock1/* synthesis syn_keep=1 */;

Если смотреть Technology Schematic в Synplify, цепь Clock1 там есть.

И всё равно потом она куда-то теряется.

 

Собственно, вопрос: кто виноват и чего делать, чтобы цепь из нетлиста точно:) не терялась к тому моменту, как NGDBuild начинает сверять список цепей со списком ограничений на цепи?

 

Всем заранее спасибо за ответы...

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


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

2 Koluchiy

законстрейнте и в UCF чтоб неты не убирал

(думаю что как раз после синтеза мапер или роутер их и оптимизирует, в результате чего она и пропадает из нетлиста)

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


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

try this type constraints in Verlog code:

(* KEEP = "TRUE" *)wire Clock1;

(* KEEP = "TRUE" *)wire Clock2;

It seems to me these constraints are for XST...

 

2 Koluchiy

законстрейнте и в UCF чтоб неты не убирал

(думаю что как раз после синтеза мапер или роутер их и оптимизирует, в результате чего она и пропадает из нетлиста)

Это про что?

Строчка

NET ”Clock1” KEEP;

в файле UCF дает точно такой же результат, ошибку "нету цепи в нетлисте".

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


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

Verilog:

/* synthesis syn_keep = 1       */

 

UCF:

INST "name" S;

 

 

Но думаю что это в данном случае не сработает, потому что не может быть у 1го нета в нетлисте 2 имени.... хотя очень интерсно взглянуть как оно там в едифе после Synplify, они ведь там по идее как то оба должны быть...

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


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

Verilog:
/* synthesis syn_keep = 1       */

UCF:

INST "name" S;

Но думаю что это в данном случае не сработает, потому что не может быть у 1го нета в нетлисте 2 имени.... хотя очень интерсно взглянуть как оно там в едифе после Synplify, они ведь там по идее как то оба должны быть...

Близко, но я делал по другому, и в подобной ситуации оно даже работало (!).

У меня была такая ситуация: есть один net, но он имеет человеческое имя на верхнем уровне проекта и совсем нечеловеческое иерархическое имя там, где этому net'у присваиваются значения. А мне хотелось, чтобы имя в ChipScope было человеческое.

Я использовал constraint SAVE применительно к net'у на верхнем уровне проекта, и в скомпилированном проекте оставалось именно это имя net'а. Работало в ISE 10.1/11.5.

На VHDL это выглядело так:

attribute S of signal_name: signal is "yes"

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


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

2 Boris_TS

мы это с вами пару месяцев назад кажется обсуждали.

Тут же ситуация другая: 2 глобальных клоковых нета должны иметь разные имена... По идее Synplify должен разрулить эту ситуация если в логе не написал что всё равно объединил неты, и вот тут интересно - как?

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


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

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

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

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

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

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

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

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

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