PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : آموزش ديجيتال و معماري کامپيوتر



mohras110
25-11-2012, 14:27
با عرض سلام خدمت همه دوستان. با توجه به نیاز و علاقه دانشجویان رشته برق و کامپیوتر -سخت افزار تصمیم گرفتم مبانی دیجیتال و معماری کامپوتر را در قالب فایل های شبیه سازی شده پروتئوس همراه با توضیحات در این وبلاگ قرار دهم.البته منظورم از مبانی مباحث خیلی ابتدایی نیست بلکه مبانی متوسط تا پیشرفته را توضیح میدهم . اگر کسی از دوستان سوال داشت در قسمت نظرات یا با ایمیل moh.rast@gmail.com با اینجانب طرح بکنه. راستی تا یادم نرفته بگم هزینه استفاده از فایل ها هم 5 تا صلوات بر محمد و آل محمد با عجل الفرجهم است. استفاده از این نوشته ها با ذکر منبع مانعی ندارد. اگر منبع را هم ذکر نکردید لطفا فایل ها را تغییر ندهید.التماس دعا

گیت های پایه منطقی و عملکرد آنها
برای شروع، گیت های پایه و چند نوع از پیاده سازی آنها رو گذاشتم.لطفا صلوات و نظرات یادتون نره
گیت های پایه منطقی و عملکرد آنها (You can see links before reply)
اگر نظراتی به طور خاص داشتید به وبلاگ گشت گذار در دنیای 0 و 1 ها (You can see links before reply) مراجعه کنید

mohras110
25-11-2012, 14:30
سر فصل هایی که قصد دارم توضیح بدم
۱-مقایسه کننده ها
۱-۱ -مقایسه کننده ۱ بیتی
۱-۲-مقایسه کننده ۴ بیتی
2-2-مقایسه کننده 16 بیتی با 7485
۲-شمارنده ها
۲-۱-شمارنده سنکرون
۲-۲-شمارنده های آسنکرون
۲-۲-۱ -شمارنده با شمارش ۰-۱-۲-۳،C,B,A
۲-۲-۲-شمارنده بالا و پایین شمار با شمارش ۰-۱-۲-۳-A,B,C,D
3-همینگ کد (نحوه تشخیص و تصحیح 1 بیت خطا در 4 بیت )
4-حافظه ها(RAM &ROM)
4-1-یک بیت حافظه RAM
4-2-چهار بیت حافظه(RAM)
4-3- 16 بیت حافظه(نحوه پیاده سازی انواع مختلف 16 بیت حافظه)
4-3-1- 16بیت با ساختار 1*16
4-3-2- 16بیت با ساختار 8*2
4-3-3- 16بیت با ساختار 4*4
4-3-4- 16بیت با ساختار 8*2
4-4- 8و16بیت ROM
4-5- ذخیره ok در ROM و نمایش در دات ماتریس
5-key pad اسکنرها
5-1-اسکن کیپد 4*3 نمایش خروجی روی 7-seg
5-2-اسکن کیپد 4*4 نمایش خروجی روی 7-seg
5-3-اسکن کیپد 4*3 نمایش خروجی روی دات ماتریس
6-واحد محاسبه ،منطق و شیفت (ALSU)
6-1 -FULL ADDER
6-2-واحد محاسبات ریاضی (Arthematic Unit)
6-3-واحد محاسبات منطقی (Logic Unit)
6-4-واحد شیفت(Shift Unit)

morteza_rk
25-11-2012, 22:04
سلام مهندس

ممنون از لطفی که می کنی.

سربلند باشی.

Ma3ood
25-11-2012, 23:53
سلام دادا:hi:
به شخصه به الکترونیک دیجیتال خیلی علاقه دارم بی صبرانه منتظریم دوست عزیز :0013:

vahidasm
26-11-2012, 00:02
به به
این چندتا سر فصل عالیه

4-4- 8و16بیت rom
4-5- ذخیره ok در rom و نمایش در دات ماتریس
5-key pad اسکنرها
5-1-اسکن کیپد 4*3 نمایش خروجی روی 7-seg
5-2-اسکن کیپد 4*4 نمایش خروجی روی 7-seg
5-3-اسکن کیپد 4*3 نمایش خروجی روی دات ماتریس
6-واحد محاسبه ،منطق و شیفت (alsu)
6-1 -full adder
6-2-واحد محاسبات ریاضی (arthematic unit)
6-3-واحد محاسبات منطقی (logic unit)
6-4-واحد شیفت(shift unit)

