دیدم چارت داخلی، جلوی هر مالتی پلکسر یه sub گذاشته گفتم حتماً چارت داخلیشونم تفریق کنندست اما دیدم همون مدار جمع کنندست :-)
یه فایل کتاب درس سخت افزار کامپیوتر:
[
attachment=9501]
صابر جان ، شما دقت کردین که مدار چه موقعی اخطار میده،مثلاً وقتی s0=1 و cin,s1 صفرن باید عملیات تفریقa , b با 1 رو انجام بده، حالا اگه b صفر باشه یا بی بزگتر از a شد اون اخطار رو میده.
در حال حاضر کاری که میشه کرد اینه که حواستون باشه همیشه به کدوم بیتا صفر بدین و کدوم یکی 1، اینطوری دیگه خطایی نمیده.
خیلی وقته مستقیماً با صفر و یک سر وکار نداشتم :-) ، صفر و یکارو میدادم به میکروی بیچاره برام انجام میداد :-)
خوب مثله اینکه فعلا باید با این مشکل دست و پنجه نرم کنم حالا چطور میشه من عدد رو در مبنای دیگه غیر 0،1 بدم و خودش تبدیل کنه و عملیات رو انجام بده مثلا برای جمع دو عدد 0001 0000 0000 0000 + 0010 0000 0000 0000 خود عدد رو بدم 1+2 خودش تبدیل کنه به باینری من فقط اتصال به بیت A و B رو انجام بدم چطور میشه این کارو کرد ؟
یا اگرم بشه تو خروجی نشون داد دیگه باینری نباشه
(۱۵-خرداد-۱۳۹۲, ۱۴:۱۹:۴۱)saber_ershadi نوشته است: [ -> ]خوب مثله اینکه فعلا باید با این مشکل دست و پنجه نرم کنم حالا چطور میشه من عدد رو در مبنای دیگه غیر 0،1 بدم و خودش تبدیل کنه و عملیات رو انجام بده مثلا برای جمع دو عدد 0001 0000 0000 0000 + 0010 0000 0000 0000 خود عدد رو بدم 1+2 خودش تبدیل کنه به باینری من فقط اتصال به بیت A و B رو انجام بدم چطور میشه این کارو کرد ؟
یا اگرم بشه تو خروجی نشون داد دیگه باینری نباشه
به کمک سویچ ، اما من فقط با 4 بیتیش کار کردم،
[
attachment=9502]
والا من خیلی از این چیزا سرم نمی شه ولی ارور پروتئوس اینو میگه
-
(۱۴-خرداد-۱۳۹۲, ۱۵:۳۶:۱۴)saber_ershadi نوشته است: [ -> ]اینم خودمدار که الیته فقط قسمت محاسبشه که که گیر از اینجاست
ALU 16bit
بهتره پروتئوس رو رو حالتی که این مشکل ایجاد میشه تنظیم کنید و فایلتون رو اینجا بزارید شاید بفهمم مشکل رو از کجا میگیره
الان من هر کاری کردم ارور نداد البته خیلی کا خاصی هم نتونستم بکنم
بهتر هست زمان تغییر وضعیت تمامی گیت های خودتون رو روی صفر بزارید
[/quote]
بهتره پروتئوس رو رو حالتی که این مشکل ایجاد میشه تنظیم کنید و فایلتون رو اینجا بزارید شاید بفهمم مشکل رو از کجا میگیره
الان من هر کاری کردم ارور نداد البته خیلی کا خاصی هم نتونستم بکنم
بهتر هست زمان تغییر وضعیت تمامی گیت های خودتون رو روی صفر بزارید
[/quote]
سلام
دوست عزیز فایل طراحی مدار رو گذاشتم مشکل وقتی رخ میده که خط s0 انتخاب شده باشه و یکی از بیت های A مثلا A0 رو انتخاب میکنی این خطا ایجاد میشه یه بار دیگه امتحان کنید
من اعتقاد دارم مشکل از پروتئوسه، چرا که بعد از دادن خطا و متوقف شدن روند عملیات اگه باز اون دکمه play رو بزنید دیگه هیچ خطایی به طراحی نمیده.
از طرفی منطق طراحی شده برای این alu داخل کتاب موریس مانو هیچ وقت منطق کاملی نیست، مثل اون fulladder 4 بیتی میمونه که باید حواسمون به ورودی هاش باشه.
نقل قول: بهتر هست زمان تغییر وضعیت تمامی گیت های خودتون رو روی صفر بزارید
بهزاد جان برا این کار ممنون میشم دقیقاً بگین چکار کنن.
یه دلیل دیگه که میگم پروتئوس نمیتونه عملیات شبیه سازی رو دقیق انجام بده اینه که من رفتم 8 تا مالتی پلکسر و8 تا فول ادر و 8 تا از کدهای ورودی رو حذف کردم و دیگه اون خطا رو صادر نکرد.
اگه کاری رو که بهزاد جان میگن رو انجام بدیم ممکنه درست بشه.
(۱۶-خرداد-۱۳۹۲, ۱۸:۳۹:۱۴)live_1389 نوشته است: [ -> ]من اعتقاد دارم مشکل از پروتئوسه، چرا که بعد از دادن خطا و متوقف شدن روند عملیات اگه باز اون دکمه play رو بزنید دیگه هیچ خطایی به طراحی نمیده.
از طرفی منطق طراحی شده برای این alu داخل کتاب موریس مانو هیچ وقت منطق کاملی نیست، مثل اون fulladder 4 بیتی میمونه که باید حواسمون به ورودی هاش باشه.
نقل قول: بهتر هست زمان تغییر وضعیت تمامی گیت های خودتون رو روی صفر بزارید
بهزاد جان برا این کار ممنون میشم دقیقاً بگین چکار کنن.
یه دلیل دیگه که میگم پروتئوس نمیتونه عملیات شبیه سازی رو دقیق انجام بده اینه که من رفتم 8 تا مالتی پلکسر و8 تا فول ادر و 8 تا از کدهای ورودی رو حذف کردم و دیگه اون خطا رو صادر نکرد.
اگه کاری رو که بهزاد جان میگن رو انجام بدیم ممکنه درست بشه.
دقیقا منم همین که 8 تا رو حذف میکنم و کلا 8بیتی رو درست میکنم از همون مدار دیگه این خطا اتفاق نمیوفته نمیدونم والا
مشکل همینه که پروتئوس نمی تونه به صورت سریع شبیه سازی رو انجام بده
برای همینه که وقتی دوباره دکمه ی شروع رو میزنید کار می کنه
اول شروع می یاد وضعیت های منطقی رو حساب می کنه بعد شروع می کنه ولی توی اجرا مثلا شما یه تغییری میدی
خروجی یه مدت کوتاهی تغییر نادرستی می کنه چون همه ی تغییرات رو ایحاد نکرده مثلا وضعیت AND محاسبه شده ولی هنوز گیت NOT رو محاسبه نکرده
حالا برای حل مشکل باید مرحله به مرحله کار کنی یعنی چی بجای دکمه شروع شبیه سازی بقلیش که به صورت استپ استپ شبیه سازی می کنه رو باید بزنی
مثلا الان S0 یک هست حالا پروتئوس رو من دکمه STEP رو میزنم یک خروجی طولید میشه و برنامه PAUSE میشه حالا توی A تغییر ایجاد می کنم دوباره STEP رومیزنم تغییر اعمال میشه
اگه نفهمیدید بیشتر توضیح بدم
آره بهزاد جان، این طوری درست میشه، :-)
نمیشه پایه ای درستش کرد.
بالا گفتین "بهتر هست زمان تغییر وضعیت تمامی گیت های خودتون رو روی صفر بزارید " این یعنی چی؟ :-)
(۱۶-خرداد-۱۳۹۲, ۲۰:۵۰:۱۴)live_1389 نوشته است: [ -> ]آره بهزاد جان، این طوری درست میشه، :-)
نمیشه پایه ای درستش کرد.
بالا گفتین "بهتر هست زمان تغییر وضعیت تمامی گیت های خودتون رو روی صفر بزارید " این یعنی چی؟ :-)
یه ذره فکر کردم دیدم نمیشه
شاید از گیت های غیر ایده عال استفاده کنید مشکل حل بشه
(مثلا شماره آیسی های واقعی رو بدید نه نمونه های ایده عال موجود)
(مثلا جای نات ها 40hc05 بزارید شاید درست بشه
---
کلا اونو هم برای دنیا و آخرتت تون میگم
روی گیت ها کلیک کنید ویژگی های مختلفش روی دیفالت هست می تونید اون هارو تغییر بدید(این زمانی که گفتم هم توش هست)
+
اینا مگه ALU نباید با کلاک کار بکنن؟
گفتین به جای نات از 40hc05 استفاده کنم لطفا بگید چطور ؟من این قطعه رو پیدا نکردم اسمش همینه؟خودتون امتحان کردین؟چطور بیارمش تو لیست قطعات نتونستم پیداش کنم