โมดูลซีเควนเชียลลอจิก

จากวิกิพีเดีย สารานุกรมเสรี

โมดูลซีเควนเชียลลอจิก (อังกฤษ: Modular Sequential Logic)

Counter[แก้]

วงจรนับแบบไม่เข้าจังหวะ (Asynchronous Counter )[แก้]

ใช้ J-K Flip Flop มาเรียงต่อกัน (Flip flop 1 ตัว แทนเลขฐานสองได้ 1 บิท) ขึ้นอยู่กับสถานะเอาต์พุตของ Flip flop ตัวก่อนหน้านี้ โดย Flip flop ตัวแรกจะส่งสัญญาณจาก Q ไปกระตุ้นที่ Clk ของ Flip flop ตัวที่สอง และ Flip flop และตัวที่สองจะส่งสัญญาณไปกระตุ้นที่ Clk ของ Flip flop ตัวที่สามไปเรื่อย ๆ ตามลำดับ การทำงานของวงจรมีลักษณะเป็นระลอก เรียกว่า วงจรนับแบบ Ripple Counter

วงจรนับเลขฐานสอง (Binary Counter)
ตัวอย่างวงจรข้างล่างนี้เรียกว่า วงจรนับเลขฐานสองแบบไม่เข้าจังหวะ ใช้ J-K Flip flop และ Flip flop ทุกตัวต่อในอยู่ในสถานะ Toggle คือ ให้ J และ K เป็น "1" เพื่อเตรียมพร้อมที่จะให้ Flip flop เปลี่ยนสถานะเอาต์พุต เมื่อมีคล็อก (Clock) ชนิดขอบขาลง (Negative edge-triggering) เข้ามาที่ Clk ของ Flip flop แต่ละตัว ให้พิจารณาการทำงานจากตารางความจริงและไดอะแกรมของเวลา
Modulus Counter (MOD-Number Counter)
เป็นการนับตามค่าที่กำหนด คือ สร้างวงจรนับให้สามารถกำหนดค่าที่นับได้ เช่น ให้นับตั้งแต่ 0 - 9 แล้วเวียนกลับมาเริ่มต้นที่ 0 อีก หรืออาจจะกำหนดให้นับถึงเลขใดเลขหนึ่งแล้วเวียนกลับมาเริ่มต้นใหม่ เมื่อนับถึงค่าที่กำหนดวงจรจะ Reset ตัวเองให้เริ่มต้นใหม่ โดยค่าสูงสุดที่กำหนดให้นับเรียกว่า MOD number จึงเรียกวงจรนับว่า MOD-3 คือ จงจรจะ Reset ค่าเมื่อนับถึง 3 การ Reset ค่าจะใช้ ขา CLR หรือ เป็นขา Asynchronous ร่วมกับลอจิกเกตทำการ Reset เอาต์พุตของ Flip flop
วงจรนับสิบ (decade BCD Counter)
เราสามารถเรียกอีกอย่างได้ว่า ดีเคดเคาน์เตอร์ (Decade counter) หรือ บีซีดีเคาน์เตอร์ (BCD counter) หรือ วงจรนับชนิดมอดสิบ (MOD-10) ซึ่งเป็นวงจรนับเลขฐานสองขนาด 4 bit จาก 0000 ถึง 1001 (0-9 เลขฐานสิบ) lสามารถออกแบบโดยใช้ลอจิกเกต ควบคุมการนับ โดยไม่ต้องใช้ขา CLR หรือ ออกแบบโดยใช้ลอจิกเกต ควบคุมการนับ โดยต้องใช้ขา CLR ก็ได้
วงจรนับแบบนับขึ้น – ลง (Asynchronous Up/Down Counter)
ที่ผ่านมาเป็นวงจรนับแบบนับขึ้น (Count Up) เราสามารถดัดแปลงวงจรให้นับลง (Count Down) โดยการต่อเอาต์พุต ของ Flip flop ให้แสดงงผลแทน Q หรือต่อเอาต์พุต ของ Flip flop ไปกระตุ้น Flip flop ตัวต่อไปให้เปลี่ยนสถานะ สัญญาณที่เกิดขึ้นจึงตรงกันข้าม ทำให้นับลง การออกแบบให้วงจรสามารถนับขึ้นและนับลง ทำได้โดยการสับเปลี่ยนสวิทช์วงจรไปมาระหว่าง Q และ ให้ส่งสัญญาณ Clock ไปกระตุ้น Flip flop ตัวถัดไป ถ้าต้องการนับขึ้นต้องนำสาย Enable ต่อลงกราวด์ ให้มีค่าลอจิกเป็น "0" จะได้ว่า AND เกต อยู่ในสถานะ Enable พร้อมที่จะให้สัญญาณ (Clock) จาก Q ผ่านได้ทุกขณะ ส่วนการนับลงก็ทำกลับกันโดยให้ค่าลอจิกเป็น "1"

ข้อเสียของ Asynchronous Counter คือใช้ได้ดีเฉพาะที่ความถี่ต่ำๆ เนื่องจากปัญหาความล่าช้าของสัญญาณเอาต์พุตหรือเกิดเวลาหน่วงในการส่งข้อมูลจากอินพุตไปยังเอาต์พุต ของ Flip flop แต่ละตัว ถ้าผลรวมของเวลาที่หน่วงของ Flip flop ทุกตัวค่าน้อยกว่าเวลาที่เกิดสัญญาณ Clock ในหนึ่งลูกคลื่น ก็จะไม่เกิดปัญหาในการนับ

วงจรนับแบบเข้าจังหวะ (Synchronous Counter )[แก้]

การทำงานของวงจรนับที่ความถี่สูงๆ จำเป็นที่จะต้องให้ Flip flop ได้รับสัญญาณกระตุ้นพร้อมๆ กันเพื่อหลีกเลี่ยงปัญหาที่เกิดจากการหน่วงเวลาของ Flip flop เรียกวงจรนับชนิดนี้ว่า วงจรนับแบบเข้าจังหวะ (Synchronous Counter) รูปด้านล่างนี้เป็นวงจรนับแบบเข้าจังหวะ (Synchronous Counter) 4 บิท โดยใช้ J-K Flip flop ขา Clk ทุกตัวต่อรวมกัน และต่อเข้าสัญญาณ Clock

วงจรนับขึ้นลงแบบได้จังหวะ ( Synchronous up/down counter)
เป็นวงจรนับเลขไบนารี่ที่สามารถนับขึ้น(Count Up) หรือนับลง(Count Down)ได้ ขา Clock ต่อเข้ากับ Clock ทุกตัวของ Flip flop นำเอาเอาต์พุต Q หรือ Q ANDกับ Up/ Down และต่อเข้าขา J และ K ของ Flip flop ตัวถัดไป การนับขึ้นหรือนับลงควบคุมได้ที่ขา Up/ Down ถ้าเป็นโลจิก“1” ให้วงจรนับทำการนับขึ้น โลจิก “0”ให้วงจรนับทำการนับลง

ข้อเสียของ synchronous Counter คือ โครงสร้างในการออกแบบทำให้การนำ JK Flip-flop มาต่อเป็นวงจรทำได้ค่อนข้างยาก เพราะ JK Flip-flopทุกตัวต้องเริ่มนับพร้อมกัน และต้องการเอาต์พุตในแต่ละขาของ JK Flip-flop ที่แต่ต่างกันไปตามรูปแบบวงจรนับที่ต้องการ ดังนั้นจึงมีการนำวงจรชนิดนี้ไปใช้งานน้อย

Shift- register[แก้]

ข้อมูลเข้าแบบอนุกรม/ออกแบบอนุกรม (Serial-in/Serial-Out - SISO)
ในการส่งข้อมูลแบบอนุกรมและตัวรับแบบอนุกรมนี้ไม่ใช้ในการรับส่งข้อมูลทั่วไป แต่ใช้หน่วงเวลาของข้อมูล หากต้องการหน่วงเวลาของข้อมูล ไป 1 ช่วงสัญญาณนาฬิกาก็ได้ Flip-flop D จำนวน 1 ภาค และเพิ่มขึ้นทุกจำนวน 1 ภาค ต่อการหน่วง ไป 1 จังหวะของสัญญาณนาฬิกา อย่างไรก็ตามจำนวนบิทของข้อมูลที่ส่งต่อหน่วยเวลาจะต้องเท่ากับความถี่ของสัญญาณนาฬิกาที่ให้กับ Flip-flop D
ข้อมูลเข้าแบบอนุกรม/ออกแบบขนาน (Serial-in/Parallel-Out - SIPO)
ปกติตัวเลื่อนแบบ SISO จะนำมาใช้เมื่อต้องการหน่วงเวลาสัญญาณเท่านั้น ด้านล่างเป็นตัวอย่างการใช้ Flip-flop D ในการเลื่อนข้อมูลแบบรับเข้าอนุกรม และส่งออกแบบขนาน
ข้อมูลเข้าแบบขนาน/ออกแบบอนุกรม (Parallel-in/Serial-Out - PISO)
การส่งข้อมูลให้กับตัวเลื่อนชนิดนี้ ทำได้โดยการส่งข้อมูลให้ตัวเลื่อนแบบขนาน และรับข้อมูลจากตัวเลื่อนแบบอนุกรม การรับข้อมูลแบบอนุกรมในลักษณะนี้สัญญาณ CLOCK ของฝ่ายรับจะต้องมีคาบเวลาเท่ากับสัญญาณ CLOCK ของฝ่ายหลัง (แต่ไม่จำเป็นต้องเป็นสัญญาณเดียวกัน) ข้อมูลที่รับได้จึงจะเป็นข้อมูลที่ถูกต้อง
ข้อมูลเข้าแบบขนาน/ออกแบบขนาน (Parallel-in/Parallel-Out - PIPO)
ตัวเลื่อนข้อมูลในลักษณะนี้ จะนำมาใช้เป็นตัวจดบันทึก หรือคงค่า (latch) เพื่อให้เห็นภาพของการใช้งานที่ชัดเจน

วงจรนับแบบ Shift- register[แก้]

วงจรนับวงแหวน ( Ring Counter )
การต่อเอาต์พุตของ Flip-flop บิตสุดท้ายกับขาอินพุตกับ Flip-flop บิตแรก เกิดเป็นรูปแบบการนับเลื่อนกลับเป็นวงกลมในกรณีที่มีสัญญาณนาฬิกาเข้ามา
วงจรนับแบบจอห์นสัน ( Johnson Counter )
เป็นการนำผลตรงข้ามของเอาต์พุตของ Flip-flop สูงสุดป้อนกลับมายังขาอินพุตของ Flip-flop ตัวแรก รูปแบบการนับทางเอาต์พุตของวงจร Johnson ขนาด 4 บิตมี 8 รูปแบบ และ รูปแบบการนับทางเอาต์พุตของ

วงจร Johnson ขนาด 5 บิตมี10 รูปแบบ โดยหารูปแบบได้จากสูตร 2n (โดย n คือ จำนวนบิต)