
تمرین
با استفاده از فلیپ فلاپ ها شمارنده ای طراحی کنید که از صفر تا هفت را شمارش کند و پس از بازگشت به صفر متوقف شود.
نکته اجباری در طراحی که باید رعایت شود: کلاک فلیپ فلاپها هم زمان در نظر گرفته شود
اگر مثال اول در رابطه با فلیپ فلاپ ها رو مطالعه نکردید قبل از اینکه این مطلب رو بخوانید برگردید و یک بار مثال اول فلیپ فلاپها را مطالعه کنید چرا که نکته هایی که در مثال اول گفته شده دیگر اینجا گفته نخواهد شد.
حل)
در این مثال ما می توانیم از فلیپ فلاپ D یا فلیپ فلاپ T استفاده کنیم
بنابراین ما از فلیپ فلاپ D استفاده خواهیم کرد که شما بعد از آموزش به عنوان تمرین باید بتوانید همین مثال را با فلیپ فلاپ T انجام دهید
کلاک هم زمان که به عنوان نکته اجباری گفته شده یعنی اینکه پایه های کلاک همه فلیپ فلاپها حتما باید از یک منبع کلاک بخورند و تغییرات کلاک منبع در هر زمان باید به همه فلیپ فلاپها اعمال شود.
خوب ما در مثال قبلی فلیپ فلاپها توانستیم با کنترل پایه های کلاک فلیپ فلاپها مثال رو حل کنیم ولی در این مثال کلاک هم زمان بوده و ما نمی توانیم از پایه کلاک برای حل مثال استفاده کنیم
پس چاره ای نداریم جز اینکه پایه ورودی D فلیپ فلاپها رو کنترل کنیم اما چگونه و به چه روشی اینکار باید صورت بگیرد؟
خوب یک فلیپ فلاپ را در نظر بگیرید
اگر پایه ورودی یک فلیپ فلاپ همیشه صفر باشد با اعمال کلاک به پایه کلاک فلیپ فلاپ خروجی همیشه صفر خواهد بود پس بنابراین ما باید زمانی این ورودی ها رو یک کنیم که با مقدار شمارش شده مطابقت داشته باشند
فرض کنید که به اولین فلیپ فلاپ کلاک می دهیم طبیعی هست که مقدار پایه ورودی فلیپ فلاپ استارت باید از Q̅ گرفته شود (در مثال قبلی توضیح داده شده است)
با اعمال اولین پالس خروجی Q یک می شود با اعمال پالس دیگر دوباره خروجی صفر شده بنابراین باید خروجی فلیپ فلاپ دوم فعال شود اما ما هنوز پایه ورودی فلیپ فلاپ دوم را هنوز مقدار دهی نکردیم!
برای مقدار دهی پایه های ورودی فلیپ فلاپهای دوم تا الی آخر ، حالاتی که خروجی هر فلیپ فلاپ نسبت به موقعیت بیتی که دارند باید بررسی شوند و سپس مدار مناسب برای پایه ورودی هر فلیپ فلاپ رسم شود بر همین اساس برای برسی حالات نیاز به رسم جدول صحت و حل آن خواهیم داشت.
فلیپ فلاپ اول یا همان فلیپ فلاپ استارت بسته به موقعیت بیتی که دارد به عنوان کم ارزش ترین بیت نیازی به رسم جدول صحت ندارد چرا که قبل از این فلیپ فلاپ ، فلیپ فلاپی موجود نیست
برای فلیپ فلاپ دوم ، یک فلیپ فلاپ قبل از خود که همان فلیپ فلاپ استارت می باشد وجود دارد ، یعنی وقتی مقدار شمارش از یک بیشتر شود باید خروجی فلیپ فلاپ دوم فعال شود بنابراین جدول صحت مربوط به ورودی فلیپ فلاپ دوم را رسم می کنیم:
نکته:
قبل از اینکه جدول صحت را رسم کنید باید از تعداد متغییر هایی که می خواهید به عنوان ورودی استفاده کنید اطلاع داشته باشید تعداد حالات یک جدول صحت با استفاده از فورمول [۱- (تعداد متغیر)۲ ] بدست می آید.
برای اینکه ورودی های فلیپ فلاپ دوم را متناسب با مقدار شمارش تعیین کنیم خروجی فلیپ فلاپ استارت و همینطور خروجی فلیپ فلاپ دوم به عنوان ورودی جدول صحت در نظر گرفته شده اند ، از خروجی استارت ما خواهیم فهمید که مقدار شمارش یک واحد انجام شده و شمارش در استانه مقدار دو قرار دارد بنابراین با فعال شدن خروجی استارت که همان Q0 می باشد ورودی فلیپ فلاپ دوم که همان D1 می باشد باید یک شود تا در پالس کلاک دوم خروجی فلیپ فلاپ دوم یک شود با رسیدن پالس کلاک یا ساعت به مقدار دو خروجی Q1 به یک تغییر پیدا کرده و هم زمان خروجی استارت هم به صفر تغییر پیدا می کند بنابراین با قرار دادن مقدار دو خروجی Q1 و Q0 در کنار هم به باینری ۱۰ دست میابیم که معادل عدد ۲ می باشد.
اما نقش Q1 در جدول چیست؟
ابتدا بیایید برسی کنیم که اگر تنها از Q0 به عنوان ورودی استفاده می کردیم چه می شد؟
خروجی Q0 به عنوان کم ارزشترین بیت بین صفر و یک با هر بار پالس ساعت به طور مداوم در حال تغییر است ما با در نظر گرفتن خروجی فلیپ فلاپ اول در جدول صحت تنها می توانیم تا مقدار دو [۱- (موقعیت بیتی)۲ ] خروجی Q1 را فعال نگه داریم برای درک موضوع مقدار باینری خروجی های Q0 , Q1 را درنظر بگیرید:
مقدار ۰ >> باینری ۰۰
مقدار ۱ >> باینری ۰۱
مقدار ۲ >> باینری ۱۰
مقدار ۳ >> باینری ۱۱
همانطور که میبینید برای مقدار سه هم خروجی Q1 باید فعال نگه داشته شود ، خروجی Q0 یا فلیپ فلاپ استارت در اولین پالس به مقدار یک تغییر می کند با یک شدن خروجی Q0 مقدار یک در ورودی D1 قرار می گیرد با کلید خوردن پالس دوم با توجه به اینکه ورودی Q1 یک می باشد خروجی نیز یک می شود اما مشکلی در اینجا وجود دارد! چونکه ورودی Q1 با تبعیت از Q0 دوباره صفر می شود و با اعمال پالس بعدی خروجی Q1 به صفر تبدیل شده و عمل شمارش مقدار سه شکست می خورد!در صورتی که که باینری ۱۱ در خروجی این دو فلاپ فلاپ باید ظاهر می شد به جای آن باینری ۰۱ ظاهر شده که نشان می دهد مقدار بین ۰ تا دو شمارش می شود نه از صفر تا سه
به نظر راهی نمی رسد جز اینکه از خود فلیپ فلاپ دومی کمک بگیریم
بنابراین از خروجی Q1 به عنوان ورودی دیگر جدول صحت استفاده می کنیم ، زمانی که خروجی Q1 به یک منطقی تغییر یافت ورودی یک منطقی باید در حالت یک منطقی نگه داشته شود تا عمل شمارش تا مقدار سه انجام گیرد وقتی که شمارش به مقدار سه رسید باید ورودی Q1 هم دوباره صفر شود
اگر به جدول صحت بالا برگردید و به خروجی D1 نگاه کنید بعد از حل جدول صحت و ساده سازی تابع به فرمول زیر می رسید
D1 = A̅B+AB̅
تابع D1 همان تابع XOR می باشد می توانید مدار مربوطه رو با XOR جایگزین کنید
این همان مدار ورودی برای Q1 می باشد که اجازه می دهد شمارش از صفر تا سه انجام گیرد
تا اینجا مدار را رسم می کنیم(مدار بدون جایگزین کردن XOR رسم شده است):
بنابراین ما برای رسم جدول صحت و حل آن این حالات را برای فلیپ فلاپ دوم بررسی کردیم:
چه زمانی خروجی فلیپ فلاپ دوم باید فعال شود؟
بعد از فعال شدن خروجی فلیپ فلاپ دوم و تغییر خروجی به یک منطقی ، خروجی فلیپ فلاپ دوم تا چه مقدار باید در حالت یک منطقی باقی بماند؟
اگر در هنگام طراحی و تجزیه و تحلیل مدار این سوالات رو از خودتان بپرسید مطمئنا بر درک بیشتر موضوع کمک خواهد کرد.
خوب کارمان بر روی فلیپ فلاپ اول و دوم تمام شد ، الان به سراغ فلیپ فلاپ سوم باید برویم
طبق فورمول [۱- (موقعیت بیتی)۲ ] مقدار شمارش با روی کار امدن فلیپ فلاپ سوم از صفر تا هفت باید ادامه یابد ما در جدول صحت سه متغیر ورودی خواهیم دشت که عبارتند از Q0,Q1,Q2 اگر حالات و قوائدی را که برای فلیپ فلاپ دوم شرح داده شد درک آن به خوبی برایتان روشن شده باشد ، با درک اینکه چرا از سه متغیر استفاده کرده ایم هم مشکلی نخواهید داشت
با پرسیدن دو سوال طلایی که در بالا گفته شد می توانید موضوع را ساده کنید
چه زمانی خروجی فلیپ فلاپ دوم باید فعال شود؟
>> زمانی که مقدار شمارش به سه رسید باید ورودی فلیپ فلاپ سوم رو یک کنم با اعمال پالس بعدی مقدار ۴ در خروجی قرار گیرد.
بعد از فعال شدن خروجی فلیپ فلاپ دوم و تغییر خروجی به یک منطقی ، خروجی فلیپ فلاپ دوم تا چه مقدار باید در حالت یک منطقی باقی بماند؟
>> از مقدار ۴ تا ۶ باید خروجی در حالت یک منطقی باقی بماند.
از توضیحات اضافی می گذرم و مستقیم میرم سراغ جدول صحت و حل آن (در مورد این قسمت اگر سوالی بود می توانید از قسمت نظرات وب سایت به پرسیدن سوالتان اقدام کنید اگر جواب سوالتان را بدانیم مطمئنا بی جواب نخواهید ماند.)
D2 = A̅B̅C+A̅BC+AB̅C+ABC̅
بعد از ساده سازی
D2 = ABC̅+ A̅C+B̅C
رسم مدار برای فالیپ فلاپ سوم
اگر تا اینجا مدار رو بررسی کنیم میبینیم که مدار از صفر شروع به شمارش کرده و تا مقدار هفت این شمارش انجام می گیرد بعد از مقدار هفت عمل شمارش مجددا از صفر آغاز می شود
اما طبق گفته مثال باید کاری کنیم که بعد از یک بار شمارش کامل (از صفر تا هفت) به محض صفر شدن مجدد مقدار شمارش بر روی صفر متوقف شود
برای اینکه بتوانیم این بخش مثال رو حل کنیم نیاز به فلیپ فلاپ چهارم داریم تا در صورتی که مقدار شمارش بزرگتر از هفت شد خروجی فلاپ فلاپ رو یک کنیم اگر زمانی که خروجی فلیپ فلاپ چهارم یک شد Q̅ آن صفر خواهد شد بنابراین می توانیم با AND کردن Q̅ با منبع کلاک مقدار را بعد از یک بار شمارش کامل بر روی صفر قفل کنیم
در نهایت با وصل کردن خروجی فلیپ فلاپها به یک سون سگمنت BCD می توانید مقدار شمارش را مشاهده کنید
مدار کامل و تکمیل شده (توجه شود که در ورودی مدار فلیپ فلاپ دوم ، معادل XOR آن جایگذاری شده است)
منبع : تیم mculibrary.ir
دیدگاهها (0)