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

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

## 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 เลขฐานสิบ) สามารถออกแบบโดยใช้ลอจิกเกต ควบคุมการนับ โดยไม่ต้องใช้ขา 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 คือ จำนวนบิต)

หมวดหมู่:วงจรดิจิทัล