الموجي هو السبب في أن مثل هذا ، هو هذه الأداة على وعلة؟

Q

quan228228

Guest
التقيت الظواهر الغريبة على الموجي عند تشغيل المحاكاة.

وكجزء من رمز مثل التالي :
دائما @ (int_reset_mine posedge أو clks posedge) يبدأ
إذا كان (int_reset_mine) يبدأ
wstate <= 0 ؛
الكتابة <= # 3 0 ؛
/ / addr <= # 3 0 ؛
dout <= # 3 0 ؛
write_latch <= # 3 0 ؛
second_addr <= # 3 0 ؛
نهاية
آخر تبدأ
حالة (wstate)
0 : أبدأ
write_latch <= # 3 0 ؛
إذا كان (datas_in == dev_id [6]) wstate <= # 3 1 ؛
آخر wstate <= # 3 31 ؛
نهاية
1 : تبدأ
إذا كان (datas_in == dev_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 أو clks posedge) يبدأ
 
لnand_gates :

أحاول طريقتك.ولكنها لا يمكن ان يساعد.شكرا ، على أي حال.ديفيد

 
وأفترض أن سؤالك هو "لماذا لا int_reset_mine تغيير wstate الى 31 بدلا من 0؟"
وأفترض أن هذا هو محاكاة السلوكية ، وليس في مرحلة ما بعد محاكاة الطريق.

وحدة نمطية غير مكتملة من الصعب التصحيح.ربما لديك شيء في "..."الفرع هو التسمم والمحاكاة.هل حاولت تبسيط المشكلة عن طريق حذف خطوط مؤقتا لا علاقة لها من رمز لمعرفة ما اذا كان يختفي المشكلة؟

 
تحميل اصيل والموجي في ديبوسي.
ثم انقر نقرا مزدوجا فوق الماوس في wstate [4:0] حافة تغيير (شكل 0 إلى 31) ،
ربما يكون أداة تساعد في العثور على أي نقطة محركات التغيير غريبا.

على أي حال ، ش الحاجة إلى معرفة ما إذا كان أي latchs كانت infered لwstate من قراءة الشفرة في العاصمة / الهلال الأحمر.

وربما أيضا إضافة # 3 التأخير في تعيين شرط لwstate.

إذا كان (int_reset_mine) يبدأ
wstate <= # 3 0 ؛
...
نهاية

 
أو قد يكون حذف القديمة تجميع الدليل وطازجة إنشاء دليل عمل وsimlate عليه.

قد يكون sometims البيانات القديمة.

 
هذا هو تحليلي ،
1) ليس هناك خطأ في الأداة.

وسأحاول أن أشرح ، تحليلي

كقاعدة الإبهام ، كلما ش اتخاذ posedge لإعادة بك دائما في كتلة ،
دائما داخل كتلة ، استخدم! (إعادة) التي يتم
دائما @ (clk posedge)
يبدأ
إذا (! إعادة تعيين)
....
أيضا
....
نهاية

الآن ما يحدث هنا هو إشارة @ posedge من الراحة ، ونحن ندخل كتلة
ولكن في تلك اللحظة قيمة إعادة إشارة لمحاكاة ما زال منخفضا
، ومن ثم فإنه يدخل في جزء آخر
وهي حالة (wstate)
wstate هي 0 ، والآن تقول مدونة السلوك

إذا كان (datas_in == dev_id [6]) wstate <= # 3 1 ؛
آخر wstate <= # 3 31 ؛
نهاية

على افتراض datas_in لا يساوي dev_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 أو clks posedge) يبدأ
إذا! (int_reset_mine) يبدأ
....(نفس)

 
لا اعتقد ان لها مشكلة شرط إعادة تعيين.
في الواقع ، على غرار ولايات ميكرونيزيا الموحدة هي سيئة حقا.: ع

ما رأيك في "wstate" اكتب في التعليمات البرمجية / المحاكاة؟
أسلاك أو تسجيلات؟
وماذا سيكون محاكاة سوف تعتبره؟
كما wstate سجلات 'مد المنفذ أو الميناء سؤال؟

من gammar ، wstate [4:0] هو كل من المدخلات والمخرجات من جملة دائما.
ترميز هذا سوف يؤدي دائما إلى البلبلة.

أعتقد أن ما ش رأى في الموجي هي قيمة wstate_reg [4:0] 'ق مد الميناء ،
ولكن ليس على سؤال والميناء.

على أي حال ، فصل إعلان wstate مد سؤال الميناء والميناء ، وشراء باستخدام أسلوب من هذا القبيل :

wstate_din ريج [4:0] / / أو wstate_next [4:0] ؛ نتذكر أنه سلك في العالم الحقيقي.
/ / لدينا أن تعلن أنها ريج اكتب ، اذا كنت تستخدم دائما شرط ،
/ / اذا لم نستخدم "تعيين" تصريحات
/ / فيريلوج غبي
wstate_reg ريج [4:0] / / أو wstate_current [4:0] ؛ ريج نتذكر أنه في العالم الحقيقي.

ثم رمز من ولايات ميكرونيزيا الموحدة ش ما تريد.

حظ سعيد.

 

Welcome to EDABoard.com

Sponsor

Back
Top