فلیپفلاپ
در الکترونیک دیجیتال فلیپفلاپ (به انگلیسی: Flip-flop) یا لچ (به انگلیسی: latch) نوعی مدار است که داری دو حالت پایدار است و میتواند ۱ بیت (که شامل حالت فلیپفلاپ است) را در خود ذخیره کند. یک فلیپفلاپ یک «مدار نوسان ساز بای-استیبل» است. مدار میتواند به شکلی ساخته شده باشد، که به وسیله سیگنالهای گرفته شده از یک یا چند ورودی، یک یا چند خروجی را تولید کند. یک فلیپفلاپ یکی از حافظههای ابتدایی در مدارهای ترتیبی میباشد. فلیپفلاپها از بلاکهای اصلی مدارهای دیجیتال هستند و استفادههای فراوانی در رایانه و طراحی مدارهای مخابراتی دارند.
از فلیپفلاپهای برای طراحی سلولهای حافظه استفاده میشود. یک فلیپفلاپ امکان ذخیرهسازی یک بیت را دارد، که میتواند در حالت یک یا صفر باشد. چنین سلول حافظهای برای نگهداری حالت، و مدارهایی که در الکترونیک به عنوان مدارهای ترتیبی یاد میشود، استفاده میشود. زمانی که از یک ماشین حالات متناهی استفاده میشود، خروجی نه تنها وابسته به ورودی فعلی است، بلکه وابسته به حالت موجود فعلی نیز میباشد (بنابراین وابسته به ورودی قبلی هم هست). همچنین میتوان برای شمارش واحد زمانی، همگاه سازی از چند ورودی در زمانهای مختلف برای ساخت یک واحد زمانی جداگانه، استفاده کرد.
فلیپفلاپ میتواند به شکل ساده (شفاف یا غیر شفاف) یا همراه با سیگنال ساعت (همگاه سازی شده یا لبه سیگنال) باشد. اگر چه کلمه فلیپفلاپ به شکل کلی به هر دو نوع ساده و همراه با سیگنال ساعت اشاره دارد، اما امروزه، فلیپفلاپ را برای مدارهای دارای سیگنال ساعت استفاده میکنند و برای شکل ساده آن از کلمه لچ استفاده میکنند.
در اصطلاح علمی، لچ حساس به سطح است، و فلیپفلاپ حساس به لبه. به همین دلیل زمانی که لچ فعال میشود، وضعیت آن روشن است در حالی که یک فلیپفلاپ تنها با تغییر حالت ساعت، حالتش تغییر میکند.
تاریخچه
نخستین فیلیپ فلاپها در سال ۱۹۱۸ میلادی توسط ویلیام اکلز و فرانک ویلفرد جوردن اختراع گردید. در ابتدا نام آن مدار تریگر اکلز-جوردن بود و شامل دو عنصر فعال (لامپ خلأ) بود. طراحی آن در سال ۱۹۴۳ در کامپیوترهای کدشکن کلوسوس استفاده شد و این مدارها و گونههای ترانزیستوری شده آنها در کامپیوترها حتی پس از معرفی مدار مجتمع متداول بودند. با اینکه الان فلیپ فلاپهای ساخته شده از دروازه منطقی متداول هستند، فلیپ فلاپهای اولیه به مدارهای تریگر یا مدار نوسانساز معروف بودند.
بنا به پ.ل.لیندلی، مهندسی در آزمایشگاه پیشرانش جت موسوم به جیپیال، انواع مخلتف فلیپ فلاپ ابتدا در سال ۱۹۵۴ در درس طراحی کامپیوتر دانشگاه کالیفرنیا، لس آنجلس تدریس شده توسط مانتگامری فستر مطرح شدند و سپس در کتاب او، طراحی منطقی کامپیوترهای دیجیتال، ظاهر شدند. در آن زمان لیندلی در شرکت هواپیماسازی هیوز زیر نظر الدرید نلسون کار میکرد. نلسون اصطلاح جی-کی برای فلیپ فلاپی که وقتی هر دو ورودی آن برابر 1 منطقی هستند، تغییر حالت میدهد، ابداع کرده بود و بقیه اسمها توسط فیستر ابداع شده بودند. لیندلی توضیح داده است که داستان فلیپ فلاپ جی-کی را از نلسون که خود مسئول ابداع این اصطلاح است، هنگامی که در هواپیماسازی هیوز کار میکرده، شنیده است. فلیپ فلاپهایی که در هیوز استفاده میشدند، همه از نوعی بودند که بعدا به فلیپ فلاپهای جی-کی معروف شدند.
انواع فیلیپ فلاپها
فیلیپ فلاپها انواع مختلفی دارند که عبارتند از:
- فلیپ فلاپ SR
- فلیپ فلاپ JK
- فلیپ فلاپ T
- فلیپ فلاپ D
فلیپ فلاپ SR
فلیپ فلاپ SR مداری با دو گیت NAND یا NOR است که بهطور متقاطع به هم وصل گردیدهاند. این مدار دو ورودی Set و Reset دارد. لچ دارای دو حالت مفید است. وقتی خروجی Q=۱ و Q'=۰ لچ در حالت نشانده (منطق ۱) است و اگر Q=۰ و Q'=۱ باشد، در حالت بازنشانی است. خروجیهای Q و 'Q متمم هستند؛ با این وجود وقتی هر دوی آنها یک شوند، حالت تعریف نشده داریم.
جدول مشخصه فیلیپ فلاپ SR (ساخته شده با گیت NOR( | |||||||
---|---|---|---|---|---|---|---|
جدول مشخصه | جدول تحریک | ||||||
S | R | Action | Q(t) | Q(t+1) | S | R | Action |
۰ | ۰ | حفظ حالت قبل | 0 | 0 | 0 | X | بدون تغییر |
0 | 1 | Q = 0 | 1 | 0 | 0 | 1 | reset |
1 | 0 | Q = 1 | 0 | 1 | 1 | 0 | set |
۱ | ۱ | حالت تعریف نشده | 1 | 1 | X | 0 | race condition |
X در جدول نشان دهنده حالت بیاهمیت است.
فلیپ فلاپ JK
فلیپ فلاپ JK طبق شکل دارای دو ورودی و دو خروجی و یک پایه کلاک (clk) است. این فیلیپ فلاپ به خاطر پایه کلاک مشکل فیلیپ فلاپ SR را ندارد (در فیلیپ فلاپ SR دو ورودی با هم نمیتوانند یک شوند):
JK Flip Flop operation | ||||||||
---|---|---|---|---|---|---|---|---|
جدول مشخصه | جدول تحریک | |||||||
J | K | Qnext | Comment | Q | Qnext | J | K | Comment |
0 | 0 | Qprev | hold state | 0 | 0 | 0 | X | بدون تغییر |
0 | 1 | 0 | reset | 0 | 1 | 1 | X | Set |
1 | 0 | 1 | set | 1 | 0 | X | 1 | Reset |
1 | 1 | Qprev | toggle | 1 | 1 | X | 0 | No change |
فلیپ فلاپ T
فلیپ فلاپ T فلیپفلاپی است که از آن برای تاگل (Toggle) کردن استفاده میشود. (اگر T=۰ باشد با آمدن کلاک، خروجی همان وضعیت قبلی خواهد بود یعنی اگر صفر باشد خروجی صفر و اگر یک باشد خروجی یک خواهد بود؛ و اگر T=۱ باشد با آمدن کلاک، خروجی معکوس وضعیت قبلی خواهد بود)
T Flip-Flop operation | ||||||||
---|---|---|---|---|---|---|---|---|
جدول مشخصه | جدول تحریک | |||||||
Comment | Comment | |||||||
0 | 0 | 0 | hold state (no clk) | 0 | 0 | 0 | No change | |
0 | 1 | 1 | hold state (no clk) | 1 | 1 | 0 | No change | |
1 | 0 | 1 | toggle | 0 | 1 | 1 | Complement | |
1 | 1 | 0 | toggle | 1 | 0 | 1 | Complement |
این فلیپ فلاپ به عنوان ذخیرهکننده یک بیت دیتا بسیار پرکاربرد است و از نظر تأخیر نیز شبیه به یک عنصر تأخیر دهنده ساعت عمل میکند به این ترتیب که هر ورودی به آن میدهیم در یک فاصله زمانی مشخصی که به اندازه یک کلاک پالس (پالس ساعت) است همان ورودی را در خروجی دریافت میکنیم. از این رو این فلیپ فلاپ را فلیپ فلاپ تأخیر (Delay) مینامند. این فلیپ فلاپ یک ورودی به نام D دارد. فلیپ فلاپ T همانند فلیپ فلاپ JK است که دو ورودی آن از یک متغیر مقدار میگیرد یعنی یا هر دو J و K مقدار صفر یا هر دو مقدار یک دارند. به این ترتیب در مواقعی یک است، ایجاد جهش میکند.
فلیپ فلاپ D
یکی از حالتهای حذف حالت نامطلوب در فلیپفلاپ SR این است که مطمئن شویم هیچگاه آن دو با هم یک نخواهند شد؛ چرا که در فلیپفلاپها، ورودی از خروجی قبلی نیز متأثر میشود و وقتی ورودیها هر دو یک باشند، پیشبینی خروجی جدید ممکن نیست. این کار با لچ D میسر است؛ زیرا یک ورودی میپذیرد و در ساختار داخلی آن از خود ورودی و عکس (NOT) آن استفاده میشود.
کاربرد
از فلیپفلاپها میتوان در شمارندهها، ذخیرهسازی اطلاعات و … استفاده نمود.
جستارهای وابسته
منابع
- ↑ William Henry Eccles and Frank Wilfred Jordan, "Improvements in ionic relays" British patent number: GB 148582 (filed: 21 June 1918; published: 5 August 1920).
- ↑ W. H. Eccles and F. W. Jordan (19 September 1919) «A trigger relay utilizing three-electrode thermionic vacuum tubes," The Electrician, vol. 83, page 298. Reprinted in: Radio Review, vol. 1, no. 3, pages 143–146 (December 1919).
- ↑ طراحی دیجیتال (مدار منطقی)، پروفسور موریس مانو، ترجمه دکتر قدرت سپیدنام، انتشارات خراسان
- ↑ Mano, M. Morris (2004), Logic and Computer Design Fundamentals, 3rd Edition (به انگلیسی), Kime, Charles R., Upper Saddle River, NJ, USA: Pearson Education International, p. pg283
- Digital_logic_circuit_analysis_and_design Nelson
- Fundamental of digital ligic with verilog design by Brown
- Digital_logic_circuit_analysis_and_design by Mano