ما المشكلة مع هذا البرنامج (عمال خدمات إنمائية محلية كاملة)

M

magma1981

Guest
الشفرة عن عمال خدمات إنمائية محلية :

وحدة dds8 (أف سي ، وأجهزة الكمبيوتر الشخصية ، clk ، rstn ، sinout ، cosout) ؛
الناتج [11:0] sinout ، cosout ؛
مدخلات [41:0] التيسير ؛ / / أف سي هو تواتر كلمة الخارجية دبابيس
مدخلات [16:0] الجنائي ؛ / / كمبيوتر هي مرحلة كلمة
مدخلات clk ، rstn ؛

ريج [11:0] sinout ، cosout ، درجة الحرارة ، temp1 ؛
ريج [41:0] acc0 ، acc1 ، ؛
ريج [16:0] acc2 ، acc3
، acc4 ؛
ريج [14:0] add0 ، add1 ، acc5 ، acc6 ؛
ريج [0:0] msb ، smsb ، spipe ، spipe1 ؛
ريج [0:0] cmsb ، csmsb ، cpipe ، cpipe1 ؛

دائما @ (posedge clk)
يبدأ
إذا (! rstn)
يبدأ
acc0 <= 42'b000000000000000000000000000000000000000000 ؛
acc1 <= 42'b000000000000000000000000000000000000000000 ؛
acc2 <= 17'b00000000000000000 ؛
acc3 <= 17'b00000000000000000 ؛
acc4 <= 17'b00000000000000000 ؛
msb <= 1'b0 ؛
smsb <= 1'b0 ؛
cmsb <= 1'b0 ؛
csmsb <= 1'b0 ؛
spipe <= 1'b0 ؛
cpipe <= 1'b0 ؛
spipe1 <= 1'b0 ؛
cpipe1 <= 1'b0 ؛
نهاية
أيضا
يبدأ
acc0 <= acc1 التيسير ؛
acc1 <= acc0 ؛ / / مرحلة تراكم ، 42bits
acc2 <= acc1 [41:25] ؛ / / استخدام عالية 17bits كمدخل للالأفعى
acc3 <= acc2 الجنائي ؛ / / مرحلة تردد كلمة كلمة ، وكلمة مدمج
acc4 <= acc3 32768 ؛ / / acc3 هو addr.من شرط ، acc4 هو addr.of كوس
acc5 <= acc3 [14:0] ؛ / / acc5 هو addr.من شرط
acc6 <= acc4 [14:0] ؛ / / acc6 هو addr.من كوس
spipe <= acc3 [16] ؛ / / وخطوط الأنابيب
spipe1 <= spipe ؛
msb <= spipe1 ؛
smsb <= acc3 [15] ؛
cpipe <= acc4 [16] ؛
cpipe1 <= cpipe ؛
cmsb <= cpipe1 ؛
csmsb <= acc4 [15] ؛
نهاية
نهاية

دائما @ (posedge clk)
يبدأ
إذا كان (smsb)
يبدأ
add0 <= ~ acc5 ؛ / / عندما smsb = 1 ، backword تحقق طرفية المستعملين المحليين
نهاية
أيضا
يبدأ
add0 <= acc5 ؛
نهاية
إذا كان (msb)
يبدأ
sinout < 1 = ~ مؤقت ؛ / / عندما msb = 1 ، واستكمال قواعد الانتاج
نهاية
أيضا
يبدأ
sinout <= مؤقت ؛ / / أو قيمة الناتج الإيجابي
نهاية
إذا كان (csmsb)
يبدأ
add1 <= ~ acc6 ؛
نهاية
أيضا
يبدأ
add1 <= acc6 ؛
نهاية
إذا كان (cmsb)
يبدأ
cosout <= ~ temp1 1 ؛
نهاية
أيضا
يبدأ
cosout <= temp1 ؛
نهاية
نهاية

romsin خطيئة). عنوان (add0). inclock (clk). ف (مؤقت)) ؛
romsin كوس). عنوان (add1). inclock (clk). ف (temp1)) ؛
endmodule

بيانات المدمج هو 1 / 4 دورة وهو شرط لا يكتمل matlab
س = 0:2 * بي / 2 ^ 17:2 متعصب * * (2 ^ 15-1) / 2 ^ 17 ؛ ص = الجولة (الخطيئة (خ) * 2 ^ 11)

