فلیپ فلاپهای نوع T مدارهای منطقی ترتیبی هستند که از آنها به عنوان یک المان ذخیره داده 2حالته تک بیتی در شمارندهها، حافظهها یا به عنوان تقسیمکننده فرکانسی که با پالس کلاک کار میکند؛ استفاده میشود.
فلیپ فلاپ نوع T بر اساس فلیپ فلاپ کلاک دار JK ساخته شدهاست. از فلیپ فلاپ نوع T میتوان به عنوان یک المان دیجیتال پایه برای ذخیره یک بیت از داده استفاده نمود. همچنین، این المان میتواند به عنوان تقسیمکننده دودویی یا شمارنده مورد استفاده قرار بگیرد.
فلیپ فلاپهای Toggle دارای یک ورودی تکی و یک یا دو خروجی مکمل Q و Q̅ میباشند که وضعیتشان در گوشهی بالارونده یا پایین رونده سیگنال کلاک ورودی تغییر میکند.
فلیپ فلاپهای نوع T، به صورت مدار TTL یا CMOS در دسترس نیستند اما میتوانند به راحتی توسط اتصال پایههای K وJ چند فلیپ فلاپ JK به وجود بیایند که در این جا ورودی J همانند SeT و ورودی K همانند ReseT عمل میکند.
در مقالات قبلی گفته شده که فلیپ فلاپ JK از فلیپ فلاپهای غیر سنکرون باشد که شرایط ورودیاش (بالا یا پایین) و شرایط ثابت آن توسط وضعیت بعدی سوییچینگ تعیین میشود.
فلیپ فلاپهای JK به عنوان یک فلیپ فلاپ همگانی در نظر گرفته میشوند چرا که به وسیله آن میتوان دیگر انواع فلیپ فلاپ را بسته به وضعیت منطقی که به ورودی J و K اعمال میشود، به وجود آورد. اما پیش از بررسی فلیپ فلاپهای نوع T بهتر است، مدار پایه فلیپ فلاپ JK را از نظر بگذرانیم و عملکرد سوییچینگ آن را مورد بررسی قرار دهیم.
مدار پایه فلیپ فلاپ JK با گیتهای NAND
مدار بالا پیکربندی یک فلیپ فلاپ JK را با استفاده از چهارگیت NAND نشان میدهد اما این فلیپ فلاپها میتوانند توسط گیتهای NOR نیز به وجود بیایند. فلیپ فلاپ JK دارای 3 پایه J،K و CLK میباشد. ورودی J که متناظر با پایه Set میباشد، از نقطه Q̅ به گیت NAND بالایی فیدبک دارد. در حالیکه دیگر ورودی که K نام داردو متناظر با ریست است، از نقطه Q̅ به گیت NAND پایین فیدبک دارد.
اگر ورودیهای J وK هر دو در سطح پایین باشند (J=K=0) هیچ تغییری در سطح خروجیها به وجود نمیآید و به هیچ عنوان مهم نیست که چه تعداد پالس کلاک به فلیپ فلاپها اعمال میشود. اگر J=0 باشد و K=1، پالس کلاک بعدی خروجی Q را به سطح بالا (Q=1) میبرد.
جدول عملکرد فلیپ فلاپ JK
CLK
|
J
|
K
|
Q
|
Q+1
|
عملکرد
|
---|---|---|---|---|---|
0
|
X
|
X
|
0
|
0
|
ممنوع
|
|
0
|
0
|
0
|
0
|
بدون تغییر
|
|
0
|
0
|
1
|
1
|
|
|
0
|
1
|
0
|
0
|
Reset
|
|
0
|
1
|
1
|
0
|
|
|
1
|
0
|
0
|
1
|
Set
|
|
1
|
0
|
1
|
1
|
|
|
1
|
1
|
0
|
1
|
Tpggle
|
|
1
|
1
|
1
|
0
|
در این جا X به معنای “فرقی ندارد” میباشد و فلش رو به بالا، نشانگر گوشهی بالارونده پالس کلاک است.
سپس میتوانیم عملکرد سوییچینگ را به صورت جبر بولی که در زیر نشان داده شده، بنویسیم:
Q + 1 = J̅.K̅.Q + J.K̅.Q̅ + J.K̅.Q + J.K.Q̅
Q + 1 = K̅.Q(J̅+J) + J.Q̅(K̅+K)
Q + 1 = K̅.Q + J.Q̅
Q نشانگر وضعیت کنونی و ثابت فلیپ-فلاپ میباشد و Q+1 وضعیت بعدی سوییچینگ را مشخص میکند.
در این جا، مشکل این است که اگر هر دو ورودی J و K در منطق یک باشند، (J=K=1)، هنگامیکه پالس کلاک برابر با یک میشود، خروجیها تغییر وضعیت میدهند و مکمل یکدیگر میشوند. اما از آن جایی که خروجیها به ورودی فیدبک داده میشوند، خروجیها پس از اینکه مکمل یکدیگر شدند، به صورت پیوسته تغییر وضعیت میدهند و این امر باعث میشود که خروجی در نقطه Q بین Set و Reset نوسان کند. بنابراین، فلیپ فلاپهای JK معمولا با استفاده از گیتهای NAND و NOR و به صورتی که در بالا نشان داده شد، ساخته نمیشوند و حالت master-slave که با گوشه پالس تحریک میشود را دارند. گفتنی است، فلیپ فلاپهای مستر – اسلیو از پایداری بیشتری برخوردار هستند.
فلیپ فلاپ Toggle
در حالیکه فلیپ فلاپ نوع D یک نوع فلیپ فلاپ SR دارای کلاک است که با استفاده از گیتهای NAND و NOR ساخته شده، فلیپ فلاپ نوع T گونه ای از فلیپ فلاپ JK کلاک دار میباشد. فلیپ فلاپ نوع T یا Toggle به این دلیل به این نام خوانده میشود که خروجیهایش با اعمال هر پالس تحریک (T=1) معکوس میشود.
به عبارتی دیگر، اگر سطح خروجی برابر با صفر باشد، با اعمال پالس کلاک دوباره به یک باز میگردد یا اگر یک باشد،به صفر بازمیگردد. اما این تغییر تنها زمانی رخ میدهد که ورودی T دارای 2 ورودی است که یکی ورودی T (Toggle) و دیگری ورودی کلاک (clk) میباشد.
همچنین مانند فلیپ فلاپ JK، 74LS73، فلیپ فلاپ نوع T میتواند به صورتی پیکربندی شود که یک ورودی فعال ساز به نام EN یا CE (Clock Enable) داشته باشد که به فلیپ فلاپ اجازه میدهد تا آخرین وضعیت داده را که در خروجی اش ذخیره شده، تا زمانی نامعلوم نگه دارد. بنابراین از پایه فعال ساز برای جلوگیری از نوسان خروجیها با اعمال هر پالس کلاک استفاده میشود.
اما اگر به پایه فعال ساز نیاز باشد، باید از گیتهای منطقی بیشتری استفاده کرد.
علامت مثلث روی ورودی فلیپ فلاپ نوع T، نشاندهنده این است که این المان با گوشه پالس تحریک میشود و اگر یک حباب کوچک یا حلقه روی ورودی باشد، نشان دهندهی این است که فلیپ فلاپ در گوشهی پایین رونده پالس تحریک میشود. در غیر اینصورت تغییر وضعیت در گوشه بالارونده پالس ورودی رخ میدهد.
سپس میتوانیم یک مدار منطقی تک بیتی فلیپ فلاپ نوع T را با استفاده از فلیپ فلاپهای JK بسازیم. برای این منظور، باید ورودیهای J و K را به یکدیگر متصل کنیم که نقطهی مشترک اتصال دو ورودی T نامگذاری میشود.
فلیپ فلاپ نوع T
در نظر بگیرید که CLK و ورودی T هر دو در سطح پایین میباشند (CLK=T=0) و خروجی Q در سطح بالا میباشد. (Q=1). در گوشهی بالا یا پایین رونده یک پالس کلاک منطق صفر موجود در پایه T از تغییر وضعیت خروجی در نقطه Q جلوگیری میکند. بنابراین تا هنگامیکه T=0 است. خروجی بدون تغییر باقی میماند.
حال فرض کنید که ورودی T به سطح بالا میرود (T=1) و سطح سیگنال CLK پایین است (CLK=0) در گوشه بالارونده، پالس کلاک در لحظه T1 خروجی در نقطه Q تغییر وضعیت میدهد و به سطح پایین میرود که باعث میشود سطح Q بالا برود. سپس در گوشه پایین رونده سیگنال کلاک، در لحظه T2 هیچ تغییری در خروجی Q به وجود نخواهد آورد چرا که فلیپفلاپ به یک وضعیت پایدار رسیدهاست.
در گوشهی بالارونده سیگنال کلاک بعدی در زمان T3 منطق یک ورودی T به Q میرسد و سطح خروجی Q بالا میرود و گوشه پایین رونده پالس کلاک در زمان T4 نمیتواند هیچ تاثیری روی مقدار خروجی بگذارد. بنابراین، خروجی Q فلیپ فلاپ با هر گوشهی بالارونده سیگنال T (CLK) تغییر وضعیت میدهد.
جدول عملکرد فلیپ فلاپ Toggle
CLK
|
T
|
Q
|
Q+1
|
---|---|---|---|
|
0
|
0
|
0
|
|
0
|
1
|
1
|
|
1
|
0
|
1
|
|
1
|
1
|
0
|
سپس میتوانیم عملکرد سوییچینگ فلیپ فلاپ Toggle را در جبر بولی به صورت زیر بنویسیم:
Q + 1 = T.Q̅ + T̅.Q
که در این جا Q شرایط پایدار کنونی فلیپفلاپ و Q+1 شرایط سوییچینگ بعدی را نشان میدهد.
حتما متوجه شده اید که معادلهی بالا اگر دو رودوی Q وT متفاوت باشند، برای فلیپ فلاپ Toggle یک خروجی سطح بالا را برای وضعیت بعدی (Q+1) تولید خواهد کرد و اگر ورودیها متفاوت باشند، سطح خروجی پایین خواهد بود.
Q+1 تنها زمانی برابر با منطق یک میشود که یکی از ورودیها در سطح بالا باشد. اما هنگامیکه هر دو ورودی بالا باشد، این قضیه صادق نمیباشد که برای این حالت میتوان جبر بولی که متناظر با عملگر Exclusive -OR را استفاده نمود که به صورت زیر نشان داده میشود:
Q + 1 = T̅.Q + T.Q̅ = T XOR Q = T ⊕ Q
سپس میتوانیم عملکرد سوییچینگ که فلیپ فلاپ Toggle را با استفاده از یک گیت Exclusive-OR که دارای 2 ورودی است، شبیه سازی کنیم.
تبدیل فلیپ فلاپ JK به نوع D
علاوه بر فلیپ فلاپ نوع D که با اعمال تغییرات کوچکی از فلیپ فلاپ JK مشتق شده، به وجود بیاوریم. فلیپ فلاپ نوع D دارای 2 ورودی میباشد: D و CLK و در پاسخ به گوشه بالارونده یا پایین رونده سیگنال، تغییر وضعیت میدهد. همچنین از فلیپ فلاپ نوع D میتوان به عنوان یک المان ذخیره موقت داده استفاده نمود.
اضافه کردن یک گیت NOT بین پایههای J و K و جایگزین آنها با یک ورودی به نام D فلیپ فلاپ نوع D را به وجود میآرود. این بدان معناست که پایههای J و K هرگز نمیتوانند مقادیر یکسانی را بپذیرند چرا که اگر J=0 باشد، K=1 میشود و اگر J=1 باشد، K=0 میشود.
اضافه کردن یک گیت NOT بین پایه J و K باعث میشود که مقدار خروجی در Q هنگامیکه CLK=1 میباشد، وابسته به مقدار ورودی D شود و این قضیه در جدول سوییچینگ زیر کاملا هویداست:
جدول عملکرد فلیپ فلاپ نوع D
CLK
|
D
|
Q
|
Q+1
|
عملکرد
|
---|---|---|---|---|
|
0
|
0
|
0
|
Reset
|
|
0
|
1
|
1
|
Set
|
Q+1 = T̅.Q + T.Q̅ = T XOR Q = T ⊕ Q
در حالیکه Q نشانگر شرایط حال حاضر و Q+1 نشانگر وضعیت بعدی پس از اعمال پالس کلاک میباشد، میتوان عملکرد سوییچینگ فلیپ فلاپ نوع D را در جبر بولی به صورت زیر نشان داد:
Q + 1 = D
بنابراین وضعیت ناپایدار خروجی فلیپ فلاپ تنها زمانی تغییر میکند که پالس کلاک فرابرسد. یعنی تغییرات در وضعیت ورودی D رخ دهد. در چنین شرایطی در پیکربندی فلیپ فلاپ نوع D، Qزمانی به شرایط پایدار میرسد که ورودی D به سطح بالا برود.
یکی از مضرات این روش این است که به دو ورودی جداگانه (D،CLK) نیاز خواهیم داشت تا مدار در حالت toggle فرو برود. سپس باید راهی را پیدا کنیم تا خروجی Q با وضعیت مخالف نیز تغییر کند. یعنی با اعمال هر پالس کلاک تغییر وضعیت دهد.
تبدیل فلیپ فلاپ نوع D به نوع T
جدول مشخصات برای فلیپ فلاپ نوع T
CLK
|
T
|
Q
|
Q+1
|
عملکرد
|
---|---|---|---|---|
|
0
|
0
|
0
|
بدون تغییر
|
|
1
|
1
|
0
|
Toggle
|
|
1
|
0
|
1
|
در این جا T یکی از ورودیهای گیت Exclusive-OR میباشد. در حالیکه خروجی Q فیدبک داده شده تا ورودی دیگری را به وجود بیاورد. بنابراین T و Q هر دو ورودیهای گیت EXOR میباشند که عملگر بولی مورد نیاز را برای درایو ورودی D میسازند. اگر T=0 خروجی گیت Exclusive-OR که برابر با Q⊕T میباشد نیز برابر با صفر خواهد بود. بنابراین فلیپ فلاپ نوع D در یک حالت پایدار باقی میماند.
به هر حال هنگامیکه T=1، گیتهای Exclusive-OR در D هر بار که فلیپ فلاپ نوع D کلاک میشود، تغییر وضعیت میدهند. چرا که خروجی Q که به گیت فیدبک داده میشود، در هر پالس کلاک بین بالا و پایین نوسان میکند و این قطعه به عنوان یک المان دو حالته هنگامیکه قرار است یک بیت داده ذخیره شود، بسیار عالی عمل میکند.
از آن جایی که این پیکربندی تنها میتواند در حالت بودن تغییر یا حالت مکمل نگه داشته شود، هیچ راهی برای تثبیت یک وضعیت خروجی اولیه در هنگامیکه برق ابتدا به مدار متصل میشود و هیچ ورودی Preset یا Clear اضافه نشده وجود ندارد. مگر آنکه از یک مدار خارجی برای Set کردن خروجی Q روی مقداری خاص استفاده شود.
همچنین از آنجایی که خروجی در Q با گوشه بالارونده هر پالس کلاک تغییر میکند، دوره تناوب خروجی در Q با گوشه بالارونده هر پالس کلاک تغییر میک ند. دوره تناوب خروجی درQ برابر با نیمیاز فرکانس پالس کلاک میباشد. به عبارتی دیگر عملگر toggle فلیپ فلاپ نوع T میتواند یک مدار تقسیم گر دودویی که خروجی اش 1:1 (50%) ورودی است را به وجود بیاورد چرا که بازه زمانی سطح پایین سیگنال و بازه زمانی سطح بالای سیگنال برابر با یکدیگر میباشد.
از فلیپ فلاپ نوع T میتوان به عنوان یک شمارنده ساده باینری یا شمارنده ریپل برای تقسیم فرکانس استفاده نمود که در آن تعداد فلیپ فلاپهایی که به صورت سری به یکدیگر متصل شدهاند، میزان تقسیم فرکانس (f/2n) را نشان میدهد. گفتنی است، فرکانس خروجی هر مرحله نصف فرکانس خروجی مرحله قبلی میباشد.