чому сигнал, як цей, є інструментом у цій помилку?

Q

quan228228

Guest
Я зустрів дивного явища на сигнал при запуску моделювання.

Частина коду, як наступним чином:
завжди @ (int_reset_mine posedge або posedge clks) починають
якщо (int_reset_mine) починають
wstate <= 0;
написати <= # 3 0;
/ / Ел <= # 3 0;
Даут <= # 3 0;
write_latch <= # 3 0;
second_addr <= # 3 0;
кінець
Ьедт
випадку (wstate)
0: початок
write_latch <= # 3 0;
якщо (== datas_in ID розробника [6]) wstate <= # 3 1;
ще wstate <= # 3 31;
кінець
1: початок
якщо (== datas_in ID розробника [5]) wstate <= # 3 2;
ще wstate <= # 3 31;
кінець
.........
.........

Відповідний сигнал, як нижче:<img src="http://images.elektroda.net/100_1161251515.jpg" border="0" alt="why the waveform is like this, is this a tool's bug?" title="Тому сигнал, як цей, є помилку на цій інструменту?"/>

<img src="http://images.elektroda.net/3_1161251700.jpg" border="0" alt="why the waveform is like this, is this a tool's bug?" title="Тому сигнал, як цей, є помилку на цій інструменту?"/>
Спасибі.Додано через 5 хвилин:Друга картина збільшення від першої картини, коли сигнал "int_reset_mine" зростає.

 
Здавалося б, інструмент помилку!
Просто спробуйте змінитиКод:

завжди @ (int_reset_mine posedge або posedge clks) починають
 
в nand_gates:

я пробувати ваш метод.Але це не може допомогти.Спасибі, в будь-якому випадку.Девід

 
Я вважаю, ваше запитання "чому int_reset_mine wstate зміни в 31, а не 0?"
Я вважаю, це поведінкові моделювання, а не пост-маршрут моделювання.

Неповної модуль важко налагодити.Може бути, щось у "..."Розділ отруєння моделювання.Ви намагалися спростити проблему, тимчасово видаливши пов'язаних рядків коду, щоб побачити, якщо проблема зникає?

 
RTL навантаження і хвилі в Дебюссі.
потім двічі натисніть кнопку миші на wstate [4:00] зміни краю (від 0 до 31),
може бути, програма допоможе з'ясувати, які точки диски дивні зміни.

у всякому разі, у потрібно перевірити, якщо який-небудь Латчс були infered для wstate на читання коду в DC / RC.

А може бути, додати # 3 затримки скидання положення про wstate.

якщо (int_reset_mine) починають
wstate <= # 3 0;
...
кінець

 
або може видалити старий каталог компіляції і заново створити робочий каталог та simlate його.

Може бути, sometims старі дані.

 
Це мій аналіз,
1) немає помилки в програмі.

Я спробую пояснити, мій аналіз

як емпіричне правило, коли у приймати posedge скидання завжди у вашому блоці,
завжди всередині блоку, використання! (скидання), який
завжди @ (posedge CLK)
починати
якщо (! скидання)
....
ще
....
кінець

Що відбувається зараз тут @ posedge відпочинку сигнал, ми входимо у блок
але в цей час скинути значення сигналу для симулятора залишається низьким, отже, він набуває іншої частини
яка випадку (wstate)
wstate дорівнює 0, то код говорить

якщо (== datas_in ID розробника [6]) wstate <= # 3 1;
ще wstate <= # 3 31;
кінець

припускаючи datas_in не дорівнює ID розробника [6]
ми вводимо ще частина рішень wstate = 31
(Будь ласка, не в тому, що близько зору сигналів, wstate приймає # 3 (timeunits), що підтверджує, що це код, який menancing wstate <= # 3 31;)

рішення слідувати вищезгаданої thumbrule (близько активний низький скидання)
якщо і є якісь сумніви Прохання писати сюди

 
echo47 пише:

Я вважаю, ваше запитання "чому int_reset_mine wstate зміни в 31, а не 0?"
 
зміни в negedge ini_reset замість posedge (у блоці завжди чутливості список) і подивитися, що отримати у

 
Я думаю, ваші асинхронного скидання чином не закодовано.
спробуйте наступне:
/ / / /

завжди @ (int_reset_mine posedge або posedge clks) починають
якщо! (int_reset_mine) починають
....(Те ж)

 
Я не думаю, що його проблема скидання положення.
Насправді, стиль FSM це дійсно погано.: P

Як ти думаєш, про "wstate" введіть код / моделювання?
Провід або регістри?
А що буде симулятор буде розглядати це як?
Як wstate-регістрів D порт або Q порт?

З gammar, wstate [4:00] є як вхід і вихід завжди застереження.
Таке кодування завжди буде призводити до плутанини.

Я думаю, що у бачив у сигналу є значення wstate_reg [4:00] 'и D порт,
а не до порту Q.

У всякому разі, окремі декларації wstate порт D і Q порт, купити з використанням таких стиль:

р wstate_din [4:00] / / або wstate_next [4:00]; пам'ятаю це провід у реальному світі.
/ / Ми оголосити його в якості р-типу, при використанні завжди становище,
/ / Якщо ми не будемо використовувати "призначити" заяви
/ / Дурні Verilog
р wstate_reg [4:00] / / або wstate_current [4:00]; пам'ятаю це р в реальному світі.

Тоді код FSM те, що у хочу.

Бажаю удачі.

 

Welcome to EDABoard.com

Sponsor

Back
Top