عندما ط بمحاكاة الموجي ، كان هناك خطأ واحد للبيانات الانتاج.

عندما كانت تعالج 32767 ، بيانات الناتج -2048 (تكملة مدونة) ، ولكن البيانات 2048

عندما يكون العنوان هو 32767 ، وحتى الآن لا أعرف كيفية التعامل مع هذه المشكلة

plz.مساعدتي للخروج من المشكلة
الماضي الذي حرره magma1981 على 09 سبتمبر 2005 14:14 ؛ تحرير 1 مرة في المجموع

 
خطأ ما لديكم من MATLAB المعادلة.وتشكو الحكومة :
"الحد الأقصى لحجم المتغيرات التي يسمح بها هذا البرنامج تجاوز"

sinout ، cosout ، درجة الحرارة ، temp1 لا يمكن أبدا -2048 لأنك أعلنت أنها لا تحمل توقيعا.

كما يرجى استخدام الكود "" الزر حتى يمكننا أن نرى الطعج الخاصة بك.

 
أوه ، أنا آسف جدا

س = 0:2 * سعيد / (2 ^ 17) : 2 * (2 ^ 15-1) * سعيد / (2 ^ 17) ؛
ص = الجولة (الخطيئة (خ) * 2 ^ 11) ؛

موافق

أحاول جاهدة لتحسين

 
لا بأس فيريلوج مدونة جولة أوروغواي ينبغي لها أن تعمل!
وهنا برنامجها أستعمل لتوليد شرط لا valuse
للروم...

الرمز :

# تشمل <math.h>

# تشمل <stdio.h>

الرئيسية (الفراغ)

(

تعويم ط ، ك ؛

تطفو بي = 3.141592653 ؛(ط = 0.0 ؛ ط <32768.0 ؛ ط ) (

ك = 2047.0 * خطيئة ((بي * ط) / (2.0 * 32768.0)) ؛

printf ( "٪.3 س \ ن" ، (int (ك) ؛

)

)
 
لecho47 :

كنت رمز للدلالة على تكملة قيمة سالبة

عندما محاكاة الموجي ، لقد غيرت sinout على وقع عشريبعد 35 دقيقة :لnand_gates :

ولكنني وضعت التيسير = 68719476740 والكمبيوتر = 0 ،

عندما add0 أو add1 = 32767 = 32767 ، ناتج sinout أو cosout هو -2048 (رمز تكملة)

ماذا حدث؟

nand_gates ، يمكن أن تقول لي E_mail جولة أوروغواي ، ولدي بعض المشاكل التي لا تجعل ط

بمعنى

 
مرحبا magma1981 -- الدور ربع sinewave الخاص بك الجدول غني 0 حتي 2048.. وهو عدد 12 بت (أنك تفسير كما وقعت على نحو ما).وهذا الفائض.انها تريد الذهاب 0 حتي 2047 بدلا من :
ص = الجولة (2047.5 * الخطيئة (بي / 2 * (0:32767) / 32768)) '؛

ما في romsin الوحدة الخاصة بك؟كنت تفكر في هذا :
الرمز :

وحدة romsin (العنوان ، inclock ، ف) ؛

مدخلات inclock ؛

مدخلات [14:0] معالجة ؛

الناتج ريج [11:0] ف ؛دائما @ (posedge inclock)

قضية (العنوان)

0 : ف <= 0 ؛

1 : ف <= 0 ؛

2 : ف <= 0 ؛

3 : ف <= 0 ؛

4 : ف <= 0 ؛

5 : ف <= 0 ؛

6 : ف <= 1 ؛

7 : ف <= 1 ؛

8 : ف <= 1 ؛

<snip>

32762 : ف <= 2047 ؛

32763 : ف <= 2047 ؛

32764 : ف <= 2047 ؛

32765 : ف <= 2047 ؛

32766 : ف <= 2047 ؛

32767 : ف <= 2047 ؛

الافتراضي : ف <= 'ب × ؛

endcase

endmodule
 
لecho47 :

نعم ، ش ع صحيح تماما!

الآن الموجي المحاكاة هو صحيح.

شكرا جزيلا

 

Welcome to EDABoard.com

Sponsor

Back
Top