Xilinx XS - пост-і пре-синтезу не збігаються

S

sujithchakra

Guest
Привіт,

Я використовую Xilinx XST синтезувати моєї конструкції.Після синтезу моделювання не відповідає попереднього синтезу моделювання.Я зрозумів, де ця проблема стоїть.Але я не розумію, як знімати це біда.

Нижче наводиться один із блок завжди в моїй конструкції.

" and assigns wb_dat_o with " 8'bx
" value.

В до-моделювання синтезу, якщо wb_we_i не дорівнює 0, то симулятор виконує "інший блок"
і привласнює wb_dat_o з "8'bx"
значення.

".

Якщо він дорівнює 1, то тренажер виконує ", якщо блок".".

На посаді моделювання синтезу, незалежно від вартості wb_we_i (0 або 1), симулятор виконує тільки "якщо блок".Я не розумію, чому це відбувається.Будь ласка, допоможіть.

завжди @ (posedge wb_clk_i)
починати
якщо (wb_we_i == 0)
випадку (wb_adr_i) / / резюме parallel_case
3'b000: wb_dat_o <= prer [7:00];
3'b001: wb_dat_o <= prer [15:08];
3'b010: wb_dat_o <= CTR;
3'b011: wb_dat_o <= гХг / / написати це передати реєстр (txr)
3'b100: wb_dat_o <= СР / / писати, регістр команд (сг)
3'b101: wb_dat_o <= txr;
3'b110: wb_dat_o <= сг;
3'b111: wb_dat_o <= 0; / / зарезервовано
endcase
ще
випадку (wb_adr_i)
3'b000: wb_dat_o <= 8'bx;
3'b001: wb_dat_o <= 8'bx;
3'b010: wb_dat_o <= 8'bx;
3'b011: wb_dat_o <= 8'bx;
3'b100: wb_dat_o <= 8'bx;
3'b101: wb_dat_o <= 8'bx;
3'b110: wb_dat_o <= 8'bx;
3'b111: wb_dat_o <= 8'bx;
endcase
кінецьЯ використовую ModelSim PE Verilog студент видання для імітації списку з'єднань і це кидання помилка "# ** Увага: Дизайн розмір 47649 заяв та 3176 аркуша випадках перевищує ModelSim PE Student Edition рекомендував потенціалу.

. Is this a possible reason? Please help.

# Очікувати виконання вельми негативний вплив. ".
Чи є це можлива причина? Будь ласка, допоможіть.

Спасибі

 
Подивіться на XST RTL схемою.
може бути,
Код:CS0 р, CS1, CS2, CS3, CS4, CS5, CS6, ЧС7;

завжди @ (posedge wb_clk_i)

починати

якщо (= wb_we_i 1'b0)

випадку (wb_adr_i) / / резюме parallel_caseвипадку (wb_adr_i) / / резюме parallel_case

3'b000: wb_dat_o <= prer [7:00];

3'b001: wb_dat_o <= prer [15:08];

3'b010: wb_dat_o <= CTR;

3'b011: wb_dat_o <= гХг / / написати це передати реєстр (txr)

3'b100: wb_dat_o <= СР / / писати, регістр команд (сг)

3'b101: wb_dat_o <= txr;

3'b110: wb_dat_o <= сг;

3'b111: wb_dat_o <= 0; / / зарезервовано

endcase

ще

випадку (wb_adr_i) / / резюме parallel_case

3'b000: wb_dat_o <= 8'bx;

3'b001: wb_dat_o <= 8'bx;

3'b010: wb_dat_o <= 8'bx;

3'b011: wb_dat_o <= 8'bx;

3'b100: wb_dat_o <= 8'bx;

3'b101: wb_dat_o <= 8'bx;

3'b110: wb_dat_o <= 8'bx;

3'b111: wb_dat_o <= 8'bx;

endcase

кінець
 
привіт sujithchakra

в процесі синтезу, кошти не будуть намагатися вирішити, як "<= 'ВХ" логіки.І тому хтось хотів додати "ВХ" логіки тільки для функції налагодження.

Я думаю, що ваш канал не буде включати в себе ELSE лавці після синтезу.

Спасибі

 
Привіт sujithchakra,

Ну, а ваш блок завжди здаються трохи непарних особливо після того, іншої заяви, але я думаю, що це не викличе жодних проблем з синтезу.

я підозрюю, що проблема викликає в "випадку (wb_adr_i)"
те, що ширина wb_adr_i?якщо wb_adr_i це визначити, як 3bits, ніж завжди блоку в порядку, але якщо і визначити wb_adr_i більш 3bits то я думаю, завжди блок може викликати проблеми в синтезі.спробуйте змінити код на "справу (wb_adr_i [2:00])" на обох, якщо й іншу заяву.

 
Завдяки littlebu.Ваша пропозиція допоміг мені.

 
Привіт,

Проблема вирішена.Я замінив 8'bx по 8'bz, тому що нічого подібного 8'bx на апаратному рівні.З 8'bx представляє don'tcares, синтез деяких вибирає інструмент оптимального значення на місці 8'bx.Тепер моя посада синтезу моделювання працює відмінно.

Дякую всім вам за ваші пропозиції.

 

Welcome to EDABoard.com

Sponsor

Back
Top