بی صبرانه منتظرشونم

mohras110
26-11-2012, 03:30
برای شروع از مقایسه کننده های یک بیتی آغاز میکنیم
جدول داخل فایل مدار را برای دو بیت x ,y را مشاهده کنید
همانطور که مشاهده میشود برای پیاده سازی سیگنال های S1,S2,S3 که نمایشگر تساوی ،بزرگتر یا کوچک تر بودن x, y است معادلات زیر را داریم:
S1=B'A
S2=A(xnor)B
S3=A'B
حال برای آنکه از کمترین گیت ها برای پیاده سازی بهره ببریم فقط با گیت nor این مدار را پیاده سازی میکنیم.توضیحات تکمیلی در فایل پروتئوس است
چون مداراصلی در زیر مدار طراحی شده نحوه مشاهده زیر مدار در پروتئوس را در عکس زیر قرار داده ام
زیر مدار در پروتئوس (You can see links before reply)
برای دانلود فایل مقایسه کننده به لینک زیر مراجعه کنید
لطفا ۵ صلوات و نظرات یادتون نره
مقایسه کننده یک بیتی (You can see links before reply)

در ضمن ورژن پروتئوس من 7.10 اگر فایل ها باز نشد با این ورژن باز کنید

vahidasm
26-11-2012, 03:53
سلام
آقا دم شما گرم عالی بود
فقط یه سوال-میدونم جاش اینجا نیست ولی کنجکاو شدم :mrgreen:
این رو بلوک رو چطور ایجاد کردی؟؟؟
منظورم همون مقایسه کننده اس که اول مدارشو(زیر مدار) کشیدی و تبدیلش کردی به یه بلوک

mohras110
26-11-2012, 04:26
اگر منظور شما بلوک زیر مدار یا SUBCIRCUIT باید بگم این مطلب مربوط به آموزش پروتئوس میشه ولی میگم .
در قسمت سمت چپ که نوار ابزار وجود داره یک قسمت وجود داره که شکل آی سی هست از اونجا میتونید این زیر مدار رو ایجاد کنید 2 عکس مربوط به نحوه ایجاد زیر مدار و همچنین ایجاد مدار در بلوک زیر مدار رو برا تون میزارم البته فقط مقدماتشه باید یذره دیگه باهاش کار کنی تا دستت بیاد چه جوری ورودی و خروجی رو تنظیم کنی اگه سوال داشتید بازم در خدمتم
You can see links before reply
You can see links before reply

mohras110
28-11-2012, 00:07
در این قسمت عملکرد مقایسه کننده ۴ بیتی رو بررسی میکنیم.
برای شروع و فهم دقیق تر از یک مثال در مبنای ۱۰ کمک میگیرم.
فرض کنید شما میخواهید ۱۲۳ و ۲۳۴ رو با هم مقایسه کنید اول کاری که میکنید اینه که با ارزش ترین رقم یعنی صدگان رو مقایسه میکنید اگر صدگان عدد اول از عدد دوم بزرگتر یا کوچکتر بود شما دیگر به سراغ رقم بعدی نمیروید مثلا اینجا چون۱<۲ ارقام بعد رو بررسی نکرده و سریع میگوییم ۱۲۳<۲۳۴ حال فرض کنید دورقم با بیشترین ارزش مساوی باشند در این مرحله به یک رقم با ارزش پایین تر رجوع میکنیم اگر رابطه ای غیر از تساوی داشته باشند کار تمام است ولی اگر آنها نیز مساوی باشند به همین ترتیب به رقم بعد و بعد مراجعه میکنیم و در آخر اگر کم ارزش ترین رقم هم مساوی باشند میگوییم ۲ عدد مساوی هستند.
همین منوال را در مورد یک مقایسه کننده چهار بیتی پیاده سازی میکنیم یعنی از MSB بیت به بیت شروع به مقایسه میکنیم در صورت تساوی به بیت با ارزش کمتر رجوع میکنیم تا برسیم به LSB
ما برای این کار از مقایسه کننده های تک بیتی که قبلا طراحی کرده بودیم بهره میبریم .4 عدد از انها برای این کار لازم است .علاوه بر این به تعدادی and , or برای پیاده سازی کل مقایسه کننده نیاز داریم.
معادلات خروجی در فایل پروتئوس مدار موجود است.
یکی از آنها را برای نمونه توضیح میدهم بقیه اش به همین ترتیب محاسبه میشه

mohras110
28-11-2012, 00:15
S1سیگنالی است نشان دهنده b1>a1 یعنی اگر با ارزش ترین بیت Bاز با ارزش ترین بیت A بزگتر باشد نتیجه گرفته میشود که B>A
در صورت تساوی با ارزشترین بیت ها سیگنال X1 تولید میشود اگر X1 باAND S3 شود یعنی انکه دو بیت با ارزش بیشتر مساوی اند ولی B2>A2 و از همین نتیجه گرفته میشود که B>A .در صورت تساوی سیگنال X2 تولید شده و با AND X1 ,S5 میشود و به همین ترتیب سیگنال آخر تولید میشود اگر در فایل مدار دقت کنید میتوانید عملکرد مدار را تحلیل کنید سیگنال تساوی به صورت X1X2X3X4 تولید میشود.
مقایسه کننده 4 بیتی (You can see links before reply)
در ادامه مدار شبیه سازی شده مقایسه کننده 4 بیتی که در کتاب مانو طراحی شده نیز آورده میشود
مقایسه کننده 4 بیتی (طراحی مانو) (You can see links before reply)

mohras110
02-12-2012, 19:53
سلام
در ادامه به عنوان یه نمونه کار عملی یه مقایسه کننده ۱۶ بیتی با آی سی
۷۴۸۵ که یک مقایسه کننده ۴ بیتیه گذاشتم ، توضیح زیادی نداره فقط اینکه ای سی
یه سری ورودی معروف به آبشاری داره که برای گسترش از ۴ بیت به بالا کاربرد داره که
نحوه عملکرد رو از دیتاشیت براتون گذاشتم. سوال داشتید در خدمتیم.با این فایل
از قسمت مقایسه کننده ها عبور میکنیم و به شمارنده ها میپردازیم

مقایسه کننده 16 بیتی با 7485 (You can see links before reply)

mohras110
03-12-2012, 01:48
شمارنده به یک سری فلیپ فلاپ گفته میشه که طی یک روند از پیش تعیین شده
رشته ای از داده ها رو در خروجی خودش نشون میده.چون بنا ندارم دوباره مطالبی که در
کتاب های دیجیتال گفته شده مطرح کنم و بیشتر مباحث کمتر گفته شده و عملی رو بگم در
مورد اصول طراحی و جدول حالت و .. به کتاب هایی مثل مانو ارجاع میدم.فقط این مطلب
رو ذکر کنم شمارنده سنکرون شمارنده هایی هستند که کلاک سیستم به طور همزمان به تمام
فلیپ فلاپها اعمال میشه و شمارنده های آسنکرون شمارنده های هستند که کلاک به طور
مجزا و غیر همزمان به فلیپ فلاپها اعمال میشود .در ادامه شمارنده های سنکرون و
آسنکرون با شمارش 0و۱و۲و۳وC,B,A را قرار میدهم .در این مداراها کار خاصی
انجام نشده فقط در همون طراحی معمولی شمارنده های سنکرون و آسنکرون هنگامی که به 4
میرسم A را از طریق set فلیپ فلاپها لود کرده و هنگامی که به Dمیرسیم مدار رو
ریست میکنیم.فایل سومی هم هست برای حالتی که نخواهیم از set و clear استفاده کنیم
که طراحی اون یه خورده پیچیده است فقط برای این مدار سوم را گذاشتم که بدونید
روش های دیگری هم وجود داره اما شاید از لحاظ تعداد گیت ها بهینه نباشه.
در مدار سوم بر روی ورودی T فلیپ فلاپ ها طراحی صورت گرفته و کلاک ها به طور
معمول مدارهای آسنکرون طراحی نشده، برای فهم مطلب یه کم دقت نیازه اگر سوالی
داشتید درخدمتیم

شمارنده سنکرون (You can see links before reply)

شمارنده آسنکرون (You can see links before reply)

شمارنده آسنکرون طراحی متفاوت (You can see links before reply)

mohras110
03-12-2012, 04:29
در این قسمت یک مدار را شرح میدهم که هم ارزش عملی دارد و هم از لحاظ طراحی و مفاهیم شمارش بسیار مفید است. همین طور که از عنوان پست هم پیدا است میخواهیم یک شمارنده طراحی کنیم از ۰ تا ۳ را به صورت بالاشمار بشمارد و پس از با لود Dشمارش را به صورت پایین شمار ادامه داده تا با A برسد بعد از دوباره به صفر برگشته این عمل مجددا تکرار شود.
برای این کار از یک آی سی 74169 که یک شمارنده سنکرون بالا و پایین شمار است استفاده میکنیم.
کار با این آی سی بسیار ساده است یک سری ورودی دارد که شما میتوانید با فعال کردن پایه LD شمارنده را با آن لود کنید البته توجه کنید که پایه ACTIVE LOW LD بوده و با صفر فعال میشود.اگر به پایهD'/U یک منطقی بدهیم مدار بالاشمار و اگر صفر بدهیم پایین شمار است.باقی پایه ها مربوط به فعال ساز -کلاک پالس - خروجی ها و کری خروجی است. برای شروع به جدول داخل زیر مدار در فایل پیوست دقت کنید مشاهده میکنید Q3 تا 3 صفر و بعد از ان یک است این تغییر حالت در 2 جا کاربرد دارد یکی اینکه اگر معکوس این پایه را به پایه D'/U وصل کنیم مدار در هنگام شروع بالاشمار است و هنگامی که D به طریقی که ذکر میشود لود شود به صورت پایین شمار عمل میکند پس با یک دقت کوچک توانستیم بالا و پایین شمار بودن مدار را تنظیم کنیم. برای اینکه حالت لوپ در مدار برقرار باشد باید در 3 مقدار Dدر Aمقدار 0 لود شود برای تشخیص 3 وA در مدار از 2 گیت NAND با 3 ورودی بهره گرفته ایم بدین ترتیب که هنگامی که مدار به 3 رسید Q3',Q1,Q1 که همگی 1 هستند در ورودی NAND قرار میگیرند .دقت کنید معکوس Q3 یعنی 'Q3 در ورودی است نه خود Q3 .خروجی NAND در این حالت صفر است اگر خروجی این پایه به لود وصل شوند میتوان در این حالت مقداری را لود کرد چگونگی لود کردن را در ادامه شرح میدهیم.اما باید در A نیز 0 لود شود در این حالت نیز با کمک از همان سه بیت اما با این تفاوت که به جای Q3اینبار معکوس Q1 یعنی 'Q1 را به ورودی NAN دوم وارد میکنیم، یعنی ورودی ها عبارتند ازQ1',Q1,Q3 که همگی 1 هستند. خروجی NAND در این حالت هم صفر است اگر خروجی این پایه به لود وصل شود میتوان در این حالت هم مقداری را لود کرد این دو حالت را با هم AND کرده و به پایه LDوصل میکنیم.حال میرسیم به این که ورودی های 0 وD چگونه در ورودی های آی سی قرار گیرند در این جا 2 روش وجود دارد اول استفاده از 4 عدد MAX 1TO2و دوم استفاده از 2عدد بافر با خروجی امپدانس بالا. بدلیل راحتی پیاده سازی در مدار پیوست از روش دوم استفاده شده است. برای بافر از 74244 استفاده شده که یک بافر با خروجی TRY-STATE است یعنی اگر چیپ سلکت یا اینیبل مدار را غیر فعال کنیم خروجی های آی سی به صورت مدار باز عمل کرده و با داخل آی سی هیچ ارتباطی ندارند لذا با بهره گیری از این آی سی خروجی 2 عدد بافر که یکی 0 و به دیگری D داده شده بدون هیچگونه مشکلی به هم وصل میشوند و این پایه ها به طور مشترک به ورودی شمارنده وصل میشوند .فقط یک مسئله مانده آن هم این است که چه زمانی صفر و چه زمانی D را را بر روی ورودی قرار دهیم؟ این سوال نیز با کمی دقت در جدول خروجی مدار براحتی قابل حل است .با مراجعه به مدار اگر از سیگنال Q3,'Q3 برای فعالسازی بافر ها استفاده کنیم یعنی Q3 به اینیبل بافر 0 , 'Q3 به اینیبل بافر D وصل شوند در هنگام مناسب مدار مقادیر مربوطه را لود میکند .توجه کنید که فعال ساز بافر ها ACTIVE LOW است . ورودی های 0 و D رو جوری گذاشتم که بتونید تغییرش بدید و نتیجه های مختلفی رو ببنید اگر خواستید میتونید با این کار و کمی تغییر انواع شمارنده های دلخواه رو طراحی کنیداگر سوالی بود در خدمتیم

شمارنده بالا و پایین شمار (You can see links before reply)
در قسمت بعد مدار شمارنده تا 999999 را با 2 طراحی مختلف با کمک آی سی 7490شرح میدهم البته این جزء سرفصل ها نبود اما به نظرم جالب آمد گفتم بگم.

morteza_rk
03-12-2012, 19:11
سلام مهندس. عالیه. من خودم طرفدار پر و پا قرص دیجیتالم. خیلی خیلی ممنون.

mohras110
09-12-2012, 15:52
سلام
در این قسمت مدار شمارنده تا ۹۹۹۹۹۹ رو با آی سی ۷۴۹۰براتون توضیح میدم. این آی سی یک شمارنده ده دهی است که برای کاربردهای مختلف از جمله تقسیم فرکانس استفاده میشه برای اینکه حداکثر رنج شمارش یعنی از ۰ تا ۹ را روی خروجی ها داشته باشیم باید ورودی کلاک B رو به خروجی Q0 وصل کنیم (این قسمت رو تو دیتاشیت به صورت زرد رنگ مشخص کردم ) .برای گسترش از یک رقم به چند رقم باید با ارزش ترین بیت رقم کمتر رو یعنی Q3 به ورودی کلاک A آی سی بعد وصل کرد .
شمارنده 999999 (You can see links before reply)
خروجی این مدار رو برای هر رقم یک 7-seg گذاشتم طراحی بعدی این مدار در قسمت شمارنده به همان صورت گذشته است ولی در قسمت نمایشگر یک پک چند دیجیته 7-seg گذاشتم این مدار دوم رو در قسمت بعد شرح بیشتر میدم چون اصول طراحی دیتا باس مشترک که یکی از مفاهیم مهم و بنیادی انتقال دیتا است توی این مدار به کار رفته. این مدار هم یک بار با پک 8 تایی و یکبار هم با پک 4 تای 7-seg قرار دادم در ادامه به علت پیچیدگی و سیم کشی زیاد مدار پک ۸ تایی، باس دیتا رو در مدار با پک ۴ تایی توضیح میدم
شمارنده با پک 8 تایی
(You can see links before reply)
شمارنده با پک 4 تایی
(You can see links before reply)

mohras110
09-12-2012, 21:27
برای توضیح مفهوم باس مشترک و همچنین نحوه عملکرد مدار شمارنده قسمت قبل (شمارش تا ۹۹۹۹ با سون سگمنت ۴ دیجیتی) اول یک مدار ساده با ۲ زیر مدار یکی در مورد عملکرد سون سگمنت و دیگری یک دیتا باس ۲ بیتی با یک بیت ادرس رو گذاشتم.در مدار باس ۲ بیتی از ۲ عدد مالتی پلکسر ۲به یک استفاده استفاده کردم. بیت اول هر کدام از ورودی های Aو B رو به ماکس اول و بیت دوم هر کدام از ورودی های Aو B رو به ماکس دوم وصل میکنیم .ورودی S مربوط به خط ادرس ماکس ها است که به طور مشترک به ماکس 1و 2 وصل میشود. عملکرد مدار به صورت زیر است: اگر S=0 بیت اول ماکس اول (که بیت اول ورودی A است) و بیت اول ماکس دوم (که بیت دوم ورودی A است)به خروجی وصل شده و باعث میشود A یه خروجی منتقل شود .حالا اگر اگر S=1 بیت دوم ماکس اول (که بیت اول ورودی B است) و بیت دوم ماکس دوم (که بیت دوم ورودی B است)به خروجی وصل شده و باعث میشود B به خروجی منتقل شود. در ادامه مدار شمارنده 9999 با سون سگمنت 4 دیجیتی رو شرح میدم.
باس مشترک (You can see links before reply)