วันศุกร์ที่ 25 กันยายน พ.ศ. 2558

Digital Weekly Jurnal#7 :: DESIGN SEQUENTIAL CIRCUITS

  จาก Ep.6 -> Ep.7 ในบทความนี้จะเป็นบทความที่ต่อจากของเดิมในบทความที่แล้ว ซึ่งในบทความนี้จะพูดในส่วนที่สำคัญที่สุดของ Sequential Circuits นั่นคือ
        "การออกแบบวงจรเพื่อนำไปใช้งาน" นั่นเอง 
        ซึ่งในการออกแบบวงจรนั้นมีขั้นตอนเป็นดังนี้
   1. ระบุคุณลักษณะให้ชัดเจนว่าต้องการให้วงจรเรานั้นทำงานอย่างไร
   2.แปลงคุณลักษณะดังกล่าวให้อยู่ในรูปของ State Diagram 
   3.แปลงชื่อ State ให้กลายเป็น Binary Number
   4.สร้าง State Table ขึ้นมา
   5.เลือก Flip - Flop ขึ้นมาพร้อมกับสร้างตาราง Input ของ Flip - Flop ขึ้นมาด้วย
   6.ทำการ Boolean function ระหว่าง Current State กับ Flip - Flop แต่ละตัว และก็ Boolean function ระหว่าง Current State กับ Output ด้วย
   7.ทำการร่างวงจรขึ้นมา เป็นอันเสร็จสิ้น....

พูดอย่างนี้อาจจะงง งั้นลองมาดูตัวอย่างกันเถอะ ->>>>>>>

   Case Study 
     "ต้องการวงจรที่ส่งสัญญาณ Pulse ที่เป็น Logic 1 เพียง 1 ลูกเมื่อสวิตซ์ถูกกด และจะไม่มีการให้ Pulse Logic 1 ออกมาอีกจนกว่าจะมีการปล่อยสวิตซ์และกดใหม่อีกครั้ง"
จากนั้นแปลงคุณสมบัตินี้ให้กลายเป็น State Diagram
   
  State Diagram เป็นวิธีการอธิบายการทำงานของวงจร  Sequential Logic ด้วยแผนผัง โดยหลักการเขียนจะมีดังนี้
      วงกลม :: State
       ส่วนบนภายในวงกลม :: ระบุชื่อที่อธิบาย State นั้นๆ
       ส่วนล่างภายในวงกลม :: ระบุ Output ของ State นั้นๆ
       ลูกศร :: การ Transition จาก State หนึ่งสู่ State หนึ่ง ซึ่งการ Transition จะเกิดขึ้นทุกๆ Clock
       ตัวเลขบนลูกศร :: Logic ของ Input ที่ทำให้เกิด Transition นั้นๆ
 --------------------------------------------------------------------------------------------------
 เสริมเพิ่มเติมเกี่ยวกับ State Diagram ..
Moore And Mealy Machine
  Moore :: ระบบจะรอรับ Input ที่ต้องการ แล้วให้ Output ออกมา จากนั้นโยนไปยัง State ตามเงื่อนไข
  Mealy  :: ระบบจะคง Output ไว้จนกว่าจะกด input ใหม่ จากนั้นมันจะย้าย State
 --------------------------------------------------------------------------------------------------
    เมื่อสร้าง State Diagram เสร็จแล้ว จากนั้นเราก็ทำการ แทนเลข Binary ไปยังชื่อ State นั้น (คือเปลี่ยนจากชื่อ State ให้กลายเป็น Binary Number )
   จากนั้น ทำการสร้าง State Table
          หลักการเติมค่านั้น
  Current State :: เปรียบเสมือน Input ทัวไปในแบบ Truth Table
  Input คือ ตัวตัดสินว่าจะเกิดการย้าย State หรือไม่ (0 หรือ 1)
  Next State :: เป็นการย้าย State จาก State เดิม ไปยัง State ถัดไป หรือคง State เดิม ขึ้นอยู่กับ Input 
  Output :: ก็เติมลงไปตามที่เราต้องการ โดยไม่เกี่ยวกับ Next State ทั้งสิ้น
 และเมื่อเติมค่า State Table เรียบร้อยแล้วนั้น ก็ทำการเพิ่ม Flip-Flops ลงไปในตาราง
       Assigning Flip-Flops To the Table
  - กรณี D Type Flip-Flops 
        การ Assign ค่าของ D Type Flip-Flop นั้น จะเหมือนกับค่าของ Next State ทุกประการ
   - กรณี JK Flip-Flops 
        การ Assign ค่าของ JK Flip-Flop นั้น จะอิงค่า Truth Table ของ JK Flip-Flop กับ Next State และ Current State ด้วย
       ไม่ว่าจะใช้ D Type Flip-Flop หรือ JK Flip-Flop นั้น ทั้งสองมีสิ่งที่เหมือนกันอยู่นั่นก็คือ
          - จำนวน Flip-Flop นั้นจะเท่ากับจำนวน Bit ของ Current State ไม่รวมกับ Input
          - ค่าที่ Assign ใน Flip-Flop Input พิจารณาจากว่า Input อะไรจะทำให้เปลี่ยนจาก Current State ไปสู่ Next State ตามที่ถูก Assign มา

    และเมื่อได้ State Table ที่สมบูรณ์แบบแล้ว จากนั้น เราจะทำการ Boolean Function ระหว่าง Current State กับ Flip-Flop Input ของแต่ละตัว
  - กรณี D Type Flip-Flops 
  - กรณี JK Flip-Flops 
        เมื่อทำการ Boolean Function ระหว่าง Current State กับ Flip-Flop Input ของแต่ละตัวเสร็จแล้ว เราก็มา Boolean Function ระหว่าง Current State กับ Output ด้วย
           และสุดท้าย ทำการร่าง Schematic ออกมา
  - กรณี D Type Flip-Flops 

  - กรณี JK Flip-Flops 
     เป็นอันเสร็จสิ้น........
-------------------------------------------------------------------------------------------------------------
Class Work
     โจทย์ "ออกแบบและสร้างวงจรนับขึ้นและลงเลข 0-3 แสดงบน 7-Segment โดยสามารถเลือก Set ได้ว่าจะนับขึ้นหรือลง"
    เมื่อ Input X=0 วงจรจะนับขึ้น : 0,1,2,3,0,1,2,3,etc.
    เมื่อ Input X=1 วงจรจะนับขึ้น : 0,3,2,1,0,3,2,1,etc.
  โดยที่แต่ละ State จะมี OUTPUT 2 Bits
         00 , 01 , 10 , 11
                                       ----------------------------------------------------------------
     ขั้นตอนคือ ทำการแปลงโจทย์ ให้เป็น State Diagram 
      ทำการสร้าง State Table
  เลือกใช้ D Type Flip-Flop เพราะง่ายต่อการคิด Input Flip-Flop
 ทำการ Boolean Function Current State กับ Flip-Flop Input และ  Boolean Function Current State กับ Output
   จากนั้น ร่างวงจร ขึ้นมา
       แล้วทำการต่อวงจรจริง


    ผลปรากฎว่า วงจรทำงานค้างที่ State 11 เวลา เปลี่ยน State ก็ไม่ได้ นั่งแก้วงจรไปประมาณ 3 รอบ ต่อตาม Datasheet ก็แล้ว วงจรก็ค้างที่ State 11 เหมือนเดิม
       และหลังจากนั้น วันรุ่งขึ้น
      กลับมาลองต่อวงจรอีกรอบ เลขลองเป็นตำแหน่งขา S กับ R จากเดิมจิ้ม GND ลองมาจิ้มที่ Logic Switch อ่าฮะ พบ วงจรทำงานตาม State แล้ว (รู้สึกดีใจสุดซึ้ง)
     วีโอประกอบการทดลอง
     สุดท้ายแล้ว ปัญหาก็เกิดจาก D-Type Flip-Flop นั้นมันค้างที่ State No Chang เลยทำให้ไม่สามารถป้อน Input ได้  สัมผัสมาจากตอนลองกับ Logic Switch.
-------------------------------------------------------------------------------------------------------------
    ปัญหาที่เกิดขึ้นกับการเรียน
   - แยกการใส่ค่า OUTPUT ระหว่าง Moore AND Mealy ยังไม่คล่อง
   - คู่เมทไม่ได้มาเรียนด้วย เลยไม่รู้จะอธิบายคู่เมทยังไงให้เข้าใจ
   - ตอนแรกยังงงกับการใส่ Input JK Flip-Flop แต่ตอนนี้เข้าใจแล้ว >< 

วันศุกร์ที่ 18 กันยายน พ.ศ. 2558

Digital Weekly Jurnal#6 :: SEQUENTIAL CIRCUITS

     มาถึง EP.06 แล้ว จากบทความที่แล้วได้พูดถึงเกี่ยวกับ Multiplexer และ DeMultiplexer นั้น คราวนี้ก็มีเนื่องด้วยความที่อยากจะสร้างวงจรนับแบบ Binary ขึ้นมา มันมีหลักการอย่างไรบ้าง และต้องรู้เรื่องเกี่ยวกับอะไรบ้าง

Sequential Logic
แบ่งได้เป็น 2 แบบ คือซิงโครนัสและอะซิงโครนัส ส่วนรายละเอียดจะลงลึกไปทีหลัง
Flip - Flop
     อุปกรณ์ความจำหรืออุปกรณ์ที่สามารถเก็บลอจิกได้ เป็นอุปกรณ์หลักสำหรับวงจร Sequential Logic
SR Flip - Flop
        เป็น Flip - Flop ที่ง่ายที่สุดที่ประกอบ Input S และ R และ Output Q และ Q' การต่อวงจรก็นำ NOR หรือ NAND มาต่อ โดย Input แรกจะเป็น S หรือ R ก็ได้ ส่วน Input อีกช่องจะเป็น Output จาก NOR หรือ NAND อีกตัวมาต่อไขว้กัน ทำให้ได้ OUTPUT เป็น Q และ Q'

      SR Flip - Flop With NOR Gate
        การทำงานของวงจรนี้ขึ้นอยู่กับ Input S และ R ถ้าสัญญาณใดสัญญาณหนึ่งเป็น Logic 1 สัญญาณนั้นจะเป็นตัวกำหนดค่า Output Q' เช่นถ้า S เป็น 1 และ R เป็น 0 ก็เป็นการ Set ให้ Output Q' เป็น 1 แต่ถ้า S เป็น 0 แล้ว R เป็น 1 จะเป็นการ Reset Output Q' เป็น 0 แต่ถ้าเป็น 0 ทั้งคู่ Output Q' จะคงสภาพเดิมไม่เปลี่ยนแปลง เป็นสภาวะที่ใช้จำข้อมูล ส่วนสภาวะสุดท้ายที่เป็น 1 ทั้งคู่ เป็นสภาวะที่ไม่นำมาใช้งานเพราะว่าการทำงานของวงจรจะไม่เหมือนกันเมื่อเปลี่ยน Gate Flip - Flop ดังนั้นจึงไม่สามารถทำนายการทำงานของวงจรได้ เรียกเงื่อนไขนี้ว่า "Invalid Condition"
     SR Flip - Flop With NAND Gate
       การทำงานเหมือนกันเด้ะ แต่ต่างกันในสภาวะเก็บข้อมูล  กรณีที่ใช้ Gate NAND สภาวะข้อมูลไม่เปลี่ยน จะเกิดขึ้นเมื่อ Input S และ R เป็น 1 ทั้งคู่ ส่วนสภาวะ "Invalid" จะเกิดเมื่อ Input เป็น 0 ทั้งคู่
JK Flip - Flop
        การทำงานจะขึ้นอยู่กับ Output Q Input J , K และ ขอบสัญญาณขาขึ้นของสัญญาณ CLK ถ้า CLK มี Logic 1 หรือ 0 หรือ ขอบลบ ค่า Q จะคงค่าเดิมไว้ไม่ว่า J และ K จะเป็นอะไรก็ตาม แต่ถ้า CLK เป็นขอบบวก การทำงานจะขึ้นกับ Input J K และค่า Q เดิม เช่นถ้า J เป็น 1 และ K เป็น 0 จะ Set Flip - Flop ทำให้ Q เป็น 1 แต่ถ้า J เป็น 0 และ K เป็น 1 จะเป็นการ Reset Flip - Flop ทำให้ Q เป็น 0 แต่ถ้า J เป็น 0 และ K เป็น 0 Flip - Flop จะอยู่ในสภาวะจำค่าเดิม Q ไม่เปลี่ยน และถ้า J เป็น 1 และ K เป็น 1 Flip - Flop จะอยู่ในสภาวะกลับตัว (Toggle) คือ Q จะเปลี่ยนเป็นค่าตรงข้ามกับค่าเดิม
D Type Flip - Flop
       เพื่อแก้ปัญหาสภาวะ "Invalid" ของ SR Flip - Flop เมื่อปรับวงจรตามรูปแล้ว ทำให้ S และ R ไม่มีโอกาสเป็น 0 พร้อมกัน สภาวะ "Invalid" ก็ไม่เกิดขึ้น การทำงานของวงจร สัญญาณ Output Q จะมีค่าเหมือนกับ D
แต่รูปที่นำมานั้นดันมีสัญญาณ CLK มาด้วย เรียก Flip - Flop นี้ว่า D Type Flip - Flop แบบมีสัญญาณควบคุม
T Type Flip - Flop
       อนึ่งการทำงานของ Flip - Flop ในสภาวะกลับตัว คือ Q เปลี่ยนจากค่าเดิมเป็นค่าตรงข้ามนี้สามารถพิจารณาให้เป็น Flip - Flop อีกแบบหนึ่งได้ เรียกว่า T Type Flip - Flop เป็น Flip - Flop ที่สร้างจาก D Type Flip - Flop และ T Type Flip - Flop ก็สามารถสร้างจาก JK Flip - Flop ได้เช่นกัน
  ประโยชน์ทางการ Flip Flop
         วงจร Flip Flop  สร้างขึ้นมาเพื่อใช้ในการเก็บ Memory ของ Input Logic ที่เข้ามา ดังนั้น ประโยชน์หลักๆของ Flip Flop  คือ
         1. Digital Counter
           การนับของวงจรดิจิตอลนั้นจะแบ่งออกเป็น 2 ประเภท คือ

                 1.1 Asynchronous Counter
           
         สถานะ Output ของ Flip Flop  แต่ละตัวนั้น จะขึ้นอยู่กับสถานะ Output ของ Flip Flop  ตัวก่อนหน้า คือ Flip Flop  ตัวแรกจะส่งสัญญาน (Plus) จาก Q ไปกระตุ้น (Trigger) ที่ Clk ของ Flip Flop  ของตัวที่สอง และ Flip Flop  ตัวที่สองก็จะส่งสัญญาณไปกระตุ้น (Trigger) ที่ Clk ของ Flip Flop  ของตัวที่สาม ไปเรื่อยๆ ตามขั้นตอนการทำงานของวงจรแบบนี้จะมีลักษณะไหลเป็นระลอก

     ข้อดี
          - สร้างง่าย
     ข้อเสีย
          - ประเด็นเรื่องของความเร็ว จากการสะสม Propagation Delay จาก Gate แต่ละตัว ยกตัวอย่าง Flip Flop ตัวนึงใช้เวลาในการทำงาน 50 ns หากมีการใช้ Flip Flop 4 ตัว ต้องใช้เวลาในการทำงานทั้งสิ้น 50 ns * 4 = 200 ns แสดงว่าความถี่สูงสุดในการนับที่ใช้ได้คือ 1/(200*10^-9) = 5 MHz
          - Ripple Effect

                 1.2 Synchronous Counter
            การทำงานของวงจรนับที่ความถี่สูงๆ จำเป็นที่ต้องให้ Flip Flop หลายๆตัวต่อกัน ได้รับสัญญาณกระตุ้นไปพร้อมๆกัน เพื่อหลีกเลี่ยงปัญหาที่เกิดจากการหน่วงเวลาของ Flip Flop  เป็นวงจรนับที่ Output ของ Flip Flop ที่เปลี่ยนแปลงพร้อมๆกันตามสัญญาณ Clock 
          Synchronous Counter ประยุกต์อะไรได้บ้าง
               - วงจรนับเลข binary 4 bit 
               - วงจรนับเลขถอยหลัง binary 4 bit 

       2. ประยุกต์เป็นวงจรเช็ครอบการหมุนของมอเตอร์
           เป็นวงจรที่ใช้หลอด LED คู่กับ Photo-transistor เพื่อตรวจสอบแสงที่เข้าไปกระทบกับ Photo-transistor ในแต่ละรอบการตกกระทบนั้น ก็จะถูกเก็บไว้เป็น Counter ในแต่ละครั้ง

       3. Shift Register
            คือ กลุ่มของ Flip Flop ที่ต่อเรียงกันและทำงานร่วมกัน ใช้สำหรับจัดเก็บข้อมูลหรือส่งออกข้อมูลในรูปเลขฐานสอง โดยพื้นฐานเกิดจากการนำ D - Type Flip Flop มาต่อเรียงกัน
         Shift Register มีโหมดการทำงานอยู่ 4 โหมด คือ
           3.1 Serial - in to Parallel - out (SIPO)
           3.2 Serial - in to Serial - out (SISO)
           3.3 Parallel - in to Serial - out (PISO)
           3.4 Parallel - in to Parallel - out (PIPO)
      ------------------------------------------------------------------------------------------------------
               3.1 Serial - in to Parallel - out (SIPO)
             เมื่อนำข้อมูล Input เข้าทีละหลัก แต่นำออก Output พร้อมกัน เรียกว่า Serial - in to Parallel - out

               3.2 Serial - in to Serial - out (SISO)
          
             เป็น Shift Register แบบ Serial - in to Serial - out ข้อมูลแบบอนุกรมจะถูกป้อนเข้าที่ Input Serial Data in และข้อมูลอนุกรมออกที่ Output Serial Data out

               3.3 Parallel - in to Serial - out (PISO)
             เมื่อนำข้อมูล Input เข้าพร้อมกัน แต่นำออกทีละหลัก เรียกว่า Parallel - in to Serial - out 

               3.4 Parallel - in to Parallel - out (PIPO)
             เมื่อนำข้อมูล Input เข้าพร้อมกัน และนำข้อมูลออกที่ Output พร้อมกัน เรียกว่า Parallel - in to Parallel - out

ขอขอบคุณ Ref :: shift-register
      ------------------------------------------------------------------------------------------------------
Class Work
  1. ทดลองต่อ Flip Flop เล่นและต่อวงจร Counter ขึ้นมา
    
ผลปรากฏว่า ใช้งานได้ตาม Truth Table เป๊ะ
 2. ต่อวงจร Shift Register โดยใช้ IC 74HC166 8-bit parallel - in / serial - out Shift Register
พบปัญหา คือ วงจรไม่ทำงาน ตอนแรกไล่เช็คตาม Datasheet แล้วก็ต่อถูกตาม Datasheet ซึ่งตอนหลังก็พบสาเหตุมาดังนี้
    1. เผลต่อเป็น Serial in/Serial out วงจรไม่ทำงาน
    2. น่าเจ็บใจมาก เสียบ IC ไม่แน่น +++ !!!!! ทำให้วงจรไม่ทำงาน (พอเสียบแล้วต้องมือกดช่วย มันเด้งออกตลอด)
    สุดท้ายวงจรก็ใช้งานได้ 
      ------------------------------------------------------------------------------------------------------
ปัญหาทางการเรียน
 - ไม่เข้าใจในเรื่องของ  Synchronous Counter ทำให้ต้องอ่านตำรานอกเพิ่มเพื่อความเข้าใจ
 - ยังไม่เห็นประโยชน์ทางด้าน Shift Register  มากขึ้น
 - ไม่ค่อยเห็น T Type Flip Flop ใช้งานจริงมากนัก


วันเสาร์ที่ 12 กันยายน พ.ศ. 2558

Digital Weekly Jurnal#5 :: COMBINATIONAL LOGIC FUNCTIONS

LED 7 - Segment
      เป็นอุปกรณือิเล็คทรอนิคส์ที่มีไว้เพื่อแสดงตัวเลขระบบเลขฐานสิบหก ซึ่งภายในนั้นก็คือหลอดไฟ LED ธรรมดาที่ต่อเรียงกันไว้เพื่อให้มันแสดงตัวเลขออกมา
ภาพแสดงโครงสร้างภายในของ 7-Segment.
        ประเภทของ 7 - Segment นั้นจะมีอยู่ 2 ประเภทคือ
            1.) Common Anode จะอิงไฟเลี้ยงเป็นหลัก คือเวลาต่อใช้งานก็ต่อเข้า Vcc จากนั้นก็ต่อขาที่จะแสดงผลลงกราวน์ไป
            2.) Common Cathode จะอิง GND เป็นหลัก คือ ไฟเลี้ยงจะต่อเข้าหลอด LED แต่ละหลอด แล้วจากนั้นไฟเลี้ยงทั้งหมดจะลงไปรวมกราวน์ที่ กราวน์ของ 7-Segment 
ชนิดของ 7 - Segment
การต่อใช้งาน 7-Segment
การต่อ 7-segment นั้นถ้าจะต่อให้แสดงตัวเลขขึ้นมาก็ต้องต่อให้ถูกขาด้วยนะ ซึ่งดูได้จากรูปภาพนี้
Truth Table OF 7-Segment.


การแสดงผลของ 7-Segment
หมายเหตุ :: ขา Dp คือ ไฟแสดงจุดทศนิยม.
       ซึ่งการต่อ 7-Segment นั้น แน่นอนว่ามันคือหลอด LED ที่ต่อเรียงกัน ดังนั้นแล้ว กระแส ก็เป็นปัจจัยสำคัญที่จะทำให้ 7-Segment เสียหายได้ ดังนั้นเราควรต่อ Resister กันกระแสไว้ด้วย
Decoder - ไอซีถอดรหัส
       เป็น IC ที่ทำหน้าที่ถอดรหัสเลขฐานสองให้กลายเป็นเลขฐานสิบหก ซิ่งเหมาะกับการนำไปใช้เปิด - ปิด อุปกรณ์บางชิ้นได้ และเช่นเดียวกัน เราก็ใช้ IC ตัวนี้หล่ะ แปลงเลขฐานสองให้กลายเป็นเลขฐานสิบหก เพื่อนำไปแสดงใน 7- Segment
Binary To Hex
       ในชุดฝึก NX-100 นั้น ได้มีโซน BINARY TO HEX DECODER ไว้เพื่อให้เราทดลองต่อ Logic เข้ากับ 7-Segment เพื่อดูตัวเลขที่แปลงจากฐานสองไปเป็นฐานสิบหก
   Classwork I :: ต้องการแสดงเลขฐานสองให้กลายเป็นเลขฐานสิบเพื่อให้ดูเข้าใจง่ายขึ้น
     - BCD -> Binary Coded Decimal
ลองดูผังก่อนว่าจะออก Truth Table ยังไง
หลังจากดูผังแล้วสามารถเขียน Truth Table ได้แบบนี้
จากนั้นทำการออกแบบ GATE โดยใช้โปรแกรม Logic Friday ได้ดังนี้
จากนั้นทำการต่อวงจรจริง

ผลการทำงาน ถือว่าใช้ได้อย่างดีเยี่ยม

        ปัญหาที่พบ 
         นั่งสับสนกับขา F0-F7 นานมาก ซึ่งตอนแรกก็แก้โดยการยอมต่อวงจรใหม่ทั้งหมด 3 รอบแต่สุดท้ายแล้ว ผิดตรงต่อ Output ผิด นั่้งโง่ตั้งนาน

*-------------------------------------------------------------------------------------------*

Encoder - ไอซีเข้ารหัส
      IC ที่ทำหน้าที่เปลี่ยนข้อมูลดิบต่างๆ ให้เป็นข้อมูลระบบใดระบบหนึ่งในวงจรดิจิตอล เช่นข้อมูลจากสวิตซ์อินพุตจำนวน 8 ตัวใช้สายข้อมูลจำนวน 3 เส้น เป็นต้น



*-------------------------------------------------------------------------------------------*

Multiplexer (Mux)
        มัลติเพล็กเซอร์ คือ วงจรที่ใช้เลือกสัญญาณ Input ที่มีหลายๆทางให้ออก Output ทางเดียวเท่านั้น เปรียบเสมือนสวิทซ์ชนิดแกนเดียวหลายตัวเลือก (Selector Switch) โดยที่จำนวน Input (n) จะมีค่าเท่ากับ 2^m เมื่อ m คือจำนวน Input ที่ใช้ในการควบคุมการเลือก ดังรูป
      2 To 1 MUX
        เป็นวงจรเลือกข้อมูล 2 ข้อมูล โดยเลือกข้อมูลใดข้อมูลหนึ่งออกมาทาง Output โดยมีInputเลือกหนึ่งInputเป็นตัวเลือกเป็นช่องทางในการเลือกข้อมูล
      4 To 1 MUX
         เป็นวงจรเลือกข้อมูล 4 ข้อมูล โดยเลือกข้อมูลใดข้อมูลหนึ่งออกมาทาง Output โดยมีInputสองInputเป็นตัวเลือกในการทำงาน ซึ่งถ้าเปรียบกับ Op-Amp ก็ใช้ในการเลือกช่วงขยายสัญญาณนั่นเอง
DeMultiplexer (Demux)
วงจรดีมัลติเพล็กเซอร์เป็นวงจรที่มีการทำงานตรงกันข้ามกับวงจรมัลติเพล็กเซอร์ โดยจะมีInputเพียงInputเดียว ส่งออกมายัง Output หลายๆ Output เหมือนกับสวิทซ์ที่มีทางออกหลายทาง
       1 To 4 Demux
          เป็นวงจรที่ใช้เลือกข้อมูลทั้งหมดเข้ามา โดยจะได้ข้อมูลออกมาทาง Output 4 Output โดยมีInputเลือก 2 Input เป็นตัวเลือก
  Class Work II :: ทำ Mux 4 To 1 จาก 2 To 1 Mux
       
           การทดลอง Ep.นี้ จะทดลองสร้าง 4 To 1 Mux ขึ้นมาโดยใช้หลักการจาก 2 To 1 Mux

Truth Table 2 To 1 Mux และ 4 To 1 Mux
 อันดับแรกก็ต่อ 2 To 1 Mux จำนวน 2 ชุด เพื่อทดสอบการส่งข้อมูลของ Input ทั้ง 4
จากนั้นก็นำ 2 To 1 Mux จำนวน 2 ชุดนั้นมาสร้างเป็น Truth Table 
 Truth Table 2 To 1 Mux จำนวน 2 ชุด
สุดท้ายแล้ว จะได้ Truth Table หน้าตาแบบนี้

จากนั้นก็ทำการ Map To Gate ออกมา
ในการทดลองนี้ได้ทดลองต่อโดยลองใช้หลักโครงสร้างของตัว 2 To 1 Mux มาลองต่อเล่นก่อน
หลังจากนั้นก็ใช้ IC 74HC257 แทน
 Simulation ก่อนต่อวงจรจริง
จากนั้นทำการต่อวงจรจริง

ผลการทำงาน ถือว่าใช้ได้อย่างดีเยี่ยม
      หมายเหตุ :: วันนั้นอากาศเย็นกำลังดี ฝนตกลงมาดับกระหายร้อนช่วยให้ชีวิตอยู่ง่ายขึ้น นึกคะนองทดลองต่อวงจรโดยไม่ใช้เจ้า NX-100 Plus ทดลองใช้ความรู้เกี่ยวกับ TTL และ CMOS ในเรื่องของ Levels HIGH กับ LOW โดยไฟ 5 V. แทน HIGH และไฟ 0 V. แทน LOW ปรากฏว่า ใช้งานได้เหมือนกัน

       UpGread การทดลองต่อมา ลองเปลี่ยน OR เป็น XOR เพื่อเพิ่มความมั่นใจว่าข้อมูลที่ได้นั้นเป็นข้อมูลที่มาจากเส้นใดกันแน่ 
 Truth Table 2 To 1 Mux จำนวน 2 ชุด เหมือนเดิม
สุดท้ายแล้ว จะได้ Truth Table หน้าตาแบบนี้ 

จากนั้น Simulation โดยพบว่า ใช้งานได้เหมือนกับ 4 To 1 Mux ทุกประการ และ Sure กว่าใช้ OR
  OR VS XOR
  - OR ผลรวมสุดท้าย ถ้า SS=0 แล้ว A=1 ก็หมายความว่า ส่งข้อมูล A ออกไป แต่ถ้า C=1 ด้วย มันก็ส่งข้อมูล C ไป เลยทำให้ผลสุดท้าย กลายเป็น 1,1 มันก็ OUTPUT เป็น 1 แต่ก็ทำให้ไม่รู้ว่ามันส่งข้อมูลจากทางไหนมาแน่ๆ เปรียบเสมือน Don't Care 
  - XOR ผลรวมสุดท้าย ถ้า SS=0 แล้ว A=1 ก็หมายความว่า ส่งข้อมูล A ออกไป แต่ถ้า C=1 ด้วย มันก็ส่งข้อมูล C ไป เลยทำให้ผลสุดท้าย กลายเป็น 1,1 คราวนี้ XOR ก็ให้ OUTPUT เป็น 0 วงจรไม่ทำงาน เพราะว่ามันต้องตรวจสอบให้แน่นอนว่าเราต้องการส่งข้อมูลไหนออกไปกันแน่ เลยทำให้ SURE ในเรื่องการส่งข้อมูล  

ปัญหาที่พบ
        ช่วงแรกไฟ LED ติดตลอดเวลา ก็นั่งงมวงจรตั้งนาน โดยตอนแรกก็เชควงจรส่วนของ 2 To 1 Mux ก่อนก็ทำงานได้ปกติ ต่อมาเชคส่วนของ OR GATE ปรากฏว่า ใช้งานได้ปกติ จากกการเชค Truth Table ของ OR GATE จนสุดท้ายกลับมาเชคตัว IC 74HC257 พบว่าลืมต่อไฟ GND เข้าขา 15 ของตัว IC 74HC257 เลยทำให้ ไฟ LED นั้นติดตลอดเวลา