ในระบบดิจิตอลตัวเลื่อนข้อมูลมีบทบาทสำคัญในการคาบคุมการทำงานของข้อมูลดิจิตอล เช่น การเก็บข้อมูล และการควบคุมการแสดงผลข้อมูล
รวมทั้งการโหลดข้อมูลจากบัสข้อมูลเข้ามาเก็บไว้ชั่วคราว และส่งข้อมูลดังกล่าวออกไปสู่บัสข้อมูลอื่นๆ องค์ประกอบสำคัญของตัวเลื่อนข้อมูลประกอบไป
ด้วยฟลิปฟลอปชนิดต่างๆ และเกตควบคุมตามคุณลักษณะพิเศษของตัวเลื่อนข้อมูลที่ถูกผลิตออกมาใช้งานกันอย่างแพร่หลาย ตังอย่างที่ชี้ให้เห็นความหมาย
ของตัวเลื่อนข้อมูลอย่างชัดเจน คือ การแสดงผลและการทำงานของเครื่องคำนวณอิเล็กทรอนิกส์ เมื่อคุณต้องการป้อนตัวเลข 268 เข้าเครื่องคำนวณ
คุณต้องกดแป้นหมายเลข 2 ก่อนและเลข 2 จะแสดงผลบนหน้าปัดเครื่องคำนวณในตำแหน่งหลักหน่วย ลำดับต่อไปคุณด้องกดแป้นหมายเลข 6
คุณจะเห็นว่าที่จะแสดงผลเลข 2 จะเลื่อนจากตำแหน่งหลักหน่วยไปทางซ้ายสู่ตำแหน่งหลักสิบ และเลข 6 จะอยู่ในตำแหน่งหลักหน่วยแทน และลำดับ
สุดท้ายคุณกดแป้นหมายเลข 8 ครั้งนี้หมายเลข 2 และหมายเลข6 จะเลื่อนไปทางซ้ายอีก 1 ตำแหน่ง นั่นคือ หมายเลข 2 อยู่ตำแหน่งหลักร้อย หมายเลข 6
อยู่ตำแหน่งหลักสิบ และหมายเลข 8 อยู่ตำแหน่งหลักหน่วย
จากตัวอย่างที่กล่าวมานี้พอสรุปคุณลักษณะของตัวเลื่อนข้อมูลได้ 2 ประการคือ ประการแรก ทำหน้าที่เป็นหน่วยความจำที่เก็บข้อมูลได้ชั่วคราว
ประการที่ 2 สามารถเลื่อนตำแหน่งของข้อมูลเก่าและรับข้อมูลใหม่เข้ามาแทนที่ได้ หรืออาจสรุปลักษณะของตัวเลื่อนข้อมูลได้ว่า เป็นหน่วย ความจำที่
สามารถเลื่อนตำแหน่งข้อมูลได้ ระบบดิจิตอลที่ใช้ตัวเลื่อนข้อมูลประกอบในระบบดังตัวอย่าง แสดงได้ดังรูปที่ 18.1
|
รูปที่ 18.1 ระบบดิจิตอลของเครื่องคำนวณอิเล็กทรอนิกส์ที่ใช้วงจรเลื่อนข้อมูลในระบบ
|
18. 1 ชนิดของวงจรเลื่อนข้อมูล
เมื่อแบ่งชนิดของตัวเลื่อนข้อมูลตามลักษณะการโหลดข้อมูลเข้าและออก สามารถแบ่งออกได้ 4 ชนิดคือ
1. ชนิดข้อมูลเข้าอนุกรม – ออกอนุกรม (Serial In – Serial Out) หรือ SISO การส่งข้อมูลเข้าไปเก็บ และการส่งข้อมูลไปใช้งานจะเป็นแบบอนุกรม
ใช้เก็บข้อมูลชั่วคราวและหน่วงเวลาข้อมูล ดังรูปที่ 18.2 (ก)
2. ชนิดข้อมูลเข้าอนุกรม – ออกขนาน (Serial In – Parallel Out) หรือ SIPO การส่งข้อมูลเข้าไปเก็บในวงจรเลื่อนข้อมูลเป็นแบบอนุกรม การส่ง
ข้อมูลออกจากวงจรเลื่อนข้อมูลเป็นแบบขนาน เป็นวงจรที่ใช้ในการแปลงรูปฟอร์มข้อมูลจากแบบอนุกรมไปเป็นแบบขนาน ดังรูปที่ 18.2 (ข)
3. ชนิดข้อมูลเข้าขนาน – ออกอนุกรม (Parallel In – Serial Out) หรือ PISO การส่งข้อมูลเข้าไปเก็บในวงจรเลื่อนข้อมูลเป็นแบบขนาน การส่งข้อมูล
ออกไปใช้งานเป็นแบบอนุกรม เป็นวงจรที่ใช้ในการเปลี่ยนรูปฟอร์มข้อมูลจากแบบขนานไปเป็นแบบอนุกรมและใช้เก็บข้อมูลชั่วคราว ดังรูปที่ 18.2 (ค)
4. ชนิดข้อมูลเข้าขนาน – ออกขนาน (Parallel In – Parallel Out) หรือ PIPO การส่งข้อมูลเข้าไปเก็บและการส่งข้อมูลออกไปใช้งานจะเป็นแบบขนาน
ใช้เก็บข้อมูลชั่วคราว ดังรูปที่ 18.2 (ง)
|
รูปที่ 18.2 แสดงคุณลักษณะของตัวเลื่อนข้อมูลแบ่งตามการนำข้อมูลเข้าออก 4 ชนิด
<< Go To Top
|
18.2 โครงสร้างของวงจรเลื่อนข้อมูล
วงจรเลื่อนข้อมูลจะประกอบด้วยฟลิปฟลอปหลาย ๆ ตัวมาต่อรวมเข้าด้วยกันโดยฟลิปฟลอป แต่ละตัวจะเก็บข้อมูลได้ 1 บิต ลักษณะการต่อวงจร
จะแตกต่างกันขึ้นอยู่กับชนิดของวงจรเลื่อนข้อมูล
|
18.2.1 ชนิดข้อมูลเข้าอนุกรม – ออกอนุกรม (Serial In – Serial Out : SISO)
โครงสร้างของวงจรเลื่อนข้อมูลชนิดนี้ แสดงดังรูปที่ 18.3
|
รูปที่ 18.3 แสดงโครงสร้างของวงจรเลื่อนข้อมูลแบบ SISO
|
จากแผนภาพบล็อก (Block Diagram) รูปที่ 18.3 (ก) เป็นวงจรเลื่อนข้อมูลขนาด n บิต ข้อมูลทั้งทางด้านอินพุตและเอาต์พุตเป็นแบบอนุกรม
ข้อมูลจะเลื่อนจากทางด้านซ้ายไปทางด้านขวา ทุกครั้งที่มีสัญญาณนาฬิกา (Clock) จ่ายให้กับวงจร ซึ่งอาจจะเรียกสัญญาณนาฬิกานี้ว่า พัลส์ขับเลื่อน
(Shift Pulse) รูปที่ 18.3 (ข) เป็นโครงสร้างของวงจรเลื่อนข้อมูลชนิดนี้ ซึ่งประกอบด้วย R-S Flip-Flop นำมาต่อให้ทำงานเป็น D Flip-Flop
ข้อมูลจากอินพุตของฟลิปฟลอบจะส่งไปยังเอาต์พุตของฟลิปฟลอปก็ต่อเมื่อมีสัญญาณนาฬิกาเข้ามา 1 พัลส์ โดยจะทำงานที่ขอบขึ้นของสัญญาณนาฬิกา
ถ้าต้องการเลื่อนข้อมูลจากขา Serial – In ให้ไปออกที่ขา Serial – Out จะต้องจ่ายสัญญาณนาฬิกาที่มีจำนวนพัลส์เท่ากับจำนวนฟลิปฟลอบในวงจร
|
18.2.2 ชนิดข้อมูลเข้าอนุกรม – ออกขนาน (Serial In – Parallel Out : SIPO)
โครงสร้างของวงจรเลื่อนข้อมูลชนิดนี้ แสดงดังรูที่ 18.4 วงจรเลื่อนข้อมูลแบบ SIPO มีโครง สร้างคล้ายกับแบบ SISO ต่างกันที่วงจร
เลื่อนข้อมูลแบบ SISO เอาต์พุตของวงจรจะมาจากเอาต์พุตของฟลิปฟลอปตัวสุดท้ายเพียงตัวเดียวส่วนวงจรเลื่อนข้อมูลแบบ SIPO เอาต์พุต
ของวงจรจะมาจากเอาต์พุตของฟลิปฟลอปทุกตัว ดังรูปที่ 18.4 (ข)
ก่อนจะใช้งานวงจรจะต้องทำกาเคลียร์ (Clear) ให้เอาต์พุตทุกตัวเป็น 0 แล้วจึงส่งข้อมูลเข้าไปเก็บในวงจรตามต้องการ ข้อมูลจากซ้ายไป
ขวาทุกครั้งที่มีสัญญาณนาฬิกาจ่ายให้กับขา Clock ของวงจร ข้อมูลทางด้านเอาต์พุตจะออกพร้อมกันทุกเอาต์พุต
|
รูปที่ 18.4 แสดงโครงสร้างของวงจรเลื่อนข้อมูลแบบ SIPO
|
18.2.3 ชนิดข้อมูลเข้าขนาน – ออกอนุกรม (Parallel In – Serial Out : PISO)
โครงสร้างของวงจรเลื่อนข้อมูลชนิดนี้ แสดงดังรูปที่ 18.5
|
รูปที่ 18.5 แสดงโครงสร้างของวงจรเลื่อนข้อมูลแบบ PISO
|
จากแผนภาพบล็อกรูปที่ 18.5 (ก) การนำข้อมูลเข้าไปเก็บเป็นแบบขนานซึ่งเรียกว่าการโหลด (Load) ข้อมูล การนำข้อมูลออกไปใช้งานเป็น
แบบอนุกรม ซึ่งเรียกว่าการเลื่อน (Shift) ข้อมูล
จากวงจรรูปที่ 18.5 (ข) R-S Flip-Flop แต่ละตัวจะต่อใช้งานเป็น D Flip-Flopโดยฟลิบฟลอปทุกตัวจะต่อวงจรเหมือนกัน
พิจารณาวงจรของฟลิปฟลอปตัวที่ 1
|
|
พิจารณาคุณสมบัติของวงจร จากสมการลอจิก
1. กรณีขา ได้รับลอจิก 0
ถ้า D1 = 0 จะได้ PR = l, CLR = 0 จะทำให้ Q เป็น 0
ถ้า D1 = 1 จะได้ PR = 0, CLR = 1 จะทำให้ Q เป็น 1
ข้อมูลที่ขา Q จะเหมือนกับข้อมูลที่ขา D1 ซึ่งเป็นการโหลดข้อมลจากขา D1 เข้าไปในฟลิปฟลอป
2. กรณี ได้รับลอจิก 1
|
การทำงานของวงจรจะขึ้นอยู่กับขา Clock โดยข้อมูลจะเลื่อนจากซ้ายไปขวา เมื่อมีสัญญาณพัลส์จ่ายให้กับขา Clock ของวงจร เรียกการ
ทำงานกรณีนี้ว่าเป็นการเลื่อน (Shift) ข้อมูลจากหลักการที่กล่าวมาจะได้ข้อสรุปว่า เมื่อขา ได้รับลอจิก 0 เป็นการโหลดข้อมูล
เข้าไปเก็บในฟลิปฟลอปแต่ละตัว เมื่อขา ได้รับลอจิก l และจ่ายสัญญาณพัลส์ ให้กับขา Clock ข้อมูล
จะไปออกที่ขา Serial – Out เรียงตามลำดับ โดยข้อมูลเข้าแบบขนาน ข้อมูลออกแบบอนุกรม (PISO)
|
18.2.4 ชนิดข้อมูลเข้าขนาน – ออกขนาน (Parallel In – Parallel Out : PIPO)
โครงสร้างของวงจรเลื่อนข้อมูลชนิดนี้แสดงดังรูปที่ 18.6
|
รูปที่ 18.6 แสดงโครงสร้างของวงจรเลื่อนข้อมูลแบบ PIPO
|
จากวงจรรูปที่ 18.6 (ข) ข้อมูลอินพุต (Parallel - In) จะส่งออกที่เอาต์พุต (Parallel - Out) เมื่อมีสัญญาณนาฬิกา (Clock) เข้ามา 1 พัลส์
(Pulse) ฟลิปฟลอปทุกตัวจำทำงานพร้อมกันที่ขอบขึ้นของสัญญาณนาฬิกา
|
18.2.5 วงจรเลื่อนข้อมูลที่ใช้งานได้ทั้งแบบ SISO, SIPO, PISO และ PIPO
จากที่กล่าวถึงในตอนต้น วงจรเลื่อนข้อมูลแบ่งเป็น 4 แบบ คือ SISO, SIPO, PISO และ PIPOโดยแต่ละแบบจะมีไครงสร้างของ
วงจรที่แตกต่างกัน เพื่อการใช้งานวงจรจะได้กว้างขึ้น จึงนำวงจรเลื่อนข้อมูลทั้ง 4 แบบมารวมเป็นวงจรเดียวกันโดยแบ่งวงจรออกเป็น 2
แบบ ตามลักษณะการโหลด ข้อมูลจากขา Parallel - In ไปเก็บในฟลิปฟลอป ได้แก่ วงจรที่มีการโหลดข้อมูลแบบอะซิงโครนัส และ
แบบซิงโครนัส
- วงจรที่การโหลดข้อมูลเป็นแบบอะซิงโครนัส (Asynchronous Load)
ลักษณะโครงสร้างของวงจรชนิดนี้จะเหมือนกับวงจรรูปที่ 18.5 (ข) เพียงแต่เพิ่มขา Serial–In และ Parallel – Out เข้าไป
ในวงจร ดังรูปที่ 18.7
|
รูปที่ 18.7 แสดงวงจรที่มีการโหลดเป็นแบบอะซิงโครนัส
|
จากวงจรรูปที่ 18.7 กรณีต้องการให้ข้อมูลเข้าเป็นแบบขนานทำได้โดยการจ่ายสัญญาณลอจิก0 ให้กับขา ข้อมูลจาก
ขา Parallel - In จะเข้า สู่ฟลิปฟลอป กรณีต้องการให้ข้อมูลเข้าเป็นแบบอนุกรม ทำได้โดยการจ่ายสัญญาณลอจิก 1 ให้กับขา
แล้วจ่ายสัญญาณพัลส์ให้กับขา Clock ข้อมูลจากขา Serial – In จะเข้าสู่ฟลิปฟลอปตัวที่ 1 ข้อมูลจะเลื่อนจากซ้ายไปขวาทุกครั้งที่จ่ายสัญญาณ
พัลส์ให้กับขา Clock
ส่วนทางด้านเอาต์พุต ถ้าต้องการข้อมูลออกแบบขนาน ให้ใช้ขา Parallel – Out เป็นเอาต์พุต ถ้าต้องการข้อมูลออกแบบอนุกรม ให้ใช้ขา
Serial – Out เป็นเอาต์พุต วงจรชนิดนี้ ข้อมูลจากขา Parallel – In จะโหลดเข้าสู่ฟลิปฟลอปทันทีที่ขา ได้ รับลอจิก 0
โดยไม่ขึ้นอยู่กับ สัญญาณนาฬิกา จึงเรียกว่า การโหลดแบบอะซิงโครนัส
|
-วงจรที่การโหลดข้อมูลเป็นแบบซิงโครนัส (Synchronous Load)
โครงสร้างของวงจรชนิดนี้ แสดงดังรูปที่ 18.8
|
รูปที่ 18.8 แสดงวงจรที่การโหลดข้อมูลเป็นแบบซิงโครนัส
|
จากวงจรรูปที่ 18.8 ทางด้านอินพุตของฟลิปฟลอปแต่ละตัวต่ออยู่กับเอาต์พุตของวงจรเลือกข้อมูลขนาด 2 : 1 (2 : l MUX) พิจารณา
ฟลิปฟลอป ตัวที่ 1 (ตัวบนสุด) ถ้าขา ได้รับลอจิก 1 ข้อมูลจากขา Serial - In จะส่งผ่านวงจรเลือกข้อมูลไปยังอินพุตของ
ฟลิปฟลอป ถ้าขา ได้รับลอจิก 0 ข้อมูลจากขา Parallel – In จะส่งผ่านวงจรเลือกข้อมูลไปยังอินพุตของ ฟลิปฟลอป
ข้อมูลที่อินพุตของฟลิปฟลอปจะไปออกที่เอาต์พุตก็ต่อเมื่อขา Clock ได้รับสัญญาณ 1 พัลส์ เนื่องจากการโหลดข้อมูลเข้าไปในฟลิปฟลอป
ขึ้นอยู่กับสัญญาณนาฬิกา (Clock) จึงเรียกว่า การโหลดแบบซิงโครนัส
<< Go To Top
|
18.3 วงจรเลื่อนข้อมูลที่นำข้อมูลเข้าแบบอนุกรม
วงจรของตัวเลื่อนข้อมูลที่นำข้อมูลเข้าแบบอนุกรม แสดงในรูปที่ 18.9 ประกอบไปด้วยฟลิปฟลอปชนิดดี ที่ควบคุมด้วยสัญญาณ
นาฬิกา วงจรนี้เป็นตัวเลื่อนข้อมูลขนาด 4 บิต ข้อมูลเข้าที่ อินพุต D ของฟลิปฟลอป A และเอาต์พุตขนาด 4 บิต แสดงที่ Q ของฟลิปฟลอป
ตัว A B C และ D สัญญาณนาฬิกาและขาเคลียร์ต่อขนานกันทุกตัว เพื่อควบคุมฟลิปฟลอปแต่ละตัวพร้อมกัน การนำข้อมูลออกของตัวเลื่อน
ข้อมูลนี้นำออกได้ 2 แบบคือ แบบขนานโดยใช้เอาต์พุตทั้ง 4 บิตดังกล่าวและนำข้อมูลออกแบบอนุกรม โดยใช้เอาต์พุตของฟลิปฟลอปตัว
สุดท้าย (D) เพียงตัวเดียวเท่านั้นดังนั้นจึงทำงานได้ 2 แบบคือ SISO และ SIPO
|
รูปที่ 18.9 ตัวเลื่อนข้อมูลขนาด 4 บิต นำข้อมูลเข้าอนุกรมออกขนาน (SIPO)มีโครงสร้างเป็นฟลิปฟลอปชนิดดี
|
การทำงานของตัวเลื่อนข้อมูลชนิดนำข้อมูลเข้าอนุกรม ออกอนุกรม และชนิดนำข้อมูลเข้าอนุกรม - ออกขนาน แสดงการทำงานตามลำดับ
ที่แสดงในตารางที่ 18.1
บรรทัดที่ 1 ในตารางคือการเคลียร์ข้อมูลในตัวฟลิปฟลอป ดังนั้นที่เอาต์พุตของฟลิปฟลอปทุกตัวจะเป็น “0”
บรรทัดที่ 2 ป้อนข้อมูล 1 เข้าที่อินพุต D ของฟลิปฟลอป A และเคลียร์เป็น “1” เมื่อไม่มี สัญญาณนาฬิกา (CLK = 0) ที่เอาต์พุตจะคง
ลอจิก “0” เช่นเดิม
บรรทัดที่ 3 ข้อมูล “1” ยังคงเข้าที่อินพุต D และมีสัญญาณนาฬิกาพัลส์ที่ 1 จะเห็นว่าเอาต์พุต A เป็น “1” แต่เอาต์พุตอื่นๆ ยังคงเป็น
0 (“1” ที่ A มาจากบรรทัดที่ 2)
บรรทัดที่ 4 ป้อน “1” เข้าที่อินพุต D และมีสัญญาณนาฬิกาพัลส์ที่ 2 เอาต์พุต B เป็น “1” (“1” ที่ B มาจากเอาต์พุต A) และเอาต์พุต A
จะเป็น “1” (“1” ที่ A มาจากอินพุต D) จะพบว่าข้อมูลอินพุตจะลำดับเข้ามาจากซ้ายไปขวา
บรรทัดที่ 5 ป้อน “1” เข้าที่อินพุต D มีสัญญาณนาฬิกาพัลส์ที่ 3
เอาต์พุต C จะเป็น “1” (“1” ที่ C มาจากเอาต์พุต B)
เอาต์พุต B จะเป็น “1” (“1” ที่ B มาจากเอาต์พุต A)
เอาต์พุต A จะเป็น “1” (“1” ที่ A มาจากเอาต์พุต D)
บรรทัดที่ 6 ป้อนข้อมูล 0 ที่อินพุต D มีสัญญาณนาฬิกาพัลส์ที่ 4
เอาต์พุต A จะเป็น 0 (A = 0 มาจากอินพุต D)
เอาต์พุต B จะเป็น 1 (B = 1 มาจากเอาต์พุต A)
เอาต์พุต C จะเป็น 1 (C = 1 มาจากเอาต์พุต B)
เอาต์พุต D จะเป็น 1 (D = 1 มาจากเอาต์พุต C)
|
ตารางที่ 18.1 การทำงานของตัวเลื่อนข้อมูลขนาด 4 บิต นำข้อมูลเข้าแบบอนุกรม
|
บรรทัดที่ 7 ป้อนข้อมูล 0 ที่อินพุต D มีสัญญาณนาฬิกาพัลส์ที่ 5
เอาต์พุต A จะเป็น 0 (A = 0 มาจากอินพุต D)
เอาต์พุต B จะเป็น 0 (B = 0 มาจากเอาต์พุต A)
เอาต์พุต C จะเป็น 1 (C = 1 มาจากเอาต์พุต B)
เอาต์พุต D จะเป็น 1 (D = 1 มาจากเอาต์พุต C)
บรรทัดที่ 8 ป้อนข้อมูล 0 ที่อินพุต D มีสัญญาณนาฬิกาพัลส์ที่ 6
เอาต์พุต A จะเป็น 0 (A = 0 มาจากอินพุต D)
เอาต์พุต B จะเป็น 0 (B = 0 มาจากเอาต์พุต A)
เอาต์พุต C จะเป็น 0 (C = 0 มาจากเอาต์พุต B)
เอาต์พุต D จะเป็น 1 (D = 1 มาจากเอาต์พุต C)
บรรทัดที่ 9, 10 ข้อมูลที่อินพุต D เป็น 0 ดังนั้นเมื่อมีสัญญาณนาฬิกาพัลส์ที่ 7 และ 8 จะทำให้เอาต์พุตทุกตัวเป็น 0 ข้อมูล 0 ยังคงเลื่อน
จาก A ไป B ไป C และจาก C ไป D
บรรทัดที่ 11 ป้อนข้อมูล 1 ที่อินพุต D และมีสัญญาณนาฬิกาพัลส์ที่ 9
เอาต์พุต A จะเป็น 1(A = 1 มาจากอินพุต D) และเอาต์พุตอื่นๆ ยังคงเป็น 0
บรรทัดที่ 12 ป้อนข้อมูล 0 ที่อินพุต D และมีสัญญาณนาฬิกาพัลส์ที่ 10
เอาต์พุต A จะเป็น 0 (A = 0 มาจากอินพุต D)
เอาต์พุต B จะเป็น 1 (B = 1 มาจากเอาต์พุต A)
เอาต์พุต C และ D เป็น 0 (มาจากเอาต์พุต B และ C)
บรรทัดที่ 13, 14, 15 ข้อมูลอินพุต D ยังคงเป็น 0 และมีพัลส์ควบคุมพัลส์ที่ 11 12 13 จะทำให้ 1 จาก B เลื่อนไปยังเอาต์พุต C และ D
ตามลำดับ
ตัวเลื่อนข้อมูลที่นำข้อมูลเข้าแบบอนุกรมดังตัวอย่าง สามารถสร้างให้มีขนาดใหญ่ขึ้นได้เช่น 5 บิต 8 บิต หรือ 16 บิต โดยการเพิ่มจำนวน
ฟลิปฟลอปตามจำนานบิตของข้อมูล และจากวงจรรูปที่ 18.9 ถ้าต้องการต่อให้ทำหน้าที่เป็น SISO ทำได้ดังแสดงในรูปที่ 18.10
|
รูปที่ 18.10 ตัวเลื่อนข้อมูลขนาด 4 บิต แบบ SISO
|
จากตารางที่ 18.1 จะพบว่าเมื่อตัวเลื่อนข้อมูลที่โหลดข้อมูลเข้าแบบอนุกรม จะนำข้อมูลเข้าได้พัลส์ละ 1บิต โดยการควบคุมของสัญญาณ
นาฬิกาที่ขา Clock แต่ละพัลส์ ดังนั้นข้อมูลขนาด 4 บิตจะใช้พัลส์นำข้อมูลเข้า 4 พัลส์ และถ้าต้องการให้ข้อมูลออกแบบอนุกรมต้องใช้พัลส์อีกจำนวน
4 พัลส์ เพื่อเลื่อนข้อมูลทั้งหมดที่เก็บภายในตัวเลื่อนข้อมูล แต่สำหรับตัวเลื่อนข้อมูล 4 บิต แบบ SIPO จะใช้พัลส์ในการนำข้อมูลทั้งหมดที่เก็บภายใน
ตัวเลื่อนข้อมูล แต่สำหรับตัวเลื่อนข้อมูล 4 บิต แบบ SIPO จะใช้พัลส์ในการนำข้อมูลเข้าจำนวน 4 พัลส์ และนำข้อมูลออกจำนวน 1 พัลส์
<< Go To Top
|
18.4 วงจรเลื่อนข้อมูลที่นำข้อมูลเข้าแบบขนาน
ตัวเลื่อนข้อมูลที่นำข้อมูลเข้าแบบขนานมีข้อดีคือ การนำข้อมูลเข้าสามารถนำเข้าได้พร้อมกันทุกบิตด้วยพัลส์ควบคุมเพียงพัลส์เดียว ลักษณะ
ของการนำข้อมูลออกสามารถนำออกได้ 2 แบบ คือนำออกแบบอนุกรม และแบบขนาน ถ้าเป็นตัวเลื่อนข้อมูลนำเขาแบบขนานและนำออกแบบขนานจะมี
ลักษณะของวงจรดังแสดงในรูปที่ 18.11 เป็น PIPO ขนาด 4 บิต ที่สร้างจากฟลิปฟลอปชนิดดี
|
รูปที่ 18.11 ตัวเลื่อนข้อมูลแบบขนานเข้าขนานออก ขนาด 4 บิต
|
จากวงจรในรูปที่ 18.11 เมื่อนำข้อมูลขนาด 4 บิต เข้ามาที่อินพุต D ของตัวเสียบข้อมูล 4 บิต และใช้สัญญาณนาฬิกา 1 พัลส์
ควบคุมในทางที่ขาเคลียร์เป็น 1 ข้อมูล จะถูกเลื่อนออกไปทางเอาต์พุต D C B และ A พร้อมกัน เป็นการโหลดข้อมูลแบบขนาน
สำหรับตัวเลื่อนข้อมูลที่นำข้อมูลเข้าแบบขนาน แต่นำข้อมูลออกแบบอนุกรม อาจสร้างมาจากตัวเลื่อนข้อมูลแบบขนานเข้าขนานออกได้ ดังรูปที่ 18.12
โดยการใช้ฟลิปฟลอปชนิด เจ-เค ขนาด 4 บิต และต่อสายนำข้อมูลกลับจาก ไปยัง และจา ไปยัง และใช้ขาข้อมูลเข้าขนาด 4 บิต
ที่อินพุตพรีเซตของฟลิปฟลอปแต่ละตัว สำหรับขาข้อมูลออกแบบอนุกรมใช้เฉพาะ เท่านั้น แต่ในกรณีที่ต้องการให้ข้อมูลออกแบบขนานทำได้โดย
ใช้ขาเอาต์พุต และ
|
รูปที่ 18.12 ตัวเลื่อนข้อมูลที่นำเข้าแบบขนาน ขนาด 4 บิต ทำหน้าที่เป็น PIPO และ PISO
|
การทำงานของตัวเลื่อนข้อมูลที่นำข้อมูลเข้าแบบขนานแสดงในตารางที่ 18.2 ลักษณะของการนำข้อมูลออกจากวงจรในรูปที่ 18.12 เมื่อโหลด
ข้อมูลเข้าแล้ว เอาต์พุต 4 บิตขนานจะให้ลอจิกที่ กลับตรงข้ามกับข้อมูลอินพุต 4 บิตขนาน และเมื่อใช้สัญญาณนาฬิกาควบคุมข้อมูลเอาต์พุต 4 บิตจะ
เลื่อนไปทางขวา พัลส์ละ 1 บิตดังนั้นถ้าต้องการทำงานเป็น PISO ให้ใช้เอาต์พุต D เพียงเอาต์พุตเดียวเป็นขาข้อมูลอนุกรมออก และจะใช้พัลส์
ในการเลื่อนข้อมูลออกจำนวน 4 พัลส์
|
ตารางที่ 18.2 การทำงานของตัวเลื่อนข้อมูลที่นำข้อมูลเข้าแบบขนาน
|
พิจารณาการทำงานของตัวเลื่อนข้อมูลที่นำข้อมูลเข้าแบบขนาน ตามลำดับ ในตารางที่ 18.2ดังนี้
บรรทัดที่ 1 เมื่อเปิดแหล่งจ่ายไฟฟ้าให้วงจรเอาต์พุต 4 บิต เกิดภาวะลอจิกที่ แตกต่างกัน
บรรทัดที่ 2 เคลียร์ข้อมูลในฟลิปฟลอปทุกตัว จะเห็นว่าแม้ข้อมูล 4 บิตขนานจะเป็น 1111 แต่ เอาต์พุต 4 บิตขนานจะเป็น 0000
แม้ไม่ได้ป้อนสัญญาณนาฬิกา
บรรทัดที่ 3 ยกเลิกการเคลียร์และป้อนข้อมล 4 บิต อินพุตเป็น 1011 เอาต์พุต 4 บิตขนานจะเปลี่ยนเป็นตรงกันข้ามของข้อมูลอินพุต
ทันที คือ 0100 แม้จะไม่ป้อนสัญญาณนาฬิกา สภาวะนี้คือ การทำงานแบบ PIPO
บรรทัดที่ 4-8 ให้ข้อมูล4 บิต อินพุตเป็น 1111 เหมือนครั้งแรกและใช้สัญญาณนาฬิกาควบคุม การเลื่อนขวาของข้อมูล 1 ซึ่งปรากฏ
ที่ พัลส์ที่ 1 ข้อมูล 1 จะเลื่อนไปที่ และพัลส์ที่ 2 ข้อมูล 1 จะเลื่อนจาก ไปยัง พัลส์ที่ 3 ข้อมูล 1
จะเลื่อนจาก ไปยัง และเมื่อป้อนพัลส์ควบคุมลำดับ 4 และ 5 ข้อมูล 1 จะเลื่อนจาก
ตามลำดับ ลักษณะการทำงานนี้เป็นการวนข้อมูลกลับ ทำให้
ตัวเลื่อนข้อมูลนำข้อมูลออกแบบอนุกรมที่ ได้ ตัวเลื่อนข้อมูลนี้จะทำงานเป็น PISO แบบเลื่อนขวาได้
บรรทัดที่ 9 ทำการเคลียร์ข้อมูลภายในฟลิปฟลอปของตัวเลื่อนข้อมูลทั้ง 4 บิต จะห็นว่า เอาต์พุต 4 บิต เป็น 0000 อีกครั้ง
บรรทัด 10 โหลดข้อมูลขนาน 4 บิต คือ 1001 ข้อมูลที่เอาต์พุตขนาน 4 บิต จะเปลี่ยนแปลง
ไปเป็นสภาวะตรงข้ามคือ 0110 ทันที
บรรทัดที่ 11 – 15 เมื่อนำสัญญาณนาฬิกามาควบคุมการเลื่อนของข้อมูลเอาต์พุต ตามลำดับพัลส์ที่ 6 – 10 จะเห็นว่าข้อมูล 1 เอาต์พุตบิต
BCจะเลื่อนไปตำแหน่ง ตามลำดับ เป็นการวนข้อมูลกลับเหมือนกับการทำงานใน
บรรทัดที่ 4-8
<< Go To Top
|
18.5 ตัวเลื่อนข้อมูลที่เป็นวงจรรวม
ตัวเลื่อนข้อมูลถูกใช้งานกันอย่างแพร่หลายเพื่อที่จะรับข้อมูลขนาดต่างๆ ในระบบดิจิตอล เช่น ข้อมูลขนาด 4 บิต 8 บิต 16 บิต หรือมากกว่า
เพื่อจะเปลี่ยนแปลงและรับส่งข้อมูลได้ทั้งแบบขนานและอนุกรม จึงมีการผลิตตัวเลื่อนข้อมูลที่มีคุณลักษณะพิเศษแบบต่างๆ ออกมามากมาย ที่นิยม
ใช้กันมีหลายเบอร์ เช่น เบอร์ 74164 74LS164 และ 74HC164 เป็นตัวเลื่อนข้อมูลขนาด 8 บิต ทำงานได้ทั้งแบบ SIPO และ SISO วงจรรวม
เบอร์ 74165 74LS165 และ 741HC65 เป็นตัวเลื่อนข้อมูลขนาด 8 บิต ทำหน้าที่เป็น PISO และ SISO วงจรรวมเบอร์ 74174 74LS174
และ 74HC174 เป็นตัวเลื่อนข้อมูลแบบ PIPO ขนาด 8 บิต วงจรรวมเบอร์ 74178 74LS178 และ 74HC178 เป็นตัวเลื่อนข้อมูลขนาด 4 บิต
ทำงานได้หลายแบบ เช่น PIPO SISO และ SIPO วงจรรวมเบอร์ 74194เป็นตัวเลื่อนข้อมูลที่มีชื่อว่าตัวเลื่อนข้อมูลอเนกประสงค์ ขนาด 4 บิต
ทำหน้าที่ได้หลายแบบ เช่น PIPO SISO SIPO และ PISO ที่สามารถวนกลับข้อมูลได้ เป็นต้น
18.5.1 วงจรรวมเบอร์ 74164 74LS164 และ 74HC164
สำหรับวงจรรวมเบอร์ 74164 และ 74LS164 เป็นชนิดทีทีแอล และ 74HC164 เป็นชนิดซีมอส เป็นตัวเลื่อนข้อมูลขนาด 8 บิต ทำงาน
ได้ 2 แบบคือ SISO และ SIPO การจัดวางขาของวงจรรวมเบอร์ 74164 74LS164 และ 74HC164 แสดงในรูปที่ 18.13 (ก) ประกอบ
ด้วยอินพุตรับข้อมูลอนุกรม 2 อินพุต คือ A และ B อินพุตสัญญาณนาฬิกาคือ ขา Clock และอินพุตควบคุมเคลียร์ทำ
หน้าที่เคลียร์ตัวเลื่อนข้อมูลขนาด 8 บิต มีเอาต์พุตขนาด 8 บิต คือ QA - QH โครงสร้างภายในตัวเลื่อนข้อมูลนี้ประกอบไปด้วยฟลิปฟลอป
ชนิดดี 8 ตัว และแอนด์เกตที่อินพุต AB ทำหน้าที่รับข้อมูลอนุกรม ดังรูปที่ 18.13 (ข)
|
รูปที่ 18.13 แสดงการจัดวางขาและโครงสร้างภายในของตัวเลื่อนข้อมูลแบบ SISO/SIPO เบอร์ 74164 74LS164 74HC164
|
18.5.2 วงจรรวมเบอร์ 74165 741LS165 และ 741HC165
วงจรรวมเบอร์ 74 165 และ 74LS165 เป็นชนิดทีทีแอล และสำหรับเบอร์ 74HC165 เป็นชนิด ซีมอส ทำหน้าที่เป็นตัวเลื่อนข้อมูล
ขนาด 8 บิต โหลดข้อมูลเข้า 8 บิต แบบขนานและออกอนุกรม มี อินพุตอนุกรมรับข้อมูลเข้าอนุกรมออกอนุกรมได้อีกด้วย ลักษณะการจัดวาง
ของวงจรรวมเบอร์74165 แสดงในรูปที่ 18.14 (ก) โครงสร้างภายในแสดงในรูปที่ 18.14 (ข) จะเห็นว่ามีอินพุตขนาน 8 บิต คือ A – H
และมีอินพุตข้อมูลอนุกรมคือ Serial Input ขาควบคุมการเลื่อนข้อมูลอนุกรมออกและโหลดข้อมูลขนานเข้าคือขา Shift/Load ขาควบคุมด้วย
สัญญาณนาฬิกาคือขา Clock Inhibit ปกติเมื่อไม่ใช้งานต้องได้รับลอจิก “0” หรือ “L” และเมื่อต้องการใช้งานขา Clock Inhibit ต้องให้รับลอจิก
“H” ผลคือสภาวะการทำงานของตัวเลื่อนข้อมูลนี้จะไม่สามารถเปลี่ยนแปลงได้เมื่อ Clock Inhibit ทำงาน สำหรับขาเอาต์พุตแบบอนุกรมออกมี 2
ขาคือ เอาต์พุต และ
|
รูปที่ 18.14 แสดงการจัดวางขาและโครงสร้างภายในของตัวเลื่อนข้อมูลแบบ PISOและ SISO เบอร์ 74165 74LS165 และ 74HC165
|
18.5.3 วงจรรวมเบอร์ 74174 74LS174 และ 74HC174
วงจรรวมเบอร์นี้คือตัวเลื่อนข้อมูลชนิด PIPO ขนาด 6 บิต มีแผนภาพลอจิกดังแสดงในรูปที่ 18.15 (ข) ประกอบไปด้วยขาอินพุต 6 บิตขนาน คือ
และขาเอาต์พุต 6 บิตขนานคือ ขาสัญญาณนาฬิกาคือขา CP และขา คือขาเคลียร์ ทำงานเป็น PIPO ขนาด 6 บิตได้เพียง
อย่างเดียว โครงสร้างภายในประกอบไปด้วยฟลิปฟลอปชนิดดี 6 บิต ดังแสดงในรูปที่ 18.15 (ก)
|
รูปที่ 18.15 แสดงแผนภาพลอจิกและโครงสร้างภายในของตัวเลื่อนข้อมูลชนิด PIPOขนาด 6 บิต เบอร์ 74174
74LS174 และ 74HC174
|
18.5.4 วงจรรวมเบอร์ 74178 และ 74HC178
วงจรรวมเบอร์ 74178 เป็นวงจรรวมชนิดทีทีแอล และเบอร์ 74HC178 เป็นวงจรรวมชนิดซีมอส เป็นตัวเลื่อนข้อมูลขนาด 4 บิต
ทำงานได้หลายหน้าที่ เช่น เป็นตัวเลื่อนข้อมูลชนิด PIPO SISO และ SIPO มีโครงสร้างภายในดังรูปที่ 18.16 (ก) ประกอบด้วยอินพุต
4 บิตขนาน คือขา PE (Parallel Enable) และขา SE (Serial Enable) ทำหน้าที่เป็นตัวเลือกให้วงจรรวมทำงานในโหมด
ขนานหรืออนุกรม การเลือกทำงานพิจารณาได้จากตารางในรูปที่ 18.16 (ข) นั่นคือให้ SE = “H” และ PE = “X” วงจรรวมจะทำงานเป็น
ตัวเลื่อนข้อมูลที่นำข้อมูลออกแบบอนุกรม และ ถ้าเลือกให้SE = “L” และ PE = “H” วงจรรวมจะทำงานเป็นตัวเลื่อนข้อมูลแบบขนาน
เข้าขนานออก และ สามารถทำงานเป็นหน่วยความจำชั่วคราว สามารถเก็บข้อมูลได้ในโหมดเก็บข้อมูลเมื่อให้ SE และ PE เป็น “L” ใน
โครงสร้างดังรูปที่ 18.16 (ก) จะเห็นว่ามีเอาต์พุตขนาด 4 บิต คือ และขาควบ คุมสัญญาณนาฬิกาคือ หรือขา Clock มี
อินพุตรับ ข้อมูลอนุกรมคือขา DS (Data Serial) ดังนั้น จึงทำงานในโหมด SISO ได้ด้วย สำหรับแผนภาพลอจิกของวงจรรวมเบอร์
74178 และ 74HC178 แสดงในรูปที่ 18.16 (ค)
|
รูปที่ 18.16 แสดงแผนภาพลอจิก และโครงสร้างของตัวเลื่อนข้อมูลขนาด 4 บิต
แบบ PIPO SIPO และ SISO ของวงจรรวมเบอร์ 74178 74HC178
|
18.5.5 วงจรรวมเบอร์ 74194
วงจรรวมเบอร์ 74 194 เป็นวงจรรวมทีทีแอล ซึ่งมีชื่อว่า “4-bit bidirectional universal shift register” วงจรรวมเบอร์
74194 ทำงานได้หลายหน้าที่ เช่น PIPO และ SISO ซึ่งสามารถควบคุมให้ข้อมูลเลื่อนได้สองทางคือเลื่อนซ้ายและเลื่อนขวา และ
ทำงานเป็น SIPO และ PIPO แบบข้อมูลวนกลับได้อีกด้วย โครงสร้างภายในของวงจรรวมเบอร์ 74194 แสดงในรูปที่ 18.17 (ก)
ประกอบไปด้วย อินพุตนำข้อมูลเข้าขนาด 4 บิตขนาน คือ A B C D มีอินพุตอนุกรมเข้า 2 อินพุตคือ อินพุต SR (Shift right serial
input) และอินพุต SL (Shift left serial input) มีขาอินพุต Clock ควบคุมการเลื่อนของข้อมูลและขาเคลียร์เพื่อทำหน้าที่เคลียร์
ข้อมูลให้เอาต์พุตเป็นลอจิก “0” เอาต์พุตขนาด 4 บิต คือ การทำงานของวงจรรวมเบอร์ 74194 ควบคุมด้วยขา
เลือกโหมดการทำงาน 2 ขา คือ ขาควบคุม S0 และ S1 การจัดวางขาวงจรรวมเบอร์ 74194 แสดงในรูปที่ 18.17 (ข) ตารางความจริง
แสดงการควบคุมการทำงานของวงจรรวม 74194 ให้ทำงานในโหมดต่างๆ แสดงในรูปที่ 18.17 (ค) และไดอะแกรมเวลาเพื่อแสดงการ
ทำงานในขณะตัวเลื่อนข้อมูลทำการโหลดและเคลียร์แสดงในรูปที่ 18.17 (ง) รวมทั้งเพื่อใช้ในการศึกษาการทำงานในขณะที่ตัวเลื่อนข้อมูล
ทำงานในโหมดเลื่อนซ้ายและเลื่อนขวา
|
รูปที่ 18.17 แสดงรายละเอียดของวงจรรวมเบอร์ 74194
|
รูปที่ 18.17 (ต่อ)
|
วงจรรวมเบอร์ 74 194 เมื่อควบคุมอินพุต S0 = “1” และ S1 = “0” จะทำงานเป็นตัวเลื่อนข้อมูลแบบ SISO หรือ SIPO ที่เลื่อนข้อมูลจากซ้าย
ไปขวาต้องต่อวงจรดังรูปที่ 18.18 (ก) โดยป้อนข้อมูลอนุกรมเข้าที่อินพุต SR และเอาต์พุตแบบขนานออกที่ ข้อมูลจะเลื่อนจาก
ถ้าเป็นเอาต์พุตอนุกรมใช้เฉพาะ QD เพียงเอาต์พุตเดียว เมื่อทำการควบคุมให้ จะทำงานเป็น
SISO และ SIPO ที่ที่เลื่อนข้อมูลจากขวาไปซ้าย ดังรูปที่ 18.18 (ข) ข้อมูลอนุกรมเข้าที่อินพุต SL และเอาต์พุตจะเลื่อนจาก
|
รูปที่ 18.18 วงจรรวมเบอร์ 74 194 ทำงานเป็น 4 บิต SISO/SIPO แบบเลื่อนซ้ายและขวา
|
เมื่อต้องการกำหนดให้วงจรรวมเบอร์ 74194 ทำงานเป็นตัวเลื่อนข้อมูลแบบ PIPO ทำได้โดยเลือกขาควบคุม
และป้อนข้อมูลขนาน 4 บิตเข้าที่อินพุต ABCD และเอาต์พุต ขนาน 4 บิต คือ สัญญาณนาฬิกา 1 พัลส์ที่ขา Clock จะเป็นตัวควบคุม
การโหลดข้อมูล ดังแสดงในรูปที่ 18.19
|
รูปที่ 18.19 วงจรรวมเบอร์ 74194 ทำงานเป็นตัวเลื่อนข้อมูลขนานเข้าขนานออก ขนาด 4 บิต
|
วงจรรวมเบอร์ 74194 สามารกนำมาต่อขนานให้เป็นรีจิสเตอร์ขนาด 8 บิตได้ดังรูปที่ 18.20เป็นตัวเลื่อนข้อมูลขนาด 8 บิต โหลดข้อมูล
เข้าแบบขนาน และสามารถควบคุมให้ข้อมูลออกแบบขนานหรืออนุกรมได้ ในวงจรนี้กำหนดให้ข้อมูลเลื่อนขวาและข้อมูลวนกลับจาก ของ
ตัวเลื่อนข้อมูลตัวที่ 2 เข้าทางอินพุต SR ของตัวเลื่อนข้อมูลตัวที่ 1 และต่อ ของตัวที่ 1 เข้ากับอินพุต SR ของตัวที่ 2 จึงทำหน้าที่เป็นทั้ง
PIPO และ PISO ขนาด 8 บิต ซึ่งควบคุมโหมดการทำงานด้วยอินพุต และ ซึ่งต่อขนานกันทั้งสองตัว
|
รูปที่ 18.20 วงจรรวมเบอร์ 74194 สร้างเป็นตัวเลื่อนข้อมูลขนาด 8 บิต โหลดขนานเลื่อนข้อมูลจากซ้ายไปขวา
|
จะเห็นได้ว่าตัวเลื่อนข้อมูลมีประโยชน์อย่างมากโดยเฉพาะวงจรรวมที่ทำงานได้หลายหน้าที่ เช่นเบอร์ 74194 และยังสามารถทำหน้าที่
เป็นหน่วยความจำชั่วคราวของระบบดิจิตอลได้ อีกทั้งยังใช้งานกันอย่างแพร่หลายในการแปลงข้อมูลแบบขนานเป็นอนุกรม หรือการแปลง
ข้อมูลอนุกรมเป็นแบบขนาน โดยเฉพาะในวงจรดิจิตอล ที่เกี่ยวกับวงจรคำนวณทางคณิตศาสตร์ และระบบไมโครโพรเซสเซอร์พื้นฐาน เป็นต้น
<< Go To Top
|
18.6 การออกแบบวงจรเลื่อนข้อมูลด้วย VHDL
จากตัวอย่างต่างๆของวงจรเลื่อนข้อมูลเราสามารถออกแบบวงจรด้วยภาษา VHDL จากตัวอย่างดังรูปที่ 18.21
|
---------------------------------------------------
-- 3-bit Shift-Register/Shifter
--
-- reset is ignored according to the figure
---------------------------------------------------
library ieee ;
Use ieee.std_logic_1164.all;
---------------------------------------------------
Entity shift_reg is
Port( I: in std_logic;
clock: in std_logic;
shift: in std_logic;
Q: out std_logic
);
End shift_reg;
---------------------------------------------------
Architecture behv of shift_reg is
-- initialize the declared signal
Signal S: std_logic_vector(2 downto 0):="111";
Begin
Process(I, clock, shift, S)
Begin
-- everything happens upon the clock changing
if clock'event and clock='1' then
if shift = '1' then
S <= I & S(2 downto 1);
End if;
End if;
End Process;
-- concurrent assignment
Q <= S(0);
End behv;
----------------------------------------------------
|
รูปที่ 18.21 แสดงตัวอย่างการออกแบบวงจรเลื่อนข้อมูลขนาด 3 บิต ด้วยภาษา VHDL
|
ไม่มีความคิดเห็น:
แสดงความคิดเห็น