Wednesday, 21 October 2015

Lab Week 8

FRA221 A0215 Digital Lab 1 12/10/2015
คำสั่ง : กำหนดให้ใช้สวิทซ์ 3 ปุ่มเป็น Input และให้แสดงผลออกทางหลอดไฟ โดยแสดงผลในรูปแบบของการวิ่งของหลอดไฟที่แตกต่างกันออกไป
https://drive.google.com/file/d/0B52rK8QZRwC4UFlsdGhybXhIQVk/view?usp=sharing

FRA221 A0215 Digital Lab 1 13/10/2015
คำสั่ง : แสดงผลของค่า analog ที่รับเข้ามา ในรูปแบบของหลอดไฟ (ยิ่งค่ามาก จำนวนหลอดไฟที่ติดไฟจะมากขึ้น)
https://drive.google.com/file/d/0B52rK8QZRwC4dzNXQWJIQ21NXzg/view?usp=sharing

FRA221 A0215 Digital Lab 2 13/10/2015
คำสั่ง : แสดงผลของค่า analog ที่รับเข้ามา ในรูปของ BCD ผ่านทาง 7segment
https://drive.google.com/file/d/0B52rK8QZRwC4WmQ2bmVUeFBVZ2c/view?usp=sharing

Friday, 2 October 2015

สรุปการเรียนรู้ week 7

สรุปการเรียนรู้ week 7
          -ได้เรียนรู้เรื่องการออกแบบวงจร Sequential logic เนื่องจาก Sequential logic เป็นวงจรในรูปแบบของการเก็บค่า เก็บ stage การทำงาน ดังนั้น เราควรจะกำหนดคุณลักษณะของการทำงานที่ชัดเจนก่อน โดยการแปลงคุณลักษณะดังที่กล่าวถึงให้อยู่ในรูป State Diagram ดังรูป


          โดยวงกลมคือ State ภายในวงกลมส่วนบนจะเป็นการระบุชื่อใช้อธิบาย State นั้นๆ และด้านล่างจะเป็นสถานะของ Output ที่เราต้องการให้เกิดขึ้น ส่วนลูกศรคือการบ่งบอกว่า ใน 1 ครั้งของการเปลี่ยน State หาก Input เป็นอะไร แล้ว State จะถูกเปลี่ยนไปที่ State ใด ซึ่งจะบ่งบอก Input โดยใช้ตัวเลขที่เห็นระหว่างลูกศร
          ซึ่งแผนภาพ State Diagram นั้นมี 2รูปแบบ คือรูปแบบนี้ เรียกว่า Moore และอีกรูปแบบคือ Mealy จะเปลี่ยนรูปแบบเล็กน้อย นั่นคือในวงกลมจะอธิบาย State และบนลูกศรจะบ่งบอกถึงสถานะของ Output แทน

          หลังจากวาด State Diagram เสร็จแล้วให้เราใส่ตัวเลขฐาน 2 แทนใน State แล้วนำไปเขียนตาราง State Table


          โดยในตาราง จะใส่ State ปกติ และ Input ลงไปก่อนตามรูปแบบการเขียนตารางทั่วไป และจากนั้นจึงนำส่วนแรกมาพิจารณาเพื่อหา State ถัดไป (next state) โดยจะดูจาก State Diagram ว่าลูกศรมี Input logic เป็นอะไร จะทำให้ State นั้นๆ เปลี่ยนไปที่ State ใดบ้าง เมื่อเสร็จแล้วจึงดู Output ว่า State ใดมี Output เป็นอย่างไร โดยอ้างอิงจาก Current State
เมื่อเสร็จแล้วจึงเริ่ม ใส่ logic ของ Flip-Flop ลงไปในในตาราง โดยเทียบตารางของ Flip-Flopเกี่ยวกับ Current State และ Next State ว่าการเปลี่ยนแปลงแบบนี้จะต้องให้ Logic ที่ขาของ D (ในกรณีที่ใช้D-type Flip-flop) และขาของ J K (ในกรณีที่ใช้ JK Flip-flop) เป็นอย่างไรบ้าง ดังสไลด์ ด้านล่าง



          หลังจากนั้นจึงสร้าง Boolean function สำหรับ Input ที่ขา D , JK โดยการนำ Current State + Input เป็นตัวตั้ง และให้ Output เป็นตาราง D-type , JK  โดยเมื่อได้ Boolean function แล้วก็นำมาเขียนวงจรตามสมการที่ได้ และต่อจริงก็เสร็จ ดังรูป



ปัญหา/สิ่งที่ไม่เข้าใจ
          -พอเริ่มทำอะไรที่มันเยอะขึ้นแล้วรูปสึกว่าสายไฟไม่ค่อยจะพอ ทำให้เสียเวลาในการยืมของจากเพื่อน และเวลาในการพยายามยุบอยู่บ้าง แต่ก็ยังสามารถต่อออกมาได้
****ความประทับใจ****

          -ผมเริ่มรู้สึกชอบวิชานี้มากขึ้นเนื่องจากการทำงานต่างๆของวงจรที่ได้รู้เจ๋งและน่าค้นหามากขึ้น มันดูสามารถต่อยอดและทำอะไรได้หลายอย่างดี ทำให้ตอนนี้รู้สึกตื่นเต้นทุกครั้งที่ได้เรียนวิชานี้มากกว่าวิชาอื่นๆ

สรุปการเรียนรู้ Week 6

สรุปการเรียนรู้ Week 6
- รู้จักวงจร Sequential Circuit เป็นวงจรที่เกี่ยวกับการนับจำนวนแบบ Binary โดยใช้วงจรไฟฟ้า ซึ่งจะต่างจากวงจร Logic ธรรมดาตรงที่ วงจรธรรมดา Output จะขึ้นอยู่กับ Input ในขณะนั้นๆ แต่ถ้าเป็นวงจร Sequential Logic Output จะขึ้นอยู่กับ3อย่างคือ Input ขณะนั้น , Input ก่อนหน้า และ Output ก่อนหน้า หรือพูดง่ายๆคือเป็นวงจรที่มี Memory ไว้สำหรับเก็บค่าเพื่อคำนวณต่อไปได้ (ใส่รูปความแตกต่างของ Logicธรรมดากับซีเควนเชี่ยว) - รู้จักกับFlip-Flop เป็นอุปกรณ์พื้นฐานของ Sequential Logic โดยด้านในของFlip-Flop เป็นเสมือนอุปกรณ์ Logic gate ต่อกันอยู่ โดยการ Hold สถานะ จะใช้หลักการคล้ายๆกับ Self Locking (มีการใช้ Output ต่อเข้ากับ Input เพื่อคงสถานะไว้) โดย Flip-Flop จะมีหลากหลายรูปแบบ และแต่ละรูปแบบก็จะมีส่วนประกอบ(Logic gate ภายใน) ที่แตกต่างกันออกไป มีทั้งหมด 4 แบบคือ 1. SR Flip-Flop
Input 2ขา(Set,Reset) และ Output 2ขา (Q,Qbar)โดยจากรูปจะมีการต่อ Output เข้าไปที่ Input ของLogic gate สลับตัวกัน เพื่อให้สถานะของ Output ทั้งสองสลับกันไปเรื่อยๆ เมื่อกดปุ่ม Set จะทำให้ Output ติดค้างเนื่องจากการ Hold Status และจะไม่เปลี่ยนจนกว่าจะมีการกด Reset
*Invalid จะเป็นกรณีที่ไม่สามารถเกิดขึ้นได้ / ไม่รู้ว่าOutput จะออกมาเป็นแบบไหน* 2.JK Flip-Flop
มีลักษณะการทำงานคล้ายๆกับ SR Flip-Flop (J = Set , K = Reset) แต่จะมีขา clk ขึ้นมาเพื่อการเปลี่ยนสถานะ ซึ่งสถานะจะเปลี่ยนตาม Input ที่อยู่ในขณะนั้น โดยขา clk สร้างขึ้นมาเพื่อแก้ปัญหากรณีที่ Invalid โดยจะกลายเป็นการ state toggle แทน
3. D-Type Flip-Flop
มีลักษณะเหมือนกับ JK แต่จะทำการรวบขา JK เข้าด้วยกันและให้สลับ Logic กันโดยจะไม่มี State Toggle เกิดขึ้น 4. T-Type Flip-Flop
เป็น JK Flip-Flop โดยรวบขา JK เข้าด้วยกันและเปลี่ยน State ของ Output โดยใช้ State Toggle ที่เกิดขึ้นเมื่อ Input ที่ขา JK เป็น1 เหมือนกัน - รู้จักกับ Asynchronous Counter และ Synchronous Counter เป็นวงจรสำหรับการนับเลขออกมาเป็นฐาน2 โดยทั้งสองแบบมีข้อดีข้อเสียต่างกันคือ Asynchronous Counter
ข้อดีคือสร้างง่าย เนื่องจากใช้แค่ Output ตัวก่อนหน้ามาควบคุมการ clk ถัดไปเฉยๆ ข้อเสีย คือจะเกิด propagation Delay จาก Gate แต่ละตัว เช่นเมื่อเราใส่ Input เข้าไป จะต้องใช้ความเร็วประมาณ 50 ns และถ้าเราต่อยาวไปหลายๆตัว ก็จะยิ่งทำให้เวลาเพิ่มมากขึ้น และกว่า Output จะแสดงครบใน 1 ครั้งของการสั่งงานก็ใช้เวลานานขึ้น อาจทำให้เกิดข้อผิดพลาดได้ Synchronous Counter
ใช้ Logic เดียวกันคือ Output ตัวถัดไปจะเปลี่ยนสถานะเมื่อ Input ทั้งหมดก่อนหน้ามีสถานะเป็น1 โดยใช้ Output คุม Logic ที่ ขา JK ในตัวถัดๆไป แต่ใช้clk ร่วมกันเพื่อให้มีการเปลี่ยนสถานะพร้อมๆกัน ปัญหา / สิ่งที่ไม่เข้าใจ week6 -เริ่มงงกับการออกแบบวงจรว่า มันสามารถประยุกต์ไปทำไรต่อได้บ้างนอกจากการนับเลข