طراحی بیسیک کامپیوتر با نرم افزار logisim |
بستن
اطلاعات بیشتر
- ارسال ها: 111
- امتياز: 26
- تشکرهای دریافت شده: 43
10 سال 10 ماه قبل #69
توسط atmega128
اولین بخش این cpu در واقع alu میباشد و بر اساس alu و فرمت دستور بخش کنترلی و باس داده ساخته میشوند.برای بررسی یخش alu ابتدا این قسمت را در نرم افزار logisim پیدا میکنیم:
سپس باید بدانیم alu از دستورات زیر پشتیبانی میکند و در واقع طبق شکل دستورات زیر را پشتیبانی میکند:
همچنین خروجی های ALUشامل بیتهای نتایج و یک بیت پرچم برای نشان دادن مساوی بودن یا نامساوی بودن A,B است.
سپس باید بدانیم alu از دستورات زیر پشتیبانی میکند و در واقع طبق شکل دستورات زیر را پشتیبانی میکند:
- sll-shift left logical
- sra-shift right arithmetic
- srl-shift right logical
- واحد مقایسه کوچکتر بزرگتر و مساوری
- جمع کننده
- تفریق کننده
- And منطقی
- Orمنطقی تا این
همچنین خروجی های ALUشامل بیتهای نتایج و یک بیت پرچم برای نشان دادن مساوی بودن یا نامساوی بودن A,B است.
این کاربران از شما تشکر نموده اند: MAryAZ, OMID_1000101
لطفاً ورود یا ايجاد حساب كاربری برای پیوستن به بحث.
بستن
اطلاعات بیشتر
- ارسال ها: 111
- امتياز: 26
- تشکرهای دریافت شده: 43
10 سال 10 ماه قبل - 10 سال 10 ماه قبل #70
توسط atmega128
حال به بررسی datapath میپردازیم ..در واقع این بخش شامل کل اتصالات موجود بین بخشهای مختلف با محوریت alu میباشد و alu اولین بخشی بود که حتماً در قلب هر datapath موجود است و بقیه بخشها را بسته به دید طراح یا نوع معماری میتوان عوض کرد یا ادغام نمود...اما در این cpu چه بخشهای وجود دارد؟
1-پس از alu یک بخش به نام bne وجود دارد که کارش دستور دادن به شمارنده برنامه pc است به این صورت که خروجی بیت پرچم alu برای حالت مساوری فعال بود و دستور پرش(برای حالت پرش در صورت برابری)فعال بود آنگاه باید به pc دستور دهد که به آدرس جدید پرش کند.
2-بخش مموری داده
3-بخش Display که این بخش به دلخواه طراح بوده و برای نمایش خروجی روی 7seg طراحی شده
4-بخش extender که وظیفه ی آن گسترش بیت علامت است که بحث طولانی دارد.
5- بخس مموری دستورInstructionMemory
6-بخش شمارنده برنامه pc
7-بانک رجیستر
در شکل زیر نحوه ی اتصال این بخشها را میبینید:
1-پس از alu یک بخش به نام bne وجود دارد که کارش دستور دادن به شمارنده برنامه pc است به این صورت که خروجی بیت پرچم alu برای حالت مساوری فعال بود و دستور پرش(برای حالت پرش در صورت برابری)فعال بود آنگاه باید به pc دستور دهد که به آدرس جدید پرش کند.
2-بخش مموری داده
3-بخش Display که این بخش به دلخواه طراح بوده و برای نمایش خروجی روی 7seg طراحی شده
4-بخش extender که وظیفه ی آن گسترش بیت علامت است که بحث طولانی دارد.
5- بخس مموری دستورInstructionMemory
6-بخش شمارنده برنامه pc
7-بانک رجیستر
در شکل زیر نحوه ی اتصال این بخشها را میبینید:
آخرين ويرايش: 10 سال 10 ماه قبل توسط atmega128.
لطفاً ورود یا ايجاد حساب كاربری برای پیوستن به بحث.
بستن
اطلاعات بیشتر
- ارسال ها: 6
- تشکرهای دریافت شده: 0
10 سال 9 ماه قبل #73
توسط MAryAZ
kheili mamnooonam , lotf kardin
kheiliiiiiiiiiiiiiiiiiiiiiiiii
kheiliiiiiiiiiiiiiiiiiiiiiiiii
لطفاً ورود یا ايجاد حساب كاربری برای پیوستن به بحث.
بستن
اطلاعات بیشتر
- ارسال ها: 6
- تشکرهای دریافت شده: 0
10 سال 9 ماه قبل #75
توسط MAryAZ
سلامه دوباره
ببخشید، من باید ششم تحویل بدم
واسم چند تا سوال پیش اومده
یکی اینکه چجوری باید از این پروژه خروجی بگیرم و ببینم که کار می کنه ?
بعد لطفا یه توضیحی در مو د extender بدین که اگه ازم پرسید بلد باشم .
و یک توضیح کلی در مورد رجیسترها
در کل که یه کمکی بکنین که این پروژه رو به سلامتی تحویل بدم
دستتون درد نکنه
ببخشید، من باید ششم تحویل بدم
واسم چند تا سوال پیش اومده
یکی اینکه چجوری باید از این پروژه خروجی بگیرم و ببینم که کار می کنه ?
بعد لطفا یه توضیحی در مو د extender بدین که اگه ازم پرسید بلد باشم .
و یک توضیح کلی در مورد رجیسترها
در کل که یه کمکی بکنین که این پروژه رو به سلامتی تحویل بدم
دستتون درد نکنه
لطفاً ورود یا ايجاد حساب كاربری برای پیوستن به بحث.
بستن
اطلاعات بیشتر
- ارسال ها: 111
- امتياز: 26
- تشکرهای دریافت شده: 43
10 سال 9 ماه قبل #77
توسط atmega128
خوب برای این که کار کنه باید یه سری دستور توی حافظه دستور قرار بدی و به ترتیب انجام میده و خودش داره یه سری دستور که توی خروجی عدد 1و2و3 رو نشون میده.
در مورد بخش گسترش بیت علامت باید یه سری به طراحی دیجیتال موریس مانو بزنی...به فرض ما یک عدد 16 بیتی علامت دار داریم که به شکل زیر باشه:
12-
خوب این عدد منفیه و حالت باینریش در حالت تک بایت میشه:
0100 1111
حالا اگه بخوایم همینو گسترش بدیم به 16 بیت باید تمام بیتهای بالا رو یک کنیم تا عددمون همون -12 باقی بمونه:
0100 1111 1111 1111
حالا اگه عدد مثبت بود باید تمام اون بیتهای بالا رو صفر میدادیم که این عمل رو گسترش بیت علامت میگن.
در مورد بخش گسترش بیت علامت باید یه سری به طراحی دیجیتال موریس مانو بزنی...به فرض ما یک عدد 16 بیتی علامت دار داریم که به شکل زیر باشه:
12-
خوب این عدد منفیه و حالت باینریش در حالت تک بایت میشه:
0100 1111
حالا اگه بخوایم همینو گسترش بدیم به 16 بیت باید تمام بیتهای بالا رو یک کنیم تا عددمون همون -12 باقی بمونه:
0100 1111 1111 1111
حالا اگه عدد مثبت بود باید تمام اون بیتهای بالا رو صفر میدادیم که این عمل رو گسترش بیت علامت میگن.
لطفاً ورود یا ايجاد حساب كاربری برای پیوستن به بحث.
بستن
اطلاعات بیشتر
- ارسال ها: 6
- تشکرهای دریافت شده: 0
10 سال 9 ماه قبل #78
توسط MAryAZ
خیلی ممنونم . از خروجی گرفتنش که چیزی نفهمیدم ولی ایشالله که بتونم استادمو قانع کنم .لطف کردین
لطفاً ورود یا ايجاد حساب كاربری برای پیوستن به بحث.