[an error occurred while processing this directive]
|
Достаточно провести замену выражения:
assign RB6= ((~Register[7])|RE1) ? ((N019|N015)? 1'bz : 0) : 1;
на следующий эквивалент (?):
wire tmpInOut;
assign tmpInOut= (~Register[7])|RE1;
assign RB6= tmpInOut&(N019|N015) ? 1'bz : ((tmpInOut) ? 1 : 0);
(в максе реализована достаточно кривая версия верилога)
----------------------------------------
Получить заказанные 27 ячеек, в данной структуре, боюсь вряд-ли получится:
- сдвиговый регистр = 24 ячейки;
- логическая операция на выходе требует дополнительной ячейки *) = 15;
-- итого 39,
ну и для размещения некоторой логики и трассировки потребовалось еще аж 4 ячеки - куда уж меньше?
Synplify не учитывает выходы, поэтому и результат - 27.
*) это связано с внутренней структурой ячеек - логика размещена ДО триггера.
Для проверки, например, отключите выходную логику (ИЛИ) в первых 7-и строках и получите 36 ячеек, причем настроеки компилятора это вряд-ли поправят (в лучшую сторону :-).
E-mail: info@telesys.ru