Цитата(LeonY @ Jun 27 2007, 19:33)

max_fanout часто нужен, особенно на устройствах Actel (antifuse) - там никаких коммутаторов-мультиплексоров нет и в помине (проволочки - fuse). В эпоху схемных дизайнов и хилых устройств с 1 - 2 глобальными цепями приходилось за буферированием следить вручную. Теперича эта проблема отходит на задний план, т.к. устройства стали побогаче и редко кто чего делает как схему, а умный синтезатор за этим сам следит.
Про пережигаемые речь не идет. Речь об FPGA, в которой вся схема межсоединений строится на мультиплексорах, а мультиплексор сам по себе какой-никакой буфер.
Цитата(LeonY @ Jun 27 2007, 19:33)

Не очень понял пример с
"clock enable". Тут есть пара-другая вопросов. Например такой: использование всяческих "clock enable" является порочной практикой изначально (gated clock), поэтому отстаньте от бедного синтезатора - он не умеет ХОРОШО упихивать ПЛОХИЕ проекты. Не воспринимайте, пожалуйста, это как личный выпад, сам иногда использую такие штуки (например, когда места на кристале не хватает и хоть застрелись), но делать это надо сознательно и очень осторожно, а лучше не делать.
То есть как? Вот такой простой и валидный код:
Код
reg a;
reg enable;
reg result;
always @(posedge clk) begin
if(enable) result <= a;
end
порождает clock enable. Что тут ненормального или ПЛОХОГО? И как вообще без clock enable реализовать такую функциональность?
Что касается мультициклов, то и это тоже, насколько мне известно, не является плохим подходом - если часть дизайна не может и не должна работать на самой высокой тактовой, но при этом не хочется делать разные клоковые домены, то обконстрейнить мультициклами - самое оно. В чем криминал?
«Отыщи всему начало, и ты многое поймёшь» К. Прутков