[an error occurred while processing this directive]
переоптимизация в MAX-e ++
(«Телесистемы»: Конференция «Программируемые логические схемы и их применение»)
[an error occurred while processing this directive]

Отправлено Олег 11 декабря 2000 г. 23:53

Вопрос к продвинутым в MAX-е

Есть AHDL-описание:

SUBDESIGN gliuk
( x1, x2, x3: input;
y: output; )
BEGIN
y = (x1 or x2) and x3;
END;

Этот файл компилируется в MAX++II (v9.23,9.6) для MAX7000,
и занимает 1 LC.

Если заглянуть в файл отчета, раздел "** EQUATIONS **",
то можно увидеть очень интересную оптимизацию:

-- Node name is 'y'
-- Equation name is 'y', location is LC017, type is output.
y = LCELL( _EQ001 $ x3);
_EQ001 = !x1 & !x2 & x3;

т.е. сигнал x3 заводится дважды.
Если такую схему прогонять Design Doctor-ом, у которого включена
проверка "Static hazards: After Synthesis", то он высмеивает вас:

Design Doctor Warning: Logic that drives primitive ':32' contains a static 0 hazard when 'x1'=0, 'x2'=0 and primitive 'x3' changes - hazard found after logic synthesis

И обойти это можно, только выбрав стиль оптимизации WYSIWYG
либо включив многоуровневый синтез.

Так это ошибка компилятора, оптимизатора, Design Doctor-a или моя?


Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
E-mail: 

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru