ตรรกะดิจิทัล (Digital Logic)
บทนำ

มนุษย์สื่อสารกันด้วยเลขฐานสิบ แต่เครื่องคอมพิวเตอร์ หรืออุปกรณ์อิเล็กทรอนิกส์จะรองรับ 2 สถานะ ที่เป็นผลมาจากแรงดันไฟฟ้า 2 สถานะ สอดรับกับระบบเลขฐาน 2 ที่มี 0 กับ 1

ดังนั้นการจะทำให้เครื่องคอมพิวเตอร์เข้าใจเลขฐานสิบ จึงต้องมีการแปลงเป็นเลขฐาน 2 ตามมาตรฐาน BSD (Binary-Coded Decimal) หากมีจำนวนมากขึ้นก็จะใช้การเข้ารหัสแบบเลขฐาน 8 (Octal Coding) หรือการเข้ารหัสแบบเลขฐาน 16 (Hexadecimal Coding) มาแทนฐาน 2 ทำให้การใช้จำนวนตัวเลขลดลง อาทิ 111001100100101101011 ฐานสอง หากแปลงเป็นฐาน 8, 16 และ 10 จะได้เลขอะไร

parity bit
การส่งข้อมูลข่าวสารในเลขฐาน 2 มักใช้ parity bit เข้าไปใน code word เพื่อใช้ตรวจสอบความถูกต้องของข้อมูล

หากเป็น even parity หมายถึง ภาวะ (parity) ที่เติมเข้าไปใน code word แล้วทำให้จำนวนเลข 1 มีจำนวนเป็นเลขคู่ ส่วน odd parity หมายถึง ภาวะ (parity) ที่เติมเข้าไปใน code word แล้วทำให้จำนวนเลข 1 มีจำนวนเป็นเลขคี่

ตัวอย่างการใช้ parity bit
1. 0000 ที่เป็น odd parity จะเติม 1 แล้วที่ส่งเป็น 00001
2. 0000 ที่เป็น even parity จะเติม 0 แล้วที่ส่งเป็น 00000
3. 0010 ที่เป็น odd parity จะเติม 0 แล้วที่ส่งเป็น 00100
4. 0010 ที่เป็น even parity จะเติม 1 แล้วที่ส่งเป็น 00101
5. 010 เป็น odd parity เพราะมีจำนวนเลข 1 ตัวเดียว
6. 011 เป็น even parity เพราะมีจำนวนเลข 1 รวม 2 ตัว

เพราะ ตรรกะ (Logic) คือ หลักที่เป็นเหตุเป็นผล
วิชานี้จึงสนใจ เรื่องค่าความจริง หรือไม่จริง


รหัสที่ใช้แทนเลข 0 ถึง 9
เช่น 123 ก็ใช้ 0001 0010 0011
ศัพท์เทคนิค (Technical Term)
    ศัพท์พื้นฐาน
  1. digit = ตัวเลข
  2. logic = ตรรกะ
  3. decimal = เลขทศนิยม
  4. binary = เป็นคู่
  5. encoding = การเข้ารหัส
  6. decoding = การถอดรหัส
  7. switch = ตัวสลับสัญญาณ โดย 0=ปิด 1=เปิด
  8. parity = ภาวะ
  9. truth = ความจริง

Slide : Logic
truth table of quiz result
Slide : Switching Function

Slide : Flip Flop
    นิยามศัพท์ (Definition)
  1. ตรรกะ (Logic) คือ หลักที่เป็นเหตุเป็นผล เพื่อใช้แก้ปัญหาต่าง ๆ ทางด้านคอมพิวเตอร์ ซึ่งอริสโตเติล นักปรัชญาชาวกรีกได้ศึกษาเรื่องนี้ เพื่อนำมาใช้แก้ปัญหา ต่อมาในปีค.ศ.1930 วงจร logic ได้ถูกนำมาใช้วิเคราะห์ระบบ Switch งของเครื่องชุมสายโทรศัพท์แบบอัตโนมัติ
  2. การออกแบบวงจร combination logic [2]p.1
    ประกอบด้วย Gates ประเภทต่าง ๆ จาก Switching function
    สิ่งสำคัญที่ต้องคำนึง คือ ความถูกต้องของวงจร และจำนวน Gates ที่ควรใช้น้อยที่สุด โดยวงจรยังทำงานได้ตามต้องการ เพื่อลดเวลาหน่วง (Delay time) ให้น้อยที่สุด การลดรูป Switching function หรือ Logic equation โดยวิธีของ boolean หรือ karnaugh map เป็นวิธีที่แพร่หลาย แต่ถ้าตัวแปรจำนวนมาก เช่น 5 ตัว หรือมากกว่า การลดรูปที่ซับซ้อนอาจผิดพลาดได้ อีกวิธีหนึ่งคือ Quine McCluskey ที่เหมาะกับการลดรูปในกรณีมีตัวแปรจำนวนมาก
  3. ความรู้เบื้องต้นเกี่ยวกับวงจร Squential [2]p.35
    วงจรดิจิทอลประกอบด้วย Gates เพียงอย่างเดียว เรียกว่าวงจรประเภท Combination logic circuit วงจรประเภทนี้ output ที่เวลาใด จะเป็น function input ที่เวลานั้น โดยทั่วไป Digital system จะมีวงจรเพิ่มเติมที่สามารถเก็บข้อมูลได้ คำนวณทางคณิตศาสตร์ได้ หรือปฏิบัติการด้าน logic กับข้อมูลเหล่านั้นได้ อุปกรณ์เก็บข้อมูล คือ หน่วยความจำ (Memory) หรือ Flip Flop เมื่อรวม Flip Flop กับ Combination logic ทำให้ output ที่เวลาใด เป็นฟังก์ชัน input จากภายนอกที่เวลานั้น และก็ยังเป็น function ของข้อมูลที่เก็บไว้ในหน่วยความจำนั้น ๆ ด้วย เราเรียกว่าวงจร Sequential
  4. Complement [1]p.19
    ระบบเลขฐานสอง คือ ระบบที่ใช้ในเครื่องคอมพิวเตอร์ เมื่อคำนวณก็ต้องใช้เลขฐานสอง ซึ่งคอมพิวเตอร์จะมีวงจรบวกเลข แต่การลบเลขนั้นไม่มีวงจรเฉพาะ วิธีที่นิยมคือ การใช้ Complement มาช่วยในการลบ การทำ Complement คือการกลับบิทจาก 0 เป็น 1 หรือ 1 เป็น 0 และมี 2 แบบ คือ แบบแรก 1's complement คือ การกลับบิท หรือสลับบิท มีเพียงขั้นตอนเดียวเท่านั้น แต่แบบที่สอง 2' complement คือ การกลับบิท หรือสลับบิท ที่มี 2 ขั้นตอน แล้วบวก 1 เพื่อนำไปใช้ในการหาผลต่าง หรือการลบ
  5. Canonical form
    + ฟังก์ชันเชิงตรรกะสามารถแสดงให้อยู่ในรูปแบบบัญญัติได้ ทั้งแบบ "ผลบวกของมินเทิร์ม" และแบบ "ผลคูณของแมกซ์เทิร์ม" รูปแบบบัญญัติทำให้เราสามารถวิเคราะห์เพื่อลดความซับซ้อนของฟังก์ชันเหล่านี้ได้ ซึ่งมีความสำคัญอย่างยิ่งในการลดรูปวงจรดิจิทัลให้สั้นลง
    + Any Boolean function can be expressed in a canonical form using the dual concepts of minterms and maxterms. โดย Minterms เรียกว่า ผลรวมของผลคูณ (Sum of Products Equation, SOP) เพราะใช้ logical AND แล้ว Maxterms เรียกว่า ผลคูณของผลรวม (Product of Sum Equation, POS) เพราะใช้ logical OR เอกสารบางเล่มเรียกว่า Canonical form ว่า รูปแบบมาตรฐานของสมการลอจิก (Standard Form of Logic Expression)
  6. Boolean algebra [1]p.45
    พีชคณิตบูลีน เป็นเทคนิคที่ใช้ในการลดรูป Switching function ผู้คิดค้น คือ George Boole นักคณิตศาสตร์ชาวอังกฤษ โดยเทคนิคนี้อาศัยทฤษฎีบทช่วยในการลดรูป อาทิ A + A . B = A และสามารถใช้ตารางค่าความจริงในการพิสูจน์ทฤษฎี
  7. Clock Pulse
    CK : Clock Pulse คือ วิธีการที่ทำให้ฟลิปฟล็อปแต่ละตัวสามารถเปลี่ยนสภาวะไปพร้อมๆ กันได้โดยต้องมีการให้สัญญาณการเปลี่ยนสถาวะ ซึ่งสัญญาณนี้เรียกว่า Clock pulse(CK)ส่วนนี้เองที่ทำให้ไม่ต้องใช้ฟลิปฟล็อปต่อร่วมกันหลายๆ อัน
  8. Flip Flop
    ฟลิปฟล็อป (flip flop) หรือ แลตช์ (latch) เป็นวงจรอิเล็กทรอนิกส์ที่มี Output คงที่อยู่ 2 สถานะ คือ Q และ Q' ซึ่งมีค่าทางลอจิกตรงข้ามกัน เช่น ถ้า Q = 1,Q' = 0 ฟลิปฟล็อปยังเป็นอุปกรณ์ทางลอจิก ซึ่งมีหน่วยความจำขนาดหนึ่งบิต บางครั้งเรียกว่า อุปกรณ์ที่เสถียรภาพแบบสองสถานะ นั่นคือ ฟลิปฟล็อป หนึ่งตัวสามารถใช้เก็บค่า 0 หรือ 1 ได้ ซึ่งฟลิปฟล็อปจะทำงานเมื่อสัญญาณนาฬิกามีการเปลี่ยนแปลงค่า สำหรับช่วงเวลาอื่น ๆ ฟลิปฟล็อปจะคงค่าหรือจำค่าเดิมไว้ได้ ดังนั้น ฟลิปฟล็อป จึงเป็นส่วนประกอบพื้นฐานในการสร้างตัวนับ เรจิสเตอร์ และหน่วยความจำ เพื่อเก็บข้อมูลในรูปของเลขฐานสอง ในปัจจุบันเราใช้ ฟลิปฟล็อป กันอย่างกว้างขวางในอุปกรณ์ดิจิตอล เหมือนเป็นชิ้นส่วนความจำ
  9. Flip Flop
    สภาวะการแข่งขัน (race conditions) คือ สภาวะที่อาจเกิดขึ้นในวงจรซีเควียนเชียลแบบไม่เข้าจังหวะ หรือ วงจรซีเควนเชียลที่ไม่มีสัญญาณนาฬิกาควบคุม และไม่ใช้วงจรฟลิปฟลอปในการเก็บค่าสภาวะ (Asynchronous sequential circuits) กรณีเมื่ออินพุทเปลี่ยน แล้วส่งผลให้ตั้งแต่สองค่าสภาวะขึ้นไปเปลี่ยนค่า ถ้าค่าความหน่วงเวลาของค่าสภาวะไม่เท่ากันอานทำให้สภาวะเปลี่ยนโดยไม่สามารถคาดเดาได้ เช่น เปลี่ยน 00 เป็น 11 หากหน่วงไม่เท่ากันอาจเป็น 10 หรือ 01 แล้วจึงเป็น 11 ก็ได้
เซตของตัวอักษร (Character Set)
Unicode คือ Universal Character Set (UCS)
คือ การกำหนดหมายเลขเฉพาะสำหรับทุกอักขระ
โดยไม่ขึ้นกับแพล็ตฟอร์ม ไม่ขึ้นโปรแกรม และคลุมทุกภาษา
+ ตาราง Unicode เริ่ม 0E 01 คือ ก หรือ ก
ผลบันทึกด้วย Notepad บน WinXP ให้ Encoding=Unicode
ได้ข้อมูลในแฟ้ม ดังนี้
มี "ก" 4 ไบท์ เก็บ FF FE 01 0E
มี "ข" 4 ไบท์ เก็บ FF FE 02 0E
มี "ค" 4 ไบท์ เก็บ FF FE 04 0E
มี "1" 4 ไบท์ เก็บ FF FE 31 0E
มี "กข" 6 ไบท์ เก็บ FF FE 01 0E 02 0E
มี "a" 4 ไบท์ เก็บ FF FE 61 00
มี "abก" 8 ไบท์ เก็บ FF FE 61 00 62 00 01 0E
มี "ก0ข1" 10 ไบท์ เก็บ FF FE 01 0E 30 00 02 0E 31 00
โดย FF FE คือ BOM (Byte order mark) 
ถูกใช้ที่ต้นแฟ้ม เพื่อระบุให้ทราบว่า แฟ้มนี้เป็น Unicode
และเรียงแบบไบท์ต่ำมาก่อน (Little Endian = LE)

ASCII 
American Standard Code for Information Interchange
คือ รหัสที่อเมริกากำหนดขึ้นมา เพื่อใช้ในการแลกเปลี่ยนข้อมูล 
ชุดอักขระแอสกี (ASCII character set) 
ใช้ในการอ้างอิงว่ารหัสนี้แทนตัวอักษรอะไร 
ASCII มีมาตรฐานต่างกันไปตามซอฟต์แวร์ 
แต่มี 128 bit แรกเป็นรหัสอักษรภาษาอังกฤษเหมือนกัน 
ที่เหลือขึ้นกับแต่ละมาตรฐาน
เช่น ตัว A ในภาษาอังกฤษ ถูกแทนด้วย 65 
ในเลขฐานสิบ หรือ 41 ในเลขฐานสิบหก 
ซึ่งชุดตัวอักษรของ ASCII แบบ 8 bit ใช้ 1 byte / 1 char
จึงเก็บอักขระได้ 256 แบบ
ในยุคแรกภาษาไทยใช้ bit ที่ 8 ต่างกันไป
เช่น รหัสเกษตรฯ  รหัส สมอ. หรือรหัส MacThai
+ มาตรฐานภาษาไทย

ANSI 
American National Standards Institute
เป็นอีกแบบของรหัส ซึ่งมีมาตรฐานต่างกันไปตามซอฟต์แวร์ 
แต่มี 128 bit แรกเป็นรหัสอักษรภาษาอังกฤษเหมือนกัน
The ANSI set of 217 characters, 
also known as Windows-1252
+ http://www.alanwood.net/demos/ansi.html

รุ่นของ Unicode
Unicode รุ่น 1.0.0 ออกปี 2534 รองรับ 24 Character set 
ครอบคลุม 7,161 รูปแบบ 
Unicode รุ่น 6.3.0 ออกปี 2556 รองรับ 93 Character set 
คลุม 110,187 รูปแบบ
ปัจจุบันนิยมใช้ Unicode 2 แบบ คือ UTF-8 และ UTF-16
[UTF-8]
ขนาดของอักขระ UTF-8 นิยมใช้ใน Linux
[UTF-16]
ขนาดของอักขระ UTF-16 นิยมใช้ใน Windows2000 เป็นต้นไป
เมื่อเลือกบันทึกข้อมูลเป็น Unicode จะเลือกเป็น UTF-16
+ มาตรฐานภาษาไทย

เปรียบเทียบ ข้อมูล UTF-8 กับ Unicode หรือ UTF-16
ความเป็นอัตโนมัติของ Browser
ปกติผมจะเรียกว่า ประเภทตัวอักษรแบบ Unicode
แต่ใน Firefox และ Chrome 
ให้ Unicode ว่าเป็น UTF-16 บน Windows
ในบราวเซอร์รุ่นใหม่จะรู้อัตโนมัติว่าเป็นแฟ้มข้อมูลแบบใด 
แล้วแสดงผลได้อย่างถูกต้อง

ขนาดแฟ้ม
เมื่อพิจารณาดูความต่างของขนาดแฟ้มจะ พบว่า 
ประเภท UTF-8 จะมีขนาดแฟ้มแปรผัน
ตามลักษณะของข้อมูล 
โดยตัวเลขใช้ 1 byte แต่ตัวอักษรใช้ 3 bytes 
เช่น  "ก0ข1ค2" จะมีขนาด 15 bytes 
เพราะ กขค ใช้พื้นที่ 9 bytes และ 012 ใช้พื้นที่ 3 bytes 
รวม header 3 bytes ก็จะเป็น 15 bytes
ในแฟ้มคือ EF BB BF - E0 B8 81 - 30 - E0 B8 82 
- 31 - E0 B8 84 - 32
+ http://www.thaiall.com/blog/admin/4557/

UTF-8 และ UTF-16 ต่างก็เป็นมาตรฐานการจัดเก็บข้อมูลในมาตรฐาน Unicode แต่ลักษณะการจัดเก็บแตกต่างกันทั้งขนาด Header ของแฟ้ม และพื้นที่ในการจัดเก็บข้อมูลของแต่ละตัวอักษร ถ้าจัดเก็บตัวเลขเป็นส่วนใหญ่ แฟ้มแบบ UTF-8 จะมีขนาดเล็กกว่า ซึ่ง UTF-8 เป็นมาตรฐานสำหรับ Linux แต่ UTF-16 เป็นมาตรฐานสำหรับ Windows รุ่นใหม่

UTF-8
UTF-8 เป็นมาตรฐานของตัวอักษร มี Character table ที่กำหนดอย่างชัดเจน หากสร้างแฟ้มแบบ UTF-8 ที่มีตัวอักษร 3 ตัวคือ "กขค" จะใช้พื้นที่ทั้งหมด 12 bytes โดยใช้พื้นที่เก็บข้อมูลตัวอักษรละ 3 bytes และส่วน header คงที่อีก 3 bytes เมื่อใช้โปรแกรม editplus ที่กำหนด encoding type เป็น UTF-8 แล้วสร้างแฟ้ม พบว่า กอไก่ คือ E0 B8 81 ฐาน 16 ขอไข่ คือ E0 B8 82 ฐาน 16 คอควาย คือ E0 B8 84 ฐาน 16 โดย 3 Bytes แรกของแฟ้ม คือ EF BB BF ฐาน 16 แต่ตัวเลขในแฟ้มประเภท UTF-8 จะใช้ค่าตามตาราง ASCII เหมือนเดิม แต่อักษร 3 bytes แรกก็ยังมีอยู่เหมือนเดิม เมื่อสร้างแฟ้มที่มี "012" ก็จะได้แฟ้มขนาด 6 Bytes ซึ่งมาตรฐานนี้กำหนดว่าภาษาไทยอยู่ระหว่าง 0xe0 0xb8 0x80 ถึง 0xe0 0xb9 0xbf แต่ถ้าเป็นมาตรฐาน unicode หรือ UTF-16 จะอยู่ระหว่าง U+0E00 ถึง U+0E7F
+ http://www.utf8-chartable.de
+ http://michal.kosmulski.org/computing/

UTF-16
หากกำหนดประเภทแฟ้มเป็น unicode หรือ UTF-16 แล้ว save แฟ้มข้อมูล "กขค" จะใช้พื้นที่ขนาด 8 bytes พบว่า กอไก่ คือ 01 0E ฐาน 16 ขอไข่ คือ 02 0E ฐาน 16 คอควาย คือ 04 0E ฐาน 16 โดย 2 bytes แรก คือ FF FE ฐาน 16 แต่ถ้าเป็นตัวเลข "012" ก็จะมีขนาดเท่ากับ "กขค" ที่ใช้พื้นที่ 8 bytes ถ้าเป็นอักขระ "abc" ใช้พื้นที่ 8 bytes โดย 2 bytes แรกเหมือนเดิม แต่ข้อมูลคือ 30 00 31 00 32 00 ซึ่ง unicode จะมีขนาดแฟ้มเป็น 2 เท่าของจำนวนตัวอักษร รวม headder เมื่อรวมกับ header อีก 2 bytes ก็จะรู้ว่าแฟ้มนี้มีกี่ตัวอักษร เช่น "ก0ข1ค2" จะมีขนาด 14 bytes
+ http://unicode-table.com/

พบปัญหา - การส่งภาษาไทย และจีนไปกับอีเมล ระบบของ Gmail รับภาษาได้ทีละภาษา เพราะไม่ได้แปลงอักขระเป็น html entities ถ้าส่งจีนหมด ก็อ่านจีนได้ แต่ถ้าผสมกันไป ภาษาจีนจะหาย ต้องแปลงก่อน
+ http://www.thaiall.com/blog/burin/7177/

ฝึกปฏิบัติอย่างง่าย
1. แปลงอักษรเป็น code
- ให้นักศึกษาพิมพ์ชื่อด้วย notepad แล้ว save เป็น ascii หรือ utf-16 หรือ utf-8
- แล้วค้นจากเน็ตมาตอบ ว่าถ้ามองในแฟ้ม ด้วย Debug จะเห็นอะไร
- แล้วถ้าคำนวณเอง โดยเข้าใจหลักการแล้ว จะเห็นอะไร
2. แปลงอักษรเป็น html entities
- เขียนเว็บเพจมีชื่อตนเองเป็น html entities แบบ Decimal
เช่น ก ข ฃ คือ ก ข ฃ
ใช้บริการ Convert character ได้
1. ระบบจำนวนและรหัสคอมพิวเตอร์

แนะนำบทเรียน
จำนวนเป็นจุดเริ่มต้นของเรื่องราว ทำให้เข้าใจขั้นตอนการทำงาน ที่ต้องเริ่มต้นจาก 0 ไป 1 ไป 2 จนถึงขั้นตอนสุดท้าย และระบบจำนวนก็มีอยู่หลายระบบ การนับแต่ละชนชาติก็ต่างกัน รหัสคอมพิวเตอร์ก็มีหลายระบบ ที่มีวัตถุประสงค์แตกต่างกันไป อาทิ ระบบเลขฐานสอง ระบบเลขฐานสิบหก ระบบแอสกี้ ระบบแอสกี้ ระบบ BCD ระบบ Universal Character Set (UCS) หรือ Parity Bit การข้ามขั้นตอนที่เรียกว่า Leap Frog หรือทางลัด เป็นสิ่งที่ต้องเข้าใจถึงความเสี่ยงด้วยเสมอ และมีกรณีตัวอย่างมากมายของการเดินทางลัด

numbersystem.htm

ระบบจำนวนและรหัสคอมพิวเตอร์
(Number systems and computer codes)

Timing diagram

2. พีชคณิตบูลีน

แนะนำบทเรียน
ค่าความจริงมีสองสถานะ คือ จริง (true) กับ เท็จ (true) หากเป็นจริงแล้วจะเป็นเท็จไม่ได้ แต่ปัจจัยที่สนับสนับสนุนความจริงกับความเท็จอาจแตกต่างกันไปในแต่ละมุมมอง แล้วแต่ประสบการณ์ของแต่ละบุคคลที่พิจารณาต่อสถานการณ์นั้น ความสัมพันธ์ระหว่างความจริงก็มีความหมาย และนั่นทำให้เกิดการดำเนินการทางคณิตศาสตร์ และเป็นพื้นฐานในการออกแบบตรรกะให้กับคอมพิวเตอร์ อาทิ และ หรือ ไม่ ถ้าแล้ว เป็นต้น

booleanalgebra.htm

พีชคณิตบูลีน (Boolean algebra)

การลดรูป switching function
โดยใช้ตารางค่าความจริง และการลดรูปด้วยทฤษฎีบท

3. การวิเคราะห์และการสังเคราะห์ตรรกะคอมบิเนชันนัล

แนะนำบทเรียน
การรวมกันของตรรกะจำนวนมาก เมื่อนำมาประมวลผล และหาข้อสรุปสุดท้าย สามารถใช้ตารางมาช่วยวิเคราะห์ ซึ่งเทคนิคในการวิเคราะห์ก็จะเป็นเรื่องเฉพาะทาง และมีศัพท์เทคนิคให้เรียนรู้ หัวข้อนี้ก็จะชวนศึกษาเรียนรู้เพื่อสรุปว่าตรรกะที่เชื่อมกันเป็น Logic Gate นั้นมีค่าความจริงเป็นอย่างไร

combinationlogic.htm

เกต (Gate

การวิเคราะห์และการสังเคราะห์ตรรกะคอมบิเนชันนัล (analysis and synthesis of combinational logic)

คลิ๊ปอธิบายเรื่อง Logic Gate

http://www.daviddarling.info

http://mp.fte.rmuti.ac.th

4. ฟังก์ชันสวิทชิง

แนะนำบทเรียน
ตรรกะหรือฟังก์ชันที่เชื่อมโยงเงื่อนไขมากมาย บางครั้งสามารถลดรูปได้ หรือแก้สมการด้วยทฤษฎีบท ซึ่งเป็นเรื่องที่ท้าทายให้ฝึกแก้ปัญหาจากสมการที่มีให้ โดยใช้กฎที่อยู่ในทฤษณีบท มาช่วยในการคลี่คลายจนเหลือฟังก์ชันที่สั้นที่สุด

switching.htm

ฟังก์ชันสวิทชิง (switching function)

5. รูปแบบคาโนนิคัล

แนะนำบทเรียน
เป็นเทคนิคการลดรูปของตรรกะ หรือฟังก์ชันอีกแบบหนึ่ง ซึ่งเป็นเรื่องเฉพาะทางที่ถูกพัฒนาวิธีการขึ้นมาเพื่อแก้ปัญหา สำหรับตรรกะที่ซับซ้อน โดยใช้รูปแบบคาโนนิคัล หรือรูปแบบบัญญัติ

canonicalform.htm

รูปแบบคาโนนิคัล หรือรูปแบบบัญญัติ (canonical forms)

http://en.wikipedia.org/wiki

6. แผนที่คาร์นอฟ

แนะนำบทเรียน
เป็นเทคนิคการลดรูปของตรรกะ หรือฟังก์ชันอีกแบบหนึ่ง ซึ่งเป็นเรื่องเฉพาะทางที่ถูกพัฒนาวิธีการขึ้นมาเพื่อแก้ปัญหา สำหรับตรรกะที่ซับซ้อน โดยใช้แผนที่คาร์นอฟ

karnaughmap.htm

แผนที่คาร์นอฟ (Karnaugh map)

gate.htm

7. เทคนิคการลดรูป

แนะนำบทเรียน
เป็นเทคนิคการลดรูปของตรรกะ หรือฟังก์ชันอีกแบบหนึ่ง ซึ่งเป็นเรื่องเฉพาะทางที่ถูกพัฒนาวิธีการขึ้นมาเพื่อแก้ปัญหา สำหรับตรรกะที่ซับซ้อน โดยใชเทคนิคการลดรูป

minimization.htm

เทคนิคการลดรูป (minimization techniques)


ระบบจำนวน

Complement [1]p.19
ระบบเลขฐานสอง คือ ระบบที่ใช้ในเครื่องคอมพิวเตอร์ เมื่อคำนวณก็ต้องใช้เลขฐานสอง ซึ่งคอมพิวเตอร์จะมีวงจรบวกเลข แต่การลบเลขนั้นไม่มีวงจรเฉพาะ วิธีที่นิยมคือ การใช้ Complement มาช่วยในการลบ
การทำ Complement คือ การกลับบิทจาก 0 เป็น 1 หรือ 1 เป็น 0 และมี 2 แบบ คือ แบบแรก 1's complement คือ การกลับบิท หรือสลับบิท มีเพียงขั้นตอนเดียวเท่านั้น ส่วนแบบที่สอง 2's complement คือ การกลับบิท หรือสลับบิท ที่มี 2 ขั้นตอน แล้วบวก 1 เพื่อนำไปใช้ในการหาผลต่าง หรือการลบ
ตัวอย่าง
1's complement ของ -100 = 1011 ฐานสอง
2's complement ของ -100 = 1100 ฐานสอง
1's complement ของ -010 = 1101 ฐานสอง
2's complement ของ -010 = 1110 ฐานสอง
1's complement ของ 010 = 0101 ฐานสอง
2's complement ของ 010 = 0110 ฐานสอง
8. วงจรแนนและวงจรนอร์หลายระดับ และภัยในวงจร

แนะนำบทเรียน
การออกแบบวงจรจะทำให้ประหยัดขึ้น เมื่อใช้ Gate แบบเดียวกัน และเป็นเรื่องเฉพาะทางที่นักคณิตศาสตร์ได้คิดวงจรแนน และวงจรนอร์ มาเปลี่ยนวงจรให้เหลือเพียงวงจรเดียว แต่ผลของวงจรยังเหมือนเดิม แล้วการทำงานของวงจรก็มีภัยในวงจร ที่มีเทคนิคการป้องกันปัญหาได้

nandnor.htm

วงจรแนนและวงจรนอร์หลายระดับ (multilevel NAND and NOR) โดย วงจรแนนและวงจรนอร์หลายระดับ (multilevel NAND and NOR) คือ เทคนิคการแปลงเกตแบบ AND-OR (SOP) หรือ OR-AND (POS) หรือเกตผสม (General Gate) เพื่อให้เหลือเกตเพียงแบบเดียว โดย NAND และ NOR gate เป็น เกตสากลที่ได้รับความนิยมโดยทั่วไป ดังนั้น การออกแบบวงจร Logic จึงนิยมออกแบบให้วงจรประกอบด้วย NAND GATE หรือ NOR GATE เพียงอย่างเดียว เพื่อการประหยัดในการสร้างวงจร

ภัยในวงจร (Hazards in Circuits ) ภัยภายในวงจร (Hazards in Combinational Logic Circuit) คือ สถานะที่มีอินพุตเข้าหลายทาง และการเข้าไปนั้นอาจไม่เสถียร เกิด delay ในวงจร แล้วทำให้เอาต์พุตเปลี่ยนค่าตามอินพุตไม่เป็นไปตามปกติ เกิดผิดพลาดชั่วคราว

http://jjackson.eng.ua.edu

http://web.cecs.pdx.edu

http://somnuek.rmutl.ac.th

hazard kmap

+ วงจรดิจิตอล มี 2 แบบคือ 1) วงจรคอมไบเนชั่น (Combinational Logic Circuit) ที่นำอุปกรณ์ลอจิกหลายตัวมาต่อเข้าด้วยกัน โดยเอาท์พุตจะไม่ต่อเข้ากลับไปยังอินพุต 2) วงจรซีเควนเซียล (Sequential Logic Circuit) เป็นวงจรที่มีเอาต์พุตต่อเข้ากลับไปยังอินพุตอีกรอบ จะทำให้มีสภาวะการทำงานที่สัมพันธ์ต่อเนื่องกัน
9. การวิเคราะห์และสังเคราะห์ตรรกะซีเควนเชียล

แนะนำบทเรียน
วงจรแบบซีเควนเชียล เป็นประเด็นเฉพาะทาง ที่ทำให้เข้าใจลำดับการทำงานของวงจร ได้ทราบถึง present state และ next state โดยแสดงในรูปของตารางการตัดสินใจในแต่ละเงื่อนไข

sequentiallogic.htm

http://webstaff.kmutt.ac.th

http://narong.ee.engr.tu.ac.th

state table & state diagram โดย ตารางสถานะ (State Table) คือ ตารางแสดงการเปลี่ยนแปลงสถานะ ของวงจร Sequential โดยแสดงให้ทราบว่า PS:Present State ที่ได้รับ Input มาแล้ว วงจรจะมี NS:Next State เปลี่ยนไปอย่างไร และ Output เป็นเท่าใด ซึ่งมีวิธีเขียน 2 แบบคือ แบบของ Mealy และแบบของ Moore

10. การนำฟลิปฟล็อปมาสร้างตรรกะ

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

flipflop.htm

การนำฟลิปฟล็อปมาสร้างตรรกะ (logic implementation with flip flop) โดย Flip Flop คือ หน่วยความจำประเภทหนึ่ง ที่สามารถเก็บรักษาข้อมูล หรือสภาวะ (state) ทางตรรกไว้ได้ และจะรักษาจนกว่า input เข้าใหม่ และเปลี่ยนสัญญาณ clock จึงจะทำให้ output มีการเปลี่ยนแปลง
- RS Flip Flop
- D Flip Flop
- T Flip Flop
- JK Flip Flop

11. ตัวแปรสถานะ แผนภาพแสดงการเปลี่ยนสถานะ

แนะนำบทเรียน
สถานะของวงจร เป็นเรื่องเฉพาะทาง หัวข้อนี้จะได้เข้าใจตารางการตัดสินใจ ที่แสดงถึงสถานะในวงจร แบบของ Mealy และ แบบของ Moore

statevariable.htm

ตัวแปรสถานะ (state variables)

แผนภาพแสดงการเปลี่ยนสถานะ (state transition diagram)

12. ตารางแสดงสถานะ การลดจำนวนสถานะ

แนะนำบทเรียน
หากศึกษาเรื่องสถานะในวงจร จะพบว่าบางครั้งมีบางสถานะไม่ถูกใช้ และทำให้เราสามารถลดจำนวนสถานะ เพื่อประหยัดทรัพยากร ในการที่ต้องมีวงจรที่ไม่จำเป็นเหล่านั้น

statetable.htm

ตารางแสดงสถานะ (state table)

การลดจำนวนสถานะ (minimization of states)

13. เทคนิคการกำหนดสถานะ และสภาวะการแข่งขัน

แนะนำบทเรียน
สภาวะการแข่งขัน ก็เป็นการพิจารณาเพื่อลดสภาวะที่ไม่จำเป็นอีกวิธีการหนึ่ง

racecondition.htm

เทคนิคการกำหนดสถานะ (state assignment techniques)

สภาวะการแข่งขัน (race conditions)

รายวิชา
CPSC 103 ตรรกะดิจิทัล (Digital Logic) 3(3-0-6)
ระบบจำนวนและรหัสคอมพิวเตอร์ พีชคณิตบูลีน การวิเคราะห์และการสังเคราะห์ตรรกะคอมบิเนชันนัล ฟังก์ชันสวิทชิง รูปแบบคาโนนิคัล แผนที่คาร์นอฟ เทคนิคการลดรูป วงจรแนนและวงจรนอร์หลายระดับ และภัยในวงจร การวิเคราะห์และสังเคราะห์ตรรกะ ซีเควนเชียล การนำฟลิปฟล็อปมาสร้างตรรกะ ตัวแปรสถานะ แผนภาพแสดง การเปลี่ยนสถานะ ตารางแสดงสถานะ การลดจำนวนสถานะ เทคนิคการกำหนดสถานะ และสภาวะการแข่งขัน
+ โครงงาน
Number systems and computer codes, Boolean algebra, analysis and synthesis of combinational logic, switching function, canonical forms, Karnaugh map, minimization techniques, multilevel NAND and NOR circuits and hazards, analysis and synthesis of sequential logic, logic implementation with flip flop, state variables, state transition diagram, state table, minimization of states, state assignment techniques, and race conditions.
Case study : เงื่อนไขจากข่าว .. ลดน้ำหนัก
21 พ.ย.2555 น้องลูกนก นักศึกษาจากม.เทคโนโลยีพระจอมเกล้าธนบุรี ได้โพสท์เรื่องราว เคล็ดลับ แรงบันดาลใจในการลดน้ำหนัก ในเว็บบอร์ดพันทิป จาก131 กิโล เหลือ 68 กิโลกรัม ภายใน 7 เดือน ลดไป 63 กิโลกรัม
http://www.facebook.com/bb.babybirdz (Mar 1,2558)

เงื่อนไขการลดน้ำหนัก
1. ลดจำนวนมื้ออาหาร
2. เลือกประเภทพอาหาร
3. ออกกำลังกาย
4. กินยาลดความอ้วน
5. ผ่าตัดกระเพาะอาหาร
โจทย์ .. จงเขียนตารางค่าความจริงของน้องลูกนก โดยเลือกมา 3 เงื่อนไขจากเงื่อนไขข้างต้น
Case study : เงื่อนไข และมุมมองต่อคุณธรรม และการชี้นำจากสื่อ
clip นางแบบบางขุนเทียน
มี 2 ข่าว คือ ก่อนทราบตัวนางแบบ และ ตัวนางแบบออกมาให้ข่าว เริ่มจาก น.ส.สมบัติ นามพินิจ ผู้ช่วยผู้อำนวยการเขตบางขุนเทียน ได้แจ้งความดำเนินคดีกับบุคคลที่เป็นแบบ และทีมงานในการถ่ายภาพอนาจารดังกล่าว ในข้อหา กระทำการอนาจารหรืออันควรขายหน้าต่อหน้าธารกำนัล เป็นเพียงคดีลหุโทษ โทษปรับไม่เกิน 500 บาท เหตุเกิดประมาณ ปลายเดือนตุลาคม 58 แล้วมาดังเอา 23 ธันวาคม 58
ความผิดตาม พรบ.คอมฯ 2550
มาตรา ๑๔ ผู้ใดกระทําความผิดที่ระบุไว้ดังต่อไปนี้ ต้องระวางโทษจําคุกไม่เกินห้าปี หรือปรับไม่เกินหนึ่งแสนบาท หรือทั้งจําทั้งปรับ (๔) นําเข้าสู่ระบบคอมพิวเตอร์ ซึ่งข้อมูลคอมพิวเตอร์ใด ๆ ที่มีลักษณะอันลามก และข้อมูลคอมพิวเตอร์นั้นประชาชนทั่วไปอาจเข้าถึงได้ (๕) เผยแพร่หรือส่งต่อซึ่งข้อมูลคอมพิวเตอร์โดยรู้อยู่แล้วว่าเป็นข้อมูลคอมพิวเตอร์ตาม (๑) (๒) (๓) หรือ(๔)
จากข้อมูล ใน Facebook ของ ข่าวสด หลังแชร์เรื่องนี้ มีคนไลค์ 156201 แชร์ 3258 เมื่อ 27 ธ.ค.58
ถาม .. ทำไมมีคนกดไลค์ และแชร์ แล้วค้นผ่าน twitter @trendthai มากมายอย่างนี้
ก. ห่วงวัฒนธรรมไทย
ข. ห่วงใยสังคม กระทำอนาจาร ทำให้อยู่ร่วมกันอย่างไม่เป็นสุข
ค. ...
คดีนางแบบ "บางขุนเทียน" สรุปได้ว่าเจ้าตัวจะเอาเรื่อง คนปล่อยภาพ
ถาม .. คนปล่อยภาพ กับนางแบบ จะถูกปรับคนละเท่าใด

ถามนักเรียน/นักศึกษาว่า "ที่เห็นน่ะ เห็นอะไร"
- ผู้เขียนข่าว ผู้แสดงความเห็น คิดเห็นอย่างไร
khaosod/posts/1561391870544433
- ผู้รับผิดชอบจัดงาน คิดเห็นอย่างไร
- ผู้อ่านที่ไม่ดื่มเบียร์ และผู้อ่านที่ดื่ม คิดเหมือน คิดต่างกันอย่างไร
- กฎหมาย กฎหมู่ กฎคนข่าว นำไปสู่คำว่า true และ false อย่างไร
ตามหัวข้อ  "สื่อนอกแฉภาพขวดเบียร์-ขยะเกลื่อนหาดพะงัน 
หลังจบฟูลมูนปาร์ตี้ ชี้ไร้จิตสำนัก"
นักข่าวคงคิดว่า คนที่ไปเที่ยวฟูลมูนปาร์ตี้
เมื่อเต้นไป ดื่มไป จนเมามายได้ที่แล้ว
จะนำขวดเบียร์ไปทิ้งในถังขยะที่จัดไว้
หรือเก็บขวดที่ดื่มหมดแล้วใส่กระเป๋าไปทิ้งในที่พัก
เพราะเป็นคนที่ไปเที่ยวจะมีจิตสำนึกดี
เหมือนประเทศไหน ๆ เป็นแน่
เป็นสิ่งดีครับ ที่จะคาดหวังเช่นนั้น
---
ประเพณีลอยกระทง คือ ประเพณีที่คนไทย 
จะพร้อมใจกัน เอาขยะไปทิ้งลงแม่น้ำ
ปีละ 1 ครั้ง เพื่อเป็นการขอขมาแม่คงคา
+ http://news.mthai.com/../470650.html
---
ขยะวัฒนธรรม ร่องรอยของบั้งไฟพญานาค อ.รัตนวาปี หนองคาย
+ http://news.mthai.com/../467080.html

อ่านข่าวเรื่อง "พุทธะอิสระ กับ วัดปากน้ำ"
แล้วมาจำลองเป็นตรรกะ  ว่า
ถ้าผู้ใหญ่ ผู้มีอำนาจไปวัดใด พระสงฆ์ในวัดจะมีตำแหน่งสูงขึ้น
สรุปว่าไม่เป็นจริง แต่หากนำความเชื่อมาเขียนเป็นตรรกะ
จะเขียนเป็น equation ตามตรรกะข้างต้น
แต่เขียนเป็นตารางค่าความจริงไม่ได้ เพราะยาวถึง 32 บรรทัด
ได้ว่า x0+x1+x2+x3+x4 = y 
โดย x1=ขุนพล1, x2=ขุนพล2, x3=ขุนพล3, x4=ขุนพล4, 
x0=นายก และ y=ได้ตำแหน่ง
แนะนำเว็บไซต์ (Web Guides)
+ http://kampol.htc.ac.th ***
+ http://www.thaiall.com/assembly/
+ http://www.thaiall.com/pspice/
+ http://www.thaiall.com/assembly/computersim.htm
+ http://www.thaiall.com/assembly/gate.htm
+ http://www.neuroproductions.be/logic-lab/
Gate Sim Application
+ Download Logic Gate Simulator Application
+ Download .NET Framework 4.0
Gate Sim Application
http://sourceforge.net/projects/gatesim/files/

http://www.neuroproductions.be/logic-lab/
หนังสือ ดิจิตอลเทคนิค เล่ม 1
หนังสือดิจิตอลเทคนิค ของ น.อ.ธวัชชัย เลื่อนฉวี พ.ต.อนุรักษ์ เถื่อนศิริ เล่มที่ผมมีพิมพ์ครั้งที่ 15 เมื่อ พฤษภาคม 2543 มี 6 บท ประกอบด้วย 1. ระบบตัวเลข 2. รหัส 3. พีชคณิตบูลีน และการออกแบบวงจรลอจิก 4. แผนผังคาร์โนท์ 5. การเข้ารหัสและการถอดรหัส 6. ฟลิป ฟลอป
เล่ม 2 มี 4 บท ประกอบด้วย 7. การออกแบบวงจร Compination Logic 8. ความรู้เบื้องต้นเกี่ยวกับวงจร Sequential 9. การวิเคราะห์วงจร Synchronous Sequential 10. การออกแบบวงจร Synchronous Sequential
บทที่ 1 พูดเรื่องเลขฐาน แล้วก็พูดถึงเทคโนโลยี ว่าเราใช้ฐาน 2 (Binary number) ฐาน 16 (Hexadecimal number) มีแบบฝึกหัด และตัวอย่างละเอียดมากในบทนี้ ผมว่าต้องมีนักวิชาการนอกสายไอที ตั้งคำถามว่า "ในชีวิตจริงต้องใช้เลขฐานด้วยหราาาา" อยากชวนไปดูหนังเรื่อง "inferno" ชอบคำพูดตอนท้าย ๆ ที่บอกว่า "เธอคิดว่า เธอกู้โลก" ก็จริงนะ แต่ละคนมีวิธีช่วยกู้โลกแตกต่างกันไป พระเอกกู้อีกแบบหนึ่ง
บทที่ 2 แปลงอักษรเป็นตัวเลข ถ้าดูหนังเรื่อง Matrix หรือ Source code Movie จะรู้ว่า ข้อมูล (Data) ที่เราเห็น เข้าใจ และตีความอยู่ ในทางไอที เค้าเก็บ 0 กับ 1 คือด้วยหลักสภาวะทางไฟฟ้า แล้วก็มีการ encode และ decode ตลอดเวลา ซึ่ง BCD (Binary-Coded Decimal) ก็ใช้แทน 0-9 ก็เป็นหัวข้อให้เรียนรู้การเข้ารหัสและถอดรหัสอย่างง่าย ชีวิตจริงใช้ ASCII กับ Unicode ในปัจจุบัน
บทที่ 3 Boolean Algebra สรุปว่าเป็นเรื่องของ และ (and) กับ หรือ (or) แล้วแทนด้วยสัญลักษณ์ที่ชื่อ Gate และ Truth Table อ่านแล้วนึกถึงอดีตของคนเขียนกฎด้านหนึ่ง ในคู่มือสมัยนั้น เค้าเขียนว่า "และ" แต่เจตนารมณ์คือ "หรือ" ซึ่งภาษาไทยก็ยืดหยุ่นครับ เหมือนเขียนว่าวงจรจะส่งสัญญาณ "ออกเป็น 0 และ 1" ซึ่งบางคนจะค้านว่า "ออกเป็น 0 หรือ 1"
บทที่ 4 แผนผังคาร์โนห์ ซึ่งผมชอบบทเรียนนี้ อ่านแล้วสนุก ตีความตามภาพ ออกมาเป็น 0 กับ 1 หรือฟังก์ชันคณิตศาสตร์ที่ซับซ้อนได้เลย เอาเรื่องนี้คุยกับนักศึกษาทีไรก็สนุกครับ เหมือนตาราง XO นั่นหละ ถ้าเป็นตาราง 9 ช่อง มีหลักที่เล่นแล้วไม่มีวันแพ้ มีแต่ชนะ กับเสมอนั่นหละครับ แต่ Karnaugh ไม่ได้มี 9 ช่องนะครับ เค้ามี 4 หรือ 8 หรือ 16 หรือมากกว่านั้น จากที่มาของเลขฐาน 2 ที่กระทำต่อกัน
บทที่ 5 เข้ารหัส (Encode) และถอดรหัส (Decode) คือการแปลงจากรหัสหนึ่งเป็นอีกรหัสหนึ่ง เป็นเรื่องเกี่ยวกับดิจิตอลเทคนิคอย่างชัดเจน ตัวอย่างที่ชัดเลย คือ ส่ง BCD Code แล้วแปลงเป็นเลขฐาน 10 เอาวงจรนี้ไปควบคุมหลอด LED ให้แสดงเลขดิจิตอล ตัวอย่าง ให้นึกถึงเลขดิจิตอลตามสัญญาณไฟจราจรในอดีต ว่าเลข 1 ตัว ใช้หลอดไฟคุม 7 ดวง ถ้าเลข 8 ก็สว่างทุกดวง หัวข้อนี้เหมาะกับคนที่จะต่อยอดทางอิเล็กทรอนิกส์ ผมล่ะนึกถึง อ.ทรงเกียรติ ขึ้นมาเลย เห็นท่านแชร์เรื่อง IoT ตลอด
บทที่ 6 ฟลิป ฟลอป คือวงจรที่มี output เป็น 0 หรือ 1 อีกนั่นหละ เค้าออกแบบ ไว้ 4 แบบที่เล่าในหนังสือเล่มนี้ คือ RS Flip Flop, D Flip Flop, T Flip Flop, JK Flip Flop เพื่อแนะนำว่าแต่ละ Flip Flop มีเงื่อนไขการทำงานอย่างไร อาจนำไปประยุกต์ทำงานกับวงจรที่ใหญ่ขึ้นในอนาคต
เอกสารแนะนำ
เอกสารของ อ.กัมพล ชาญเชิงพานิช ว.เทคนิคหาดใหญ่
วิชา ดิจิตอลเทคนิค (Digital Technique)
mht : ระบบตัวเลข
mht : รหัส (Digital Code)
mht : วงจรอิเล็กทรอนิกส์เกทและดิจิตอลไอซี
mht : พีชคณิตบูลีนและการออกแบบวงจรลอจิก
mht : แผนผังคาร์นอจ์และวงจรคอมบิเนชั่น
mht : การออกแบบวงจรคอมบิเนชั่น
mht : วงจรคอมบิเนชั่นเบื้องต้น
http://kampol.htc.ac.th
เอกสารอ้างอิง [1] น.อ.ธวัชชัย เลื่อนฉวี และพ.ต.อนุรักษ์ เถื่อนศิริ, "ดิจิทอลเทคนิค เล่ม 1", มิตรนราการพิมพ์, 2543. ?
[2] น.อ.ธวัชชัย เลื่อนฉวี, "ดิจิทอลเทคนิค เล่ม 2", มิตรนราการพิมพ์, 2543. ?
[3] ศักดิ์ วาสิกะสิน และชนก หงส์น้อย, "ดิจิตอลคอมพิวเตอร์อิเล็กทรอนิกส์", บริษัท ซีเอ็ดยูเคชั่น จำกัด (มหาชน), 2540.
[4] ธนันต์ ศรีสกุล, "การวิเคราะห์วงจรและอุปกรณ์อิเล็กทรอนิกส์ด้วยโปรแกรม PSpice", กรุงเทพฯ: วิตตี้ กรุ๊ป, 2550.
[5] Steven D. Johnson, "Digital Hardware Design : Chapter 1", indiana.edu, 2004.
http://goo.gl/72BPC