بينما الحلقة اعتمادا على مدخلات وسيطة

T

treehugger

Guest
الآن هذا هو السؤال الأساسي :

رمز ينظر أدناه يذهب إلى حلقة لا نهائية خلال التوليف ، وبالتالي توقف بلدي sythesis أداة (مع وجود خطأ مثل "حلقة وقد كرر 64 مرة حتى وأنا وقف بلاه بلاه").السبب وراء ذلك هو أن "البيانات" يتم تعيينه إلى العاشر (غير معروف ، غير معروف) والتقييم (ط <البيانات) غلة العاشر ، وحلقة في حين ينفذ إذا كان الشرط هو العاشر.

ليست هذه مشكلة واضحة؟أنا في عداد المفقودين بعض النقطة؟ما هو الحل؟وحدة سبيل المثال (البيانات ، وحساب المثلثات)

مدخلات [4:0] البيانات ؛
علم حساب المثلثات المدخلات ؛
الإخراج التدريجي ؛
ريج التدريجي ؛
ط صحيحا ؛

دائما @ علم حساب المثلثات
يبدأ

خارج = 0 ؛
ط = 0 ؛
بينما (ط <البيانات)
يبدأ
= ~ الخروج التدريجي ؛
نهاية

نهاية

endmoduleأنا فقط بحاجة حلقة الذي يستمر حتى يضرب عدد متغير المعطى من قبل المستخدم ، وليس حتى على قيمة ثابتة محددة سلفا..

كيف؟

 
مرحبا
بينما الحلقة ليس synthesiable
الرجاء إعادة كتابة التعليمات البرمجية باستخدام synthesiable عبارة شرطية

شكرا
هيثم

 
مرحبا.
هذه محاولة واحدة.
استخدام إشارة تحميل لتحميل قيمة.

وحدة سبيل المثال (البيانات ، وحساب المثلثات ، وتحميل)

مدخلات [4:0] البيانات ؛
إدخال علم حساب المثلثات ، والحمل ؛
الإخراج التدريجي ؛
ريج [4:0] القيمة ؛
ريج التدريجي ؛
ط صحيحا ؛

دائما @ علم حساب المثلثات
يبدأ

خارج = 0 ؛
ط = 0 ؛
إذا كان (تحميل)
= قيمة البيانات ؛
أيضا
بينما (ط <قيمة)
يبدأ
= ~ الخروج التدريجي ؛
نهاية

نهاية

endmodule

 

Welcome to EDABoard.com

Sponsor

Back
Top