Волощенко
Jul 18 2007, 12:59
Здравствуйте!
В простых FSM этого в симуляторе не наблюдал. А когда синтезирую FSM средней сложности, то заметил, что диаграммы симулятора от FSM, при незначительных изменениях вне этой FSM, существенно меняются.
Например, есть стандартная FSM средней сложности (для простоты все остальное изъято), в которой есть строчка, где регистровому байту А присваивается поле из В, а также есть непрерывное назначение assign C={A,D} вне этой FSM:
always @ (negedge CLK)
begin
case (State)
0: begin State<=1; A<=B[9:2]; end
- - - - - - -
9: begin State<=10: B<=B+1; end
endcase
end
assign C={A,D};
//assign C={E,D};
Вопрос:
Когда в модуле используется назначение assign C={A,D}, то вся диаграмма нарушается, а когда оно закомментировано, и используется assign C={E,D}, с посторонней переменной Е, не управляемой данной FSM, то все формируется, как следует. Когда FSM простая этот эффект не наблюдается, а когда его сложность увеличивается, то появляются эти фокусы в работе симулятора. Кто-то встречался с подобным? Что это может быть? Может синтезатор МАХ-а не справляется?
Спасибо за ответ.
CaPpuCcino
Jul 18 2007, 16:52
чудесааа! шаманство!
что за симулятор? что за симптомы (подробнее, плз, если можно с картинкой и указанием подозрительных мест)? моделирование временное или функциональное?
Волощенко
Jul 19 2007, 05:34
В приложении архив 1.rar с модулем проекта, где все это проявляется в Timing Simulation.
1. В модуле есть два альтернативных назначения, из-за которых все это шаманство и настает:
//assign DD9o={ADCi, RAMrd[31:8]}; // <---- Goog
assign DD9o={SUM0, RAMrd[31:8]}; // <---- Bad
2. Выбор одного из назначений и закрытие другого, порождает две разных диаграммы сигналов от FSM (в данном случае это внутренние сигналы FSM, т.е. - ADSPD9, OE9 и BWED9). Подчеркиваю, сигналов, формируемых внутри FSM. а эти альтернативные назначения находятся вне FSM и не должны как бы влиять на внутренние сигналы FSM.
3. Также прилагается Text.rar с картинками эти диаграмм, правильной и нет.
CaPpuCcino
Jul 21 2007, 20:28
так и не увидел в каком именно месте пошёл сбой (хоть бы кружочком обвели или ещё как).
NB: когда вывешиваете документ лучше вешать его в формате .rtf к нему макросы(коктрые могут быть зловредными вирусами) не пристают (хороший тон)