1schematic design : simple logic gates -...

Post on 26-Aug-2018

222 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

1

ใบงานที่ 1 Schematic Design : Simple Logic Gates จุดประสงค 1. ศึกษาขั้นตอนการออกแบบวงจรลอจิกดวยวิธีการเขยีนเปนวงจร Schematic 2. ศึกษาขั้นตอนการวิเคราะหหรือการทํา Simulation 3. ศึกษาขั้นตอนการโปรแกรมและทดลองกับชิพ CPLD บนบอรดทดลอง ทฤษฎีพื้นฐาน การออกแบบวงจรลอจิกดวยวิธีเขียนเปน Schematic diagram เปนวิธีพื้นฐาน การออกแบบดวยวิธีนี้เหมาะสําหรับการออกแบบวงจรขนาดเล็กที่ไมซับซอนมากนัก และจะตองทําการ Simplify ลอจิกมาเรียบรอยแลว หรือหากเปนวงจรขนาดใหญ กจ็ะตองยบุวงจรสวนที่ซับซอนหรืออยูในกลุมเดียวกันเปนโมดูล หรือ Symbol ก็จะทาํใหงายแกการเดนิสายตอวงจร หากมีการตอวงจรทางดาน เอาพุทออกทางขา I/O ของ CPLD วงจรจะตองตอโมดูล OBUF และ OPAD เพื่อทําหนาที่เชื่อมตอวงจรลอจิกที่ออกแบบกับวงจรภายนอก และหากมีการตอวงจรทางดานอินพุทเขาทางขา I/O ของ CPLD วงจรจะตองตอโมดูล IBUF และ IPAD เพื่อทําหนาที่เชื่อมตอวงจรลอจิกทีอ่อกแบบกับวงจรภายนอก จากนั้นตองแปลงไฟลและจําลองเปนตัวชิพเรียกวา Implement เมื่อผานแลวสามารถโปรแกรมโคดนั้นลงในตวัชิพ CPLD โดยใช JTAG Programming ขั้นตอนการใชงานโปรแกรม Schematic Editor , การทํา Simulation เพื่อวิเคราะหและทดสอบการทํางาน โดยวิธีปอนสัญญาณลอจิกเขาที่ขาอินพุท และดผูลที่ขาสัญญาณเอาพุท ใหศกึษาในเอกสารการออกแบบวงจรลอจิกดวยวิธีเขียนเปน Schematic diagram ขั้นตอนปฏิบตั ิ 1. เขาสูโปรแกรม Schematic Editor เขียนวงจรตามทีก่าํหนดแลว Save ไฟล 2. วิเคราะหและทดสอบการทํางานของวงจรที่ออกแบบโดยการวาง Logic Probe ตามตําแหนงขัว้อินพุท และเอาพุทของ Symbol จากนัน้ใหใชโปรแกรมในสวนของ Simulation ทําการวิเคราะหและนําผลการวิเคราะหเขยีนลงใน Truth Table 3. ใชโปรแกรมในสวนของ Implementation เพื่อแปลงวงจรเปนCPLD โคดเพื่อเตรียมโปรแกรมลงตัวชิพ 4. โปรแกรมโคดลงตัวชิพ - ตอไฟดีซีจากอะแด็ปเตอรเขาบอรดทดลอง เปดสวิทชไฟเลี้ยงวงจร - ตอสายโปรแกรมเขากับบอรดทดลอง และพอรทพร้ินเตอร

2

- ใชโปรแกรมในสวนของ Programmer เพื่อเรียก JTAG Programmer และทําการโปรแกรมลงตัวชิพ CPLD - ทดลองปอนสัญญาณอินพุทจากบอรดทดลอง และดูผลเอาพุททางหลอด LED - ใหนําผลทดลองเปรียบเทียบคาในตาราง Truth Table วงจรทดลอง ห

มายเหต ุ 1. ตัวตานทาน หลอดไฟ และสวิทช เปนเพียงอุปกรณกราฟกสจําลอง ไมเกี่ยวของกบัการ Implementation ของวงจรลอจิกที่ออกแบบ

2. การที่มี NOT – Gate ทั้งทางดานอินพุทและเอาพุทก็เพื่อตองการปรับสภาพสัญญาณ ใหทํางานสอดรับกับอุปกรณภายนอกไดแกสวิทช และหลอดไฟ

A3 A0 AND OR NOR NAND XOR 0 0 0 1 1 0 1 1

3

ใบงานที่ 2 Schematic Design : Tri-State, Inverter, Buffer จุดประสงค 1. ศึกษาขั้นตอนการออกแบบวงจรลอจิกดวยวิธีการเขยีนเปนวงจร Schematic 2. ศึกษาการทาํงานของโมดูล Tri-State, Inverter และ Buffer ทฤษฎีพื้นฐาน Buffer เปนอปุกรณทํางานทางลอจิกใชสัญลักษณเชนเดียวกับ Op-Amp ทางอะนาล็อก แตมีอินพุทขาเดยีว มีจุดประสงคการใชงานเพื่อเปนตัวเชื่อมสัญญาณลอจิกทั้งสองสวนเขาดวยกนั หรือปรับสภาพสัญญาณลอจิกใหเขากันไดระหวางวงจรสองวงจร

สัญญลักษณของBuffer

Inverter เปนอุปกรณกลับสญัญาณทางลอจิกใหมีคาตรงกันขามระหวางอินพุท กับเอาพุท

Tri-State logic เปนอุปกรณการทํางานทางลอจิกคลายสวิทชตัดตอวงจร ใชสัญลักษณเดียวกันกับ Buffer แตมีขาควบคุมการตดัตอวงจร การตอวงจรหมายถึงสัญญาณลอจิกทางเอาพทุจะมีคาเดียวกันกับอินพุท การตดัวงจรหมายถงึคาสัญญาณเอาพุทจะมีสภาพเปน High Impedance ไมใชลอจิก 0

สัญญลักษณของ INVERTER

สัญญลักษณของ Tri-State ขั้นตอนปฏิบตั ิ 1. เขาสูโปรแกรม Schematic Editor เขียนวงจรตามทีก่าํหนดแลว Save ไฟล 2. วิเคราะหและทดสอบการทํางานของวงจรที่ออกแบบโดยการวาง Logic Probe ตามตําแหนงขัว้อินพุท และเอาพุทของ Symbol จากนัน้ใหใชโปรแกรมในสวนของ Simulation ทําการวิเคราะหและนําผลการวิเคราะหเขยีนลงใน Truth Table 3. ใชโปรแกรมในสวนของ Implementation เพื่อแปลงวงจรเปนCPLD โคดเพื่อเตรียมโปรแกรมลงตัวชิพ 4. โปรแกรมโคดลงตัวชิพ - ตอไฟดีซีจากอะแด็ปเตอรเขาบอรดทดลอง เปดสวิทชไฟเลี้ยงวงจร - ตอสายโปรแกรมเขากับบอรดทดลอง และพอรทพร้ินเตอร

4

- ใชโปรแกรมในสวนของ Programmer เพื่อเรียก JTAG Programmer และทําการโปรแกรมลงตัวชิพ CPLD - ทดลองปอนสัญญาณอินพุทจากบอรดทดลอง และดูผลเอาพุททางหลอด LED - ใหนําผลทดลองเปรียบเทียบคาในตาราง Truth Table วงจรทดลอง

Truth Table

A3 A0 BUF (P23) INV (P19) Tri-State (P14) 0 0 0 1 1 0 1 1

5

ใบงานที่ 3 Schematic Design : 1-Bit Binary Adder จุดประสงค 1. ศึกษาขั้นตอนการออกแบบวงจรลอจิกดวยวิธีการเขยีนเปนวงจร Schematic 2. ศึกษาการทาํงานของวงจร Half-Adder และ Full-Adder ทฤษฎีพื้นฐาน วงจรบวกเลขฐานสอง สรางมาจากทฤษฎกีารบวกเลขฐานสอง แบงออกเปนแบบคอื Half Adder และ Full Adder Half Adder เปนวงจรบวกเลขไบนารี่ที่ไมไดนําตวัทด(Carry) มาคิดดวย ซ่ึงจะนํามาใชกับการบวกเลขหลักแรก ขั้นตอนปฏิบตั ิ 1. เขาสูโปรแกรม Schematic Editor เขียนวงจรตามทีก่าํหนดแลว Save ไฟล 2. วิเคราะหและทดสอบการทํางานของวงจรที่ออกแบบโดยการวาง Logic Probe ตามตาํแหนงขัว้อินพุท และเอาพุทของ Symbol จากนัน้ใหใชโปรแกรมในสวนของ Simulation ทําการวิเคราะหและนําผลการวิเคราะหเขยีนลงใน Truth Table 3. ใชโปรแกรมในสวนของ Implementation เพื่อแปลงวงจรเปนCPLD โคดเพื่อเตรียมโปรแกรมลงตัวชิพ 4. โปรแกรมโคดลงตัวชิพ - ตอไฟดีซีจากอะแด็ปเตอรเขาบอรดทดลอง เปดสวิทชไฟเลี้ยงวงจร - ตอสายโปรแกรมเขากับบอรดทดลอง และพอรทพร้ินเตอร - ใชโปรแกรมในสวนของ Programmer เพื่อเรียก JTAG Programmer และทําการโปรแกรมลงตัวชิพ CPLD - ทดลองปอนสัญญาณอินพุทจากบอรดทดลอง และดูผลเอาพุททางหลอด LED - ใหนําผลทดลองเปรียบเทียบคาในตาราง Truth Table 5. เมื่อไดผลการทดลองแลว ใหสรางวงจร Full Adder เอง ตาม Hierachy ของโมดูล ADD1

6

วงจรทดลอง Truth table ของ Half Adder

B0 A0 SUM Carry out Truth Table ของ Full Adder

B0 A0 Carry in SUM Carry out

7

ใบงานที่ 4 Schematic Design : 4-Bit Binary Adder จุดประสงค 1. ศึกษาขั้นตอนการออกแบบวงจรลอจิกดวยวิธีการเขยีนเปนวงจร Schematic 2. ศึกษาการทาํงานของวงจร 4-bit Full-Adder ทฤษฎีพื้นฐาน โครงสรางของ 4 – Bit Binary Adder ประกอบดวย วงจร 1 – Bit Full Adder ตอขนานพวงกัน 4 ชุด โดยนําเอาคาตวัทด (Carry) มาคิดดวย

รูปที่ 1 วงจรภายใน 1 – Bit Full Adder

รูปที่ 2 แสดงสัญญลักษณ เมื่อนําวงจร 1 – Bit Full Adder (ตามรูปที่ 1) มาตอพวงกนั 4 ชุด เปน 4 - Bit Full Adder

8

ขั้นตอนปฏิบตั ิ 1. เขาสูโปรแกรม Schematic Editor เขียนวงจรตามทีก่าํหนดแลว Save ไฟล 2. วิเคราะหและทดสอบการทํางานของวงจรที่ออกแบบโดยการวาง Logic Probe ตามตําแหนงขัว้อินพุท และเอาพุทของ Symbol จากนัน้ใหใชโปรแกรมในสวนของ Simulation ทําการวิเคราะหและนําผลการวิเคราะหเปรยีบเทียบกับการบวกตามการคํานวน 3. ใชโปรแกรมในสวนของ Implementation เพื่อแปลงวงจรเปนCPLD โคดเพื่อเตรียมโปรแกรมลงตัวชิพ 4. โปรแกรมโคดลงตัวชิพ - ตอไฟดีซีจากอะแด็ปเตอรเขาบอรดทดลอง เปดสวิทชไฟเลี้ยงวงจร - ตอสายโปรแกรมเขากับบอรดทดลอง และพอรทพร้ินเตอร - ใชโปรแกรมในสวนของ Programmer เพื่อเรียก JTAG Programmer และทําการโปรแกรมลงตัวชิพ CPLD - ทดลองปอนสัญญาณอินพุทจากบอรดทดลอง และดูผลเอาพุททางหลอด LED - ใหนําผลทดลองเปรียบเทียบคาในตาราง Truth Table 5. เมื่อไดผลการทดลองแลว ใหศึกษาและทดลอง Simulation วงจรภายใน ตาม Hierachy ของโมดูล ADD4 วงจรทดลอง

9

ใบงานที่ 5 Schematic Design : 1-Bit Binary Substractor จุดประสงค 1. ศึกษาขั้นตอนการออกแบบวงจรลอจิกดวยวิธีการเขยีนเปนวงจร Schematic 2. ศึกษาการทาํงานของวงจร 1-bit Substractor ทฤษฎีพื้นฐาน วงจรลบเลขไบนารีมี 2 แบบคือ Half Substractor และ Full Substractor เชนเดยีวกันกับวงจรบวกเลข

รูปที่ 1 วงจร Half Substractor 1 bit

รูปที่ 2 วงจร Full Substractor ขนาด 1 bit ในทางปฏิบัตจิะไมใชวงจร Substractor ในการออกแบบหนวยประมวลผลในสวนของ ALU (Arithmatic and Logic Unit) เนื่องจากจะทําใหมีความยุงยากและซับซอนในอุปกรณฮารดแวรเกนิความจําเปน ทั้งนี้เนื่องจากการลบเลขไบนารเีราสามารถใชกรรมวิธีที่สามารถใชกับวงจรบวกเลข ไบนารีได ดวยวีธีของการทาํ 1’ Complementary และ 2’ Complementary ตามใบงานที่ 6 ได

10

ขั้นตอนปฏิบตั ิ 1. เขาสูโปรแกรม Schematic Editor เขียนวงจรตามทีก่าํหนดแลว Save ไฟล 2. วิเคราะหและทดสอบการทํางานของวงจรที่ออกแบบโดยการวาง Logic Probe ตามตําแหนงขัว้อินพุท และเอาพุทของ Symbol จากนัน้ใหใชโปรแกรมในสวนของ Simulation ทําการวิเคราะหและนําผลการวิเคราะหเปรยีบเทียบกับการบวกตามการคํานวน 3. ใชโปรแกรมในสวนของ Implementation เพื่อแปลงวงจรเปนCPLD โคดเพื่อเตรียมโปรแกรมลงตัวชิพ 4. โปรแกรมโคดลงตัวชิพ - ตอไฟดีซีจากอะแด็ปเตอรเขาบอรดทดลอง เปดสวิทชไฟเลี้ยงวงจร - ตอสายโปรแกรมเขากับบอรดทดลอง และพอรทพร้ินเตอร - ใชโปรแกรมในสวนของ Programmer เพื่อเรียก JTAG Programmer และทําการโปรแกรมลงตัวชิพ CPLD - ทดลองปอนสัญญาณอินพุทจากบอรดทดลอง และดูผลเอาพุททางหลอด LED - ใหนําผลทดลองเปรียบเทียบคาในตาราง Truth Table วงจรทดลอง

11

Truth table ของ Half Substractor B0 A0 Diff. out Borrow out

Truth table ของ Full Substractor

B0 A0 Borrow in Diff. out Borrow out 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1

บันทึก

12

ใบงานที่ 6 Schematic Design : 4-Bit Binary Substractor จุดประสงค 1. ศึกษาขั้นตอนการออกแบบวงจรลอจิกดวยวิธีการเขยีนเปนวงจร Schematic 2. ศึกษาการทาํงานของวงจร 4-bit Substractor ทฤษฎีพื้นฐาน ใหศึกษาหลักการลบเลขไบนารี ดวยวิธีทาํ 1’ Complementary และ 2’ Complementary ขั้นตอนปฏิบตั ิ 1. เขาสูโปรแกรม Schematic Editor เขียนวงจรตามทีก่าํหนดแลว Save ไฟล 2. วิเคราะหและทดสอบการทํางานของวงจรที่ออกแบบโดยการวาง Logic Probe ตามตําแหนงขัว้อินพุท และเอาพุทของ Symbol จากนัน้ใหใชโปรแกรมในสวนของ Simulation ทําการวิเคราะหและนําผลการวิเคราะหเปรยีบเทียบกับการบวกตามการคํานวน 3. ใชโปรแกรมในสวนของ Implementation เพื่อแปลงวงจรเปนCPLD โคดเพื่อเตรียมโปรแกรมลงตัวชิพ 4. โปรแกรมโคดลงตัวชิพ - ตอไฟดีซีจากอะแด็ปเตอรเขาบอรดทดลอง เปดสวิทชไฟเลี้ยงวงจร - ตอสายโปรแกรมเขากับบอรดทดลอง และพอรทพร้ินเตอร - ใชโปรแกรมในสวนของ Programmer เพื่อเรียก JTAG Programmer และทําการโปรแกรมลงตัวชิพ CPLD - ทดลองปอนสัญญาณอินพุทจากบอรดทดลอง และดูผลเอาพุททางหลอด LED - ใหนําผลทดลองเปรียบเทียบคาในตาราง Truth Table

13

วงจรทดลอง หมายเหต ุ การบวก หรือ ลบ สามารถควบคุมไดที่ขา Control Logic Logic 1 = การลบ 0 = การบวก Truth table การบวก

Data Input Data Output A3 A2 A1 A0 B3 B2 B1 B0 D3 D2 D1 D0

คําสั่ง ใหกําหนดคา Data input ทั้ง A และ B ตามคาที่เหมาะสมเอาเอง

14

Truth table การลบ

Data Input Data Output A3 A2 A1 A0 B3 B2 B1 B0 D3 D2 D1 D0

คําสั่ง ใหกําหนดคา Data input ทั้ง A และ B ตามคาที่เหมาะสมเอาเอง บันทึก

15

ใบงานที่ 7 Schematic Design : 4-Bit Binary Counter จุดประสงค 1. ศึกษาขั้นตอนการออกแบบวงจรลอจิกดวยวิธีการเขยีนเปนวงจร Schematic 2. ศึกษาการทาํงานของวงจร 4-bit binary Counter แบบตาง ๆ ทฤษฎีพื้นฐาน วงจรนับเลขไบนารีทางฮารดแวรแบงออกเปน 2 แบบคือ วงจรนับแบบอะซิงโครนัส(Asynchronous Binary Counter) และ วงจรนับแบบซิงโครนัส(Synchronous Binary Counter) ทั้งสองแบบใหผลลัพทเดียวกัน แตคุณสมบัตใินการหนวงเวลาตางกันมาก การจะเลือกแบบไหนใชงานขึ้นอยูกับวาจะใชงานที่ความถี่ของสัญญาณ Clock สูงมากแคไหน คือหากใชงานที่ความถี่สูงมากวงจรนับแบบอะซิงโครนสั จะมีผลเสียดานการหนวงเวลามาก ตองใชแบบวงจรนับแบบซิงโครนัส

โครงสรางของวงจรแบบอะซิงโครนัส ประกอบดวย Flip-Flop ตอกันแบบเอาสัญญาณเอาพุท ของ Flip-Flop ตัวแรก ไปเปน Clock ของ Flip-Flop ตัวถัดไป ตามรูปที ่1 ทําใหมีผลถึงการหนวงเวลามาก หากใชตอกันไปหลาย ๆ บิท รูปที่ 1 บล็อกการทํางาน Asynchronous Binary Counter โครงสรางของวงจรแบบซิงโครนัส ประกอบดวยFlip-Flop มีจํานวนตามขนาดบิทของ หลักเลขไบนารี เชนเดียวกับแบบอะซงิโครนัส แตจะแตกตางกันที่ขา Clock ของ Flip-Flop จะไดรับสัญญาณ Clock พรอมกันทาํใหสามารถแกปญหาดานการหนวงเวลาในชวงเวลาการนับไปได ซ่ึงจะทําใหสามารถใชงานที่ความถี่สูงมากได แตจะมีขอยุงยากในการออกแบบวงจรลอจกิควบคุมการนับของ Flip-Flop แตละตัว

รูปที่ 2 บล็อกการทํางาน Synchronous Binary Counter

16

ตัวอยาง วงจรภายในโมดูล Synchronous Binary Counter

รูปที่ 3 แสดงวงจรภายใน 2 – Bit Synchronous Binary Counter จากวงจรภายในโมดูล 2 – Bit Synchronous Binary Counter จะพบวาการออกแบบจะใช D-Flip Flop

โดยมี AND – gate และ EXCLUSIVE-OR – gate เปน Control Logic มีสัญญาณ Clock ตอเขารวมกัน ซ่ึงจะใหเอาพุทเปนเลขไบนารีที่ Q0 และ Q1 รูปที่ 4 แสดงวงจรภายใน 4 – Bit Cascade Synchronous Binary Counter ตามรูปที่ 4 เปนการออกแบบโมดูล Counter แบบ Synchronous ขนาด 4 บิทโดยวธีิการนําเอาโมดูล Synchronous Binary Counter ขนาด 2 บิท(ตามรูปที่ 3) จํานวน 2 ตัวมาตอพวงกนั

17

รูปที่ 5 แสดงโมดูล 4- Bit Synchronous Binary Counter ที่มีวงจรตามรูปที ่4 ขั้นตอนปฏิบตั ิ 1. เขาสูโปรแกรม Schematic Editor เขียนวงจรตามทีก่าํหนดแลว Save ไฟล 2. วิเคราะหและทดสอบการทํางานของวงจรที่ออกแบบโดยการวาง Logic Probe ตามตําแหนงขัว้อินพุท และเอาพุทของ Symbol จากนัน้ใหใชโปรแกรมในสวนของ Simulation ทําการวิเคราะหการทํางานของวงจร Counter 3. ใชโปรแกรมในสวนของ Implementation เพื่อแปลงวงจรเปนCPLD โคดเพื่อเตรียมโปรแกรมลงตัวชิพ 4. โปรแกรมโคดลงตัวชิพ - ตอไฟดีซีจากอะแด็ปเตอรเขาบอรดทดลอง เปดสวิทชไฟเลี้ยงวงจร - ตอสายโปรแกรมเขากับบอรดทดลอง และพอรทพร้ินเตอร - ใชโปรแกรมในสวนของ Programmer เพื่อเรียก JTAG Programmer และทําการโปรแกรมลงตัวชิพ CPLD - ทดลองปอนสัญญาณอินพุทจากบอรดทดลอง และดูผลเอาพุททางหลอด LED วงจรทดลอง ท่ี 1

18

วงจรทดลอง ท่ี 2

มอบหมายงาน เมื่อศึกษาทดลองเขาใจดแีลวใหสรางวงจรนับสิบ Decimal Counter โดยใชโมดูล CD4CE

19

ใบงานที่ 8 Schematic Design : การสรางโมดูลแบบคอมบิเนชั่นลอจิก( 1 ) จุดประสงค 1. ศึกษาขั้นตอนการออกแบบวงจรลอจิกดวยวิธีการเขยีนเปนวงจร Schematic 2. ศึกษาการสรางลอจิกโมดูลดวยวิธีเขียนเปนวงจร Schematic diagram ทฤษฎีพื้นฐาน ใหศึกษาทฤษฎีการสรางลอจิกโมดูลดวยวธีิการเขียนเปน Schematic Diagram กอนปฏิบัติตามใบงาน ขั้นตอนปฏิบตั ิ 1. เขาสูโปรแกรม Schematic Editor สรางลอจิกโมดูลตามวงจรทดลองแลว Save ไฟล 2. วิเคราะหและทดสอบการทํางานของวงจรที่ออกแบบโดยการวาง Logic Probe ตามตําแหนงขัว้อินพุท และเอาพุทของ Symbol จากนัน้ใหใชโปรแกรมในสวนของ Simulation ทําการวิเคราะหการทํางานของวงจร Counter 3. ใชโปรแกรมในสวนของ Implementation เพื่อแปลงวงจรเปนCPLD โคดเพื่อเตรียมโปรแกรมลงตัวชิพ 4. โปรแกรมโคดลงตัวชิพ - ตอไฟดีซีจากอะแด็ปเตอรเขาบอรดทดลอง เปดสวิทชไฟเลี้ยงวงจร - ตอสายโปรแกรมเขากับบอรดทดลอง และพอรทพร้ินเตอร - ใชโปรแกรมในสวนของ Programmer เพื่อเรียก JTAG Programmer และทําการโปรแกรมลงตัวชิพ CPLD - ทดลองปอนสัญญาณอินพุทจากบอรดทดลอง และดูผลเอาพุททางหลอด LED

วงจรในโมดูล

20

วงจรทดลอง

21

ใบงานที่ 9 Schematic Design : การสรางโมดูลแบบคอมบิเนชั่นลอจิก( 2 ) จุดประสงค 1. ศึกษาขั้นตอนการออกแบบวงจรลอจิกดวยวิธีการเขยีนเปนวงจร Schematic 2. ศึกษาการสรางลอจิกโมดูลดวยวิธีเขียนเปนวงจร Schematic diagram ทฤษฎีพื้นฐาน ใหศึกษาทฤษฎีการสรางลอจิกโมดูลดวยวธีิการเขียนเปน Schematic Diagram กอนปฏิบัติตามใบงาน ขั้นตอนปฏิบตั ิ 1. เขาสูโปรแกรม Schematic Editor สรางลอจิกโมดูลตามวงจรทดลองแลว Save ไฟล 2. วิเคราะหและทดสอบการทํางานของวงจรที่ออกแบบโดยการวาง Logic Probe ตามตําแหนงขัว้อินพุท และเอาพุทของ Symbol จากนัน้ใหใชโปรแกรมในสวนของ Simulation ทําการวิเคราะหการทํางานของวงจร Counter 3. ใชโปรแกรมในสวนของ Implementation เพื่อแปลงวงจรเปนCPLD โคดเพื่อเตรียมโปรแกรมลงตัวชิพ 4. โปรแกรมโคดลงตัวชิพ - ตอไฟดีซีจากอะแด็ปเตอรเขาบอรดทดลอง เปดสวิทชไฟเลี้ยงวงจร - ตอสายโปรแกรมเขากับบอรดทดลอง และพอรทพร้ินเตอร - ใชโปรแกรมในสวนของ Programmer เพื่อเรียก JTAG Programmer และทําการโปรแกรมลงตัวชิพ CPLD - ทดลองปอนสัญญาณอินพุทจากบอรดทดลอง และดูผลเอาพุททางหลอด LED วงจรภายในโมดูล

22

วงจรทดลอง

23

ใบงานที่ 10 ABEL - HDL : การสรางโมดูลแบบคอมบิเนชั่นลอจิก( 1 ) ( Basic Logic gates ) จุดประสงค 1. ศึกษาขั้นตอนวิธีการเขียนโปรแกรมภาษา ABEL-HDL 2. ศึกษาการออกแบบวงจร Combination logic ดวยการเขียนโปรแกรมภาษา ABEL-HDL ทฤษฎีพื้นฐาน ใหศึกษาทฤษฎีการสรางลอจิกโมดูลดวยวธีิการเขียนเปน โปรแกรมภาษา ABEL-HDL กอนปฏิบัติตามใบงาน ขั้นตอนปฏิบตั ิ 1. เขาสูโปรแกรม HDL Editor สรางลอจิกโมดูลดวยการเขียนโปรแกรม ABEL-HDL โดยใชวิธีการของ Design WizardแลวSave ไฟล 2. ทดสอบความถูกตองของโปรแกรมแลวใชคําส่ังสรางเปนลอจิกโมดลู ตามรูปที่ 3 3. เปด Schematic Editor เรียก ลอจิกโมดูลที่สรางไว ช่ือ MYGATE3 จาก Symbol Table วิเคราะหและทดสอบการทํางานของวงจรที่ออกแบบโดยการวาง Logic Probe ตามตําแหนงขัว้อินพุท และเอาพุทของ Symbol จากนั้นใหใชโปรแกรมในสวนของ Simulation ทําการวิเคราะหการทํางานของโมดูล 4. ตอขั้ว I/O ตามวงจรดังรูป ที่ 4 5. ใชโปรแกรมในสวนของ Implementation เพื่อแปลงวงจรเปนCPLD โคดเพื่อเตรียมโปรแกรมลงตัวชิพ 6. โปรแกรมโคดลงตัวชิพ - ตอไฟดีซีจากอะแด็ปเตอรเขาบอรดทดลอง เปดสวิทชไฟเลี้ยงวงจร - ตอสายโปรแกรมเขากับบอรดทดลอง และพอรทพร้ินเตอร - ใชโปรแกรมในสวนของ Programmer เพื่อเรียก JTAG Programmer และทําการโปรแกรมลงตัวชิพ CPLD - ทดลองปอนสัญญาณอินพุทจากบอรดทดลอง และดูผลเอาพุททางหลอด LED

24

รูปที่ 1 แสดงวงจรการทํางานภายใน โมดูลที่จะเขยีนเปนภาษา HDL

รูปที่ 2 แสดงโปรแกรมภาษา Abel-HDL ที่ทํางานตาม วงจรรูปที่ 1

module MYGATE3 Title 'MYGATE3' Declarations A PIN; B PIN; AND_OUT PIN istype 'com'; OR_OUT PIN istype 'com'; SUM_OUT PIN istype 'com'; C_OUT PIN istype 'com'; NOT_A PIN istype 'com'; Equations AND_OUT = A & B; OR_OUT = A # B; SUM_OUT = A $ B; C_OUT = A & B; NOT_A = !A; end MYGATE3

รูปที่ 3 แสดงลอจิกโมดูลที่ถูกสราง จากโปรแกรมรูปที่ 2

25

รูปที่ 4 แสดงการตอวงจรเพื่อการทดลองในบอรด

26

ใบงานที่ 11 ABEL - HDL : การสรางโมดูลแบบคอมบิเนชั่นลอจิก( 2 ) ( Digital Comparator Module ) จุดประสงค 1. ศึกษาขั้นตอนวิธีการเขียนโปรแกรมภาษา ABEL-HDL 2. ศึกษาการออกแบบวงจร Combination logic ดวยการเขียนโปรแกรมภาษา ABEL-HDL ทฤษฎีพื้นฐาน หลักการสรางวงจรเปรียบเทยีบเลขไบนารแีบบ Schematic ตองออกแบบใหเลขไบนารีแตละหลักของเลขสองจํานวนเปรยีบเทียบกัน โดยหลักการใช Exclusive – OR gate เปนตัวเปรียบเทียบ ซ่ึงจะใหผลลัพท ออกมาแค เทากัน หรือไมเทากันเทานัน้ แตไมสามารถบอกไดวาจํานวนใดมากกวากนั

รูปที่ 1 แสดงวงจรเปรียบเทียบ 4 – Bit Digital Comparator หากเราจะสรางเปนฮารดแวรแบบ Schematic ใหมีขาแสดงสัญญาณลอจิกวาจํานวนใด มากกวาหรือนอยกวา จะตองใช Logic Gates จํานวนมากและการวิเคราะหออกแบบที่ใชเวลามาก ดังนั้นในทางปฏิบัติจึงใชวธีิออกแบบโดยวิธีการเขยีนเปนโปรแกรมภาษา HDL ดังในใบงานนี ้ ขั้นตอนปฏิบตั ิ 1. เขาสูโปรแกรม HDL Editor สรางลอจิกโมดูลดวยการเขียนโปรแกรม ABEL-HDL โดย ใชวิธีการของ Design WizardแลวSave ไฟล 2. ทดสอบความถูกตองของโปรแกรมแลวใชคําสั่งสรางเปนลอจกิโมดลู ตามรูปที่ 1

27

3. เปด Schematic Editor เรียก ลอจิกโมดูลที่สรางไว ช่ือCOMP จาก Symbol Table วิเคราะหและทดสอบการทํางานของวงจรที่ออกแบบโดยการวาง Logic Probe ตามตําแหนงขัว้อินพุท และเอาพุทของ Symbol จากนั้นใหใชโปรแกรมในสวนของ Simulation ทําการวิเคราะหการทํางานของโมดูล 4. ตอขั้ว I/O ตามวงจรดังรูป ที่ 3 5. ใชโปรแกรมในสวนของ Implementation เพื่อแปลงวงจรเปนCPLD โคดเพื่อเตรียมโปรแกรมลงตัวชิพ 6. โปรแกรมโคดลงตัวชิพ - ตอไฟดีซีจากอะแด็ปเตอรเขาบอรดทดลอง เปดสวิทชไฟเลี้ยงวงจร - ตอสายโปรแกรมเขากับบอรดทดลอง และพอรทพร้ินเตอร - ใชโปรแกรมในสวนของ Programmer เพื่อเรียก JTAG Programmer และทําการโปรแกรมลงตัวชิพ CPLD - ทดลองปอนสัญญาณอินพุทจากบอรดทดลอง และดูผลเอาพุททางหลอด LED

รูปที่ 1 แสดงลอจิกโมดูล3 – Bit Digital Comparator

28

module COMP

Title 'COMP' Declarations A0 PIN; A1 PIN; A2 PIN; B0 PIN; B1 PIN; B2 PIN; GT PIN istype 'com'; EQ PIN istype 'com'; LT PIN istype 'com'; data_a = [A2..A0]; data_b = [B2..B0]; Equations EQ = data_a == data_b; GT = data_a > data_b; LT = data_a < data_b; end COMP

รูปที่ 2 แสดงโปรแกรมสราง

3 – Bit Digital Comparator

รูปที่ 3 แสดงการตอวงจรเพื่อทดลองกับบอรด

29

ใบงานที่ 12 ABEL - HDL : การสรางโมดูลแบบคอมบิเนชั่นลอจิก( 3 ) ( Digital Multiplex / Demultiplex Module ) จุดประสงค 1. ศึกษาขั้นตอนวิธีการเขียนโปรแกรมภาษา ABEL-HDL 2. ศึกษาการออกแบบวงจร Combination logic ดวยการเขียนโปรแกรมภาษา ABEL-HDL เพื่อสรางวงจร Digital multiplex ทฤษฎีพื้นฐาน ใหศึกษาทฤษฎีการสรางลอจิกโมดูลดวยวธีิการเขียนเปน โปรแกรมภาษา ABEL-HDL กอนปฏิบัติตามใบงาน และศึกษาหลักการของ Digital Multiplex ขั้นตอนปฏิบตั ิ 1. เขาสูโปรแกรม HDL Editor สรางลอจิกโมดูลดวยการเขียนโปรแกรม ABEL-HDL โดยใชวิธีการของ Design WizardแลวSave ไฟล 2. ทดสอบความถูกตองของโปรแกรมแลวใชคําส่ังสรางเปนลอจิกโมดลู ตามรูปที่ 1 3. เปด Schematic Editor เรียก ลอจิกโมดูลที่สรางไว ช่ือmux31 จาก Symbol Table วิเคราะหและทดสอบการทํางานของวงจรที่ออกแบบโดยการวาง Logic Probe ตามตําแหนงขัว้อินพุท และเอาพุทของ Symbol จากนั้นใหใชโปรแกรมในสวนของ Simulation ทําการวิเคราะหการทํางานของโมดูล 4. ตอขั้ว I/O ตามวงจรดังรูป ที่ 3 5. ใชโปรแกรมในสวนของ Implementation เพื่อแปลงวงจรเปนCPLD โคดเพื่อเตรียมโปรแกรมลงตัวชิพ 6. โปรแกรมโคดลงตัวชิพ - ตอไฟดีซีจากอะแด็ปเตอรเขาบอรดทดลอง เปดสวิทชไฟเลี้ยงวงจร - ตอสายโปรแกรมเขากับบอรดทดลอง และพอรทพร้ินเตอร - ใชโปรแกรมในสวนของ Programmer เพื่อเรียก JTAG Programmer และทําการโปรแกรมลงตัวชิพ CPLD - ทดลองปอนสัญญาณอินพุทจากบอรดทดลอง และดูผลเอาพุททางหลอด LED - เมื่อศึกษาทดลองเขาใจดแีลวใหทดลองออกแบบวงจร 3-bit 3-to-1 digital demultiplex

30

รูปที่ 1 แสดงลอจิกโมดูล 3-bit 3-to-1 digital MUX.

module mux31 Title 'mux31' Declarations a0 PIN; a1 PIN; a2 PIN; b0 PIN; b1 PIN; b2 PIN; c0 PIN; c1 PIN; c2 PIN; s0 PIN; s1 PIN; y0 PIN istype 'com'; y1 PIN istype 'com'; y2 PIN istype 'com'; data_a = [a2..a0]; data_b = [b2..b0]; data_c = [c2..c0]; data_out = [y2..y0]; select = [s1..s0]; Equations when select == 0 then data_out = data_a; when select == 1 then data_out = data_b; when select == 2 then data_out = data_c; when select == 3 then data_out = data_c; end mux31

รูปที่ 2 แสดงโปรแกรม Abel-HDL 3-bit 3-to-1 digital MUX.

31

รูปที่ 3 แสดงการตอวงเพื่อทดลองกับบอรด

32

ใบงานที่ 13 ABEL - HDL : การสรางโมดูลแบบคอมบิเนชั่นลอจิก( 4 ) ( Memory Address Decoder Module ) จุดประสงค 1. ศึกษาขั้นตอนวิธีการเขียนโปรแกรมภาษา ABEL-HDL 2. ศึกษาการออกแบบวงจร Combination logic ดวยการเขียนโปรแกรมภาษา ABEL-HDL เพื่อสรางวงจร Memory Address decoder ทฤษฎีพื้นฐาน ใหศึกษาทฤษฎีการสรางลอจิกโมดูลดวยวธีิการเขียนเปน โปรแกรมภาษา ABEL-HDL กอนปฏิบัติตามใบงาน

วงจร Memory Decoder ใชสําหรับกําหนดตําแหนง Address ของอุปกรณตอพวงในระบบไมโครโปรเซสเซอร และไมโครคอมพิวเตอร ไดแกตําแหนงหนวยความจําตาง ๆ เชน ROM RAM และอุปกณ I/O ตาง ๆ ตามตัวอยางในใบงานนี้ จะมีสายสัญญาณแอดเดรส 6 เสนในสวนของไบทสูง (High – Order Bits) ไดแก A15 – A10 ปอนเขา Decoder module ตามรูปที่ 1 รูปที่ 1 แสดงตําแหนงแอดเดรส ของ Decoder Module รูปที่ 3 แสดงการกาํหนดชื่อแทนกลุมแอดเดรส

รูปที่ 2 แสดงชวงของตําแหนงแอดเดรส(Address Range) ซ่ึงกําหนดเปนเลขฐานสิบหก(Hex)

33

ขั้นตอนปฏิบตั ิ 1. เขาสูโปรแกรม HDL Editor สรางลอจิกโมดูลดวยการเขียนโปรแกรม ABEL-HDL โดยใชวิธีการของ Design Wizard โดยช่ือโมดูลวา DECODE แลวSave ไฟล 2. ทดสอบความถูกตองของโปรแกรมแลวใชคําสั่งสรางเปนลอจิกโมดลู ตามรูปที่ 1 3. เปด Schematic Editor เรียก ลอจิกโมดูลที่สรางไว ช่ือDECODE จาก Symbol Table วิเคราะหและทดสอบการทํางานของวงจรที่ออกแบบโดยการวาง Logic Probe ตามตําแหนงขัว้อินพุท และเอาพุทของ Symbol จากนั้นใหใชโปรแกรมในสวนของ Simulation ทาํการวิเคราะหการทํางานของโมดูล 4. ตอขั้ว I/O ตามวงจรดังรูป ที่ 5 5. ใชโปรแกรมในสวนของ Implementation เพื่อแปลงวงจรเปนCPLD โคดเพื่อเตรียมโปรแกรมลงตัวชิพ 6. โปรแกรมโคดลงตัวชิพ - ตอไฟดีซีจากอะแด็ปเตอรเขาบอรดทดลอง เปดสวิทชไฟเลี้ยงวงจร - ตอสายโปรแกรมเขากับบอรดทดลอง และพอรทพร้ินเตอร - ใชโปรแกรมในสวนของ Programmer เพื่อเรียก JTAG Programmer และทําการโปรแกรมลงตัวชิพ CPLD - ทดลองปอนสัญญาณอินพุทจากบอรดทดลอง และดูผลเอาพุททางหลอด LED โปรแกรมสราง Address Decoder Module

module decode Title 'decode' Declarations a15 PIN; a14 PIN; a13 PIN; a12 PIN; a11 PIN; a10 PIN; DRAM PIN istype 'com'; IO PIN istype 'com'; ROM2 PIN istype 'com'; ROM1 PIN istype 'com'; X = .x.; Address = [a15,a14,a13,a12, a11,a10,X,X, X,X,X,X, X,X,X,X];

34

โปรแกรมสราง Address Decoder Module (ตอ)

Equations

!DRAM = (Address <= ^hDFFF); !IO = (Address >= ^hE000) & (Address <= ^hE7FF); !ROM2 = (Address >= ^hF000) & (Address <= ^hF7FF); !ROM1 = (Address >= ^hF800);

end decode

โมดูล Dcode ท่ีสรางเสร็จแลว

รูปที่ 4 แสดงโมดูล DECODE ที่สรางเสร็จแลว รูปที่ 5 แสดงการตอ I/O สําหรับทดลองในบอรด

35

ใบงานที่ 14 ABEL - HDL : การสรางโมดูลแบบคอมบิเนชั่นลอจิก( 5 ) ( BCD to LED 7 - Segment Decoder ) จุดประสงค 1. ศึกษาขั้นตอนวิธีการเขียนโปรแกรมภาษา ABEL-HDL 2. ศึกษาการออกแบบวงจร Combination logic ดวยการเขียนโปรแกรมภาษา ABEL-HDL เพื่อสรางวงจร BCD to LED 7-Segment Decoder ทฤษฎีพื้นฐาน ใหศึกษาทฤษฎีการสรางลอจิกโมดูลดวยวธีิการเขียนเปน โปรแกรมภาษา ABEL-HDL ในเรื่องการเขยีนโปรแกรมแบบ Truth Table Equation กอนปฏิบัติตามใบงาน โครงสราง LED 7-Segment ประกอบดวยหลอด LED แตละตัวจะมีรูปรางเปนแทงยาวมาประกอบกันเปนตัวเลข 0 - 9 โดยทั่วไปจะประกอบดวย LED 7 ดวง สวนดวงที่ 8 จะเปนจุดทศนิยม (ตามรูปที่ 1)

รูปที่ 1 แสดงโครงสรางของ LED แบบ Common Anode และ Truth Table แสดง การติดเปนเลข 0 – 9 โดยการปอนลอจิก 0 ที่ แตละ Segment a - g

การตอวงจรใชงานเนื่องจากกระแสไฟทีจ่ะทําใหแตละ Segment ติด จะตองใชถึง 15 - 20 mA ซ่ึง เพียงพอสําหรับที่จะใชขา I/O ของ CPLD ขับไดโดยตรง สวนขา Common หากทกุ Segment ติดเปน เลข 8 จะตองใชกระแสถึง 140 mA เปนอยางนอย ดังนั้นที่ขา Common จึงตองใช Transistor เปนตัวขับแทน (ตามรูปที่ 2) ในการขับแบบตัวเลข 4 หลัก เนื่องจากเราตองเดินสายวงจรตอถึงกันหมดในแตละ Segment a – g ดงันั้นจะตองใชเทคนิคควบคมุใหติดทีละหลักเรียงกันไปอยางเร็ว มากกวา 30 รอบตอนาที จนสายตาเราเห็นเปนติดพรอมกันแบบนิง่สนิท (ตามรูปที่ 3)

36

รูปที่ 2 แสดงการตอวงจรขับหลอด LED 7 – Segment แบบ Common Anode

รูปที่ 3 แสดงการตอวงจร LED 7-Segment แบบ 4 หลักซึ่งแตละขา Common จะมTีransistor ขับเชนเดียวกนักับวงจรในรูปที่ 2

ขั้นตอนปฏิบตั ิ 1. เขาสูโปรแกรม HDL Editor สรางลอจิกโมดูลดวยการเขียนโปรแกรม ABEL-HDL โดยใชวิธีการของ Design Wizard โดยช่ือโมดูลวา BCD2SEG แลวSave ไฟล 2. ทดสอบความถูกตองของโปรแกรมแลวใชคําสั่งสรางเปนลอจิกโมดลู ตามรูปที่ 1 3. เปด Schematic Editor เรียก ลอจิกโมดูลที่สรางไว ช่ือ BCD2SEG จาก Symbol Table วิเคราะหและทดสอบการทํางานของวงจรที่ออกแบบโดยการวาง Logic Probe ตามตําแหนงขัว้อินพุท

37

และเอาพุทของ Symbol จากนั้นใหใชโปรแกรมในสวนของ Simulation ทําการวิเคราะหการทํางานของโมดูล 4. ตอขั้ว I/O ตามวงจรดังรูป ที่ 6 5. ใชโปรแกรมในสวนของ Implementation เพื่อแปลงวงจรเปนCPLD โคดเพื่อเตรียมโปรแกรมลงตัวชิพ 6. โปรแกรมโคดลงตัวชิพ - ตอไฟดีซีจากอะแด็ปเตอรเขาบอรดทดลอง เปดสวิทชไฟเลี้ยงวงจร - ตอสายโปรแกรมเขากับบอรดทดลอง และพอรทพร้ินเตอร - ใชโปรแกรมในสวนของ Programmer เพื่อเรียก JTAG Programmer และทําการโปรแกรมลงตัวชิพ CPLD

- ทดลองปอนสัญญาณอินพุทจากบอรดทดลอง และดูผลเอาพุททางหลอด LED

โปรแกรมสรางโมดูล BCD2SEG

module BCD2SEG Title 'BCD2SEG' Declarations D0 PIN; D1 PIN; D2 PIN; D3 PIN; LED0 PIN istype 'com'; LED1 PIN istype 'com'; LED2 PIN istype 'com'; LED3 PIN istype 'com'; LED4 PIN istype 'com'; LED5 PIN istype 'com'; LED6 PIN istype 'com'; มีตอ

ตอ Equations truth_table ( [D3..D0] -> [LED6..LED0] ) 0 -> ^B1000000; 1 -> ^B1111001; 2 -> ^B0100100; 3 -> ^B0110000; 4 -> ^B0011001; 5 -> ^B0010010; 6 -> ^B0000010; 7 -> ^B1111000; 8 -> ^B0000000; 9 -> ^B0010000; 10 -> ^B0001000; 11 -> ^B0000011; 12 -> ^B1000110; 13 -> ^B0100001; 14 -> ^B0000110; 15 -> ^B0001110; end BCD2SEG

รูปที่ 4 โปรแกรมสรางโมดูล BCD2SEG

38

รูปที่ 5 แสดงโมดูล BCD2SEG ที่สรางจาก โปรแกรมตามรูปที่ 4

รูปที่ 6 แสดงวงจรสําหรับตอทดลองในบอรดทดลอง

39

ใบงานที่ 15 ABEL - HDL : การสรางโมดูลแบบ Sequential Logic( 1 ) ( Universal Binary Counter ) จุดประสงค 1. ศึกษาขั้นตอนวิธีการเขียนโปรแกรมภาษา ABEL-HDL 2. ศึกษาการออกแบบวงจร Sequential logic ดวยการเขยีนโปรแกรมภาษา ABEL-HDL เพื่อสรางวงจร Universal Binary Counter ทฤษฎีพื้นฐาน ใหศึกษาทฤษฎีการสรางลอจิกโมดูลดวยวธีิการเขียนเปน โปรแกรมภาษา ABEL-HDL กอนปฏิบัติตามใบงาน วงจร Universal Binary Counter เปนวงจรนับที่ใหเอาพุทเปนเลขฐานสอง (Binary number) ตัวโครงสรางโดยทั่วไปประกอบดวย ตวัรีจิสเตอรหรือฟลิบ-ฟล็อบที่ประกอบกันเปนวงจรนับโดยการ ปอนสัญญาณนาฬิกา(Clock) เปนจังหวะในการนับ วงจรควบคมุการนับ(Counting control logic)ที่ประกอบดวยการนับ – หยุดนับ นับขึ้น-นับลง การโหลดขอมูลตัวเลขเบื้องตน(Pre – load data) รวมถึงวงจรรีเซ็ต(Reset) ในการออกแบบ วงจรทั้งหมดนี้จะตองอยูในโมดูลเดียวกนั จึงเรียกวา “วงจร Universal Binary Counter”

Pre-load data input

ขาเอาพุท ขาควบคุมการ

โหลด

ขาควบคุมนับ-หยุดนับ, นับขึ้น-ลง

ขาปอนสัญญาณ Clock

ขา Reset รูปที่ 1 ตัวอยางโมดูล Universal Binary Counter การทํางานของ Universal Binary Counter โดยทั่วไปจะแบงการทํางานออกเปน 4 โหมด ไดแก - การโหลดขอมูลตัวเลขจากขาอินพุท(Load Data)

40

- การทํางานนบัขึ้น(Count Up) - การทํางานนบัลง(Count Down) - การหยุดนับหรือคางการนบั(Hold Count) ในการกําหนดลําดับความสําคัญของโหมดการทํางาน - การโหลดขอมูลตองถือเปนความสําคญัสูงสุด - การนับขึน้ - ลงถือเปนความสําคัญอันดับรองลงมา - การนับ - หยุดนับถือเปนความสําคัญอันดับต่ําสุด

รูปที่ 2 แสดงขา I/O และชื่อของ Universal Binary Counter โมดูลที่จะสราง ขั้นตอนปฏิบตั ิ 1. เขาสูโปรแกรม HDL Editor สรางลอจิกโมดูลดวยการเขียนโปรแกรม ABEL-HDL โดยใชวิธีการของ Design Wizard โดยช่ือโมดูลวา UNICNT แลวSave ไฟล 2. ทดสอบความถูกตองของโปรแกรมแลวใชคําสั่งสรางเปนลอจิกโมดลู ตามรูปที่ 3 3. เปด Schematic Editor เรียก ลอจิกโมดูลที่สรางไว ช่ือ UNICNT จาก Symbol Table วิเคราะหและทดสอบการทํางานของวงจรที่ออกแบบโดยการวาง Logic Probe ตามตําแหนงขัว้อินพุท และเอาพุทของ Symbol จากนั้นใหใชโปรแกรมในสวนของ Simulation ทําการวิเคราะหการทํางานของโมดูล 4. ตอขั้ว I/O ตามวงจรดังรูป ที่ 5 5. ใชโปรแกรมในสวนของ Implementation เพื่อแปลงวงจรเปนCPLD โคดเพื่อเตรียมโปรแกรมลงตัวชิพ 6. โปรแกรมโคดลงตัวชิพ - ตอไฟดีซีจากอะแด็ปเตอรเขาบอรดทดลอง เปดสวิทชไฟเลี้ยงวงจร - ตอสายโปรแกรมเขากับบอรดทดลอง และพอรทพร้ินเตอร - ใชโปรแกรมในสวนของ Programmer เพื่อเรียก JTAG Programmer และทําการโปรแกรมลงตัวชิพ CPLD - ทดลองปอนสัญญาณอินพุทจากบอรดทดลอง และดูผลเอาพุททางหลอด LED

41

โปรแกรมสรางโมดูล UNICNT

module UNICNT interface (D3..D0, CLK, RST, LD, UD -> Q3..Q0); Title 'UNICNT' Declarations D0 PIN; D1 PIN; D2 PIN; D3 PIN; RST PIN; CNTEN PIN; LD PIN; U_D PIN; CLK PIN; Q0 PIN istype 'reg'; Q1 PIN istype 'reg'; Q2 PIN istype 'reg'; Q3 PIN istype 'reg'; X,C,Z = .X., .C., .Z.; data = [D3..D0]; count = [Q3..Q0]; MODE = [CNTEN, LD, U_D] ; LOAD = (MODE == [ X , 1, X ]); HOLD = (MODE == [ 0, 0, X ]); UP = (MODE == [ 1, 0, 1 ]); DOWN = (MODE == [ 1 , 0, 0 ]); Equations when LOAD then count := data else when UP then count := count + 1 else when DOWN then count := count - 1 else when HOLD then count := count; count.clk = CLK; count.ar = RST; end UNICNT

รูปที่ 3 โปแกรมสําหรับสรางโมดูล UNICNT

42

รูปที่ 4 แสดงโมดูล UNICNT ที่สรางจากโปรแกรมตามรูปที่ 3

รูปที่ 5 แสดงวงจรการตอ I/O กับโมดูล UNICNT เพือ่ใชทดลองในบอรดทดลอง

43

ใบงานที่ 16 ABEL - HDL : การสรางโมดูลแบบ Sequential Logic( 2 ) ( D-Flip/Flop และ 4-Bit D-Latch ) จุดประสงค 1. ศึกษาขั้นตอนวิธีการเขียนโปรแกรมภาษา ABEL-HDL 2. ศึกษาการออกแบบวงจร Sequential logic ดวยการเขยีนโปรแกรมภาษา ABEL-HDL เพื่อสรางวงจร D-Flip/Flop และ 4 – Bit D-Latch ทฤษฎีพื้นฐาน ใหศึกษาทฤษฎีการสรางลอจิกโมดูลดวยวธีิการเขียนเปน โปรแกรมภาษา ABEL-HDL กอนปฏิบัติตามใบงาน โครงสรางของ D-Flip/Flop ประกอบดวยขา Data input ขา Data output และขาสัญญาณ Clock (ตามรูปที่ 1) การทํางาน ทุกครัง้ที่มีสัญญาณ Clock เขามาที่ขาสัญญาณClock วงจรจะทําการโหลดขอมูลจาก Data input ไปเปน Data output สวน 4-Bit D-Latch เปนการประยุกตนําเอา

รูปที่ 1 D-Flip/Flop รูปที่ 2 4-Bit D-Latch D – Flip/Flop มาตอพวงกนัตามจํานวนบทิที่ตองการ โดยใชขาสัญญาณ Clock รวมกันเพื่อนําไปใชในการเปดประตูสงขอมูลออกสู Data Bus โดยการควบคุมตามจังหวะ Clock ขั้นตอนการปฏิบัต ิ 1. สรางโมดูล D-Flip/Flop ช่ือ DFF ดวยวิธีการเขยีนโปรแกรม ABEL-HDL และศกึษาการทํางานของโมดูล โดยใชโปรแกรมในสวนของ Simulation 2. สรางโมดูล 4-Bit D-Latch ช่ือ DLATCH4 ดวยวิธีการเขียนโปรแกรม ABEL-HDL และศกึษาการทํางานของโมดูล โดยใชโปรแกรมในสวนของ Simulation 3. ตอขา I/O เพื่อโปรแกรมลงตัวชิพและทดสอบการทํางานในบอรดทดลอง

44

โปรแกรมสรางโมดูล DFF รูปที่ 3 โปรแกรมสรางโมดูล DFF

module DFF Title 'DFF' Declarations DATA PIN; CLK PIN; Q PIN istype 'reg'; Equations Q.CLK = CLK; Q := DATA; end DFF

โปรแกรมสรางโมดูล DLATCH4 รูปที่ 4 โปรแกรมสรางโมดูล DLATCH4

module DLATCH4 Title 'DLATCH4' Declarations D0 PIN; D1 PIN; D2 PIN; D3 PIN; CLK PIN; Q0 PIN istype 'reg'; Q1 PIN istype 'reg'; Q2 PIN istype 'reg'; Q3 PIN istype 'reg'; data_in = [D3..D0]; data_out = [Q3..Q0]; Equations data_out.CLK = CLK; data_out := data_in; end DLATCH4

45

การตอวงจรเพือ่ทดลองในบอรดทดลอง

รูปที่ 5 แสดงการ ตอวงจร I/O ของโมดูล DLATCH4 เพื่อทดลองในบอรด

46

ใบงานที่ 17 ABEL - HDL : การสรางโมดูลแบบ Sequential Logic( 3 ) ( Serial – in / Serial – out Shift Register ) จุดประสงค 1. ศึกษาขั้นตอนวิธีการเขียนโปรแกรมภาษา ABEL-HDL 2. ศึกษาการออกแบบวงจร Sequential logic ดวยการเขยีนโปรแกรมภาษา ABEL-HDL เพื่อสรางวงจร Serial in / Serial out Shift Register ทฤษฎีพื้นฐาน ใหศึกษาทฤษฎีการสรางลอจิกโมดูลดวยวธีิการเขียนเปน โปรแกรมภาษา ABEL-HDL กอนปฏิบัติตามใบงาน วงจร Shift Register เปนวงจรจัดการกับขอมูลเกี่ยวกับการเลื่อนขยับ การถายโอน ซ่ึงใชมากในวงจรหนวยประมวลผล โครงสรางโดยทั่วไปประกอบดวย Register หรือ Flip-Flop ตอพวงกนัเพื่อถายโอนขอมูลระหวางกันตามจังหวะClock วงจรShift Register หากแบงชนิดตามฟงชั่นการทํางานจะแบงออกไดดังนี ้ - Serial-in / Serial-out คือขอมูลจะเรียงเขาทางขา Serial input ทีละบิท ตามจังหวะClock และจะใหลออกทางขา Serial-out ทีละบิทตามจังหวะClock เชนกัน - Serial-in / Parallel-out คือขอมูลจะเรียงเขาทางขา Serial input ทีละบิท ตามจังหวะClock แตจะถกูผลักออกทุกบิทที่อยูใน Register แบบขนานโดยสัญญาณClock เปนตัวกําหนดจังหวะ - Parallel-in / Parallel-out คือขอมูลจะถูกโหลดเขาทีเดยีวทุกบิทแบบขนานโดยสัญญาณClock เปนตัวกําหนดจังหวะ และขอมูลทกุบิทจะถูกผลักออกพรอมกนัโดยสัญญาณClock เปนตัวกําหนดจังหวะเชนกัน - Parallel-in / Serial-out คือขอมูลจะถูกโหลดเขาทีเดยีวทุกบิทแบบขนานโดยสัญญาณClock เปนตัวกําหนดจังหวะ แตขอมูลจะถูกขับใหลออกทางขา Serial-out ทีละบิทตามจังหวะClock

มี Shift Register บางตัวสามารถทํางานไดหลายอยางตามที่ไดกลาวมานี้ เราเรียกวา Universal Shift Register

47

สําหรับแบบฝกหัดตามใบงานนี้ จะกําหนดใหออกแบบเปนการทํางานผสมระหวาง Serial-in/Serial-out และ สามาถนําขอมูลออกไดทาง Parallel ดวย โดยมี Register ขนาด 4 บิท ตามรูปที่ 1

รูปที่ 1 Serial-in/Serial-out/Parallel-out Shift Register ขั้นตอนปฏิบตั ิ 1. สรางโมดูล D-Flip/Flop ช่ือ DFF ดวยวิธีการเขยีนโปรแกรม ABEL-HDL และศกึษาการทํางานของโมดูล โดยใชโปรแกรมในสวนของ Simulation 2. สรางโมดูล 4-Bit Shift Register ช่ือ SSHIFT ดวยวธีิการเขียนโปรแกรม ABEL-HDL และศึกษาการทํางานของโมดูล โดยใชโปรแกรมในสวนของ Simulation 3. ตอขา I/O เพื่อโปรแกรมลงตัวชิพและทดสอบการทํางานในบอรดทดลอง โปรแกรมสรางโมดูล SSHIFT

module SSHIFT Title 'SSHIFT' Declarations DIN PIN; CLK PIN; REG0 PIN istype 'reg'; REG1 PIN istype 'reg'; REG2 PIN istype 'reg'; REG3 PIN istype 'reg'; DOUT PIN istype 'reg'; REG = [REG0..REG3,DOUT]; Equations REG.CLK = CLK; REG := [DIN,REG0..REG3]; end SSHIFT

48

รูปที่ 2 การตอวงจร I/O กับโมดูล SSIFT สําหรับการทดลองกับ CPLD ในบอรดทดลอง การทดลอง เมื่อโปรแกรมวงจรลงตัวชิพ CPLD เรียบรอยแลว ใหปอนลอจิก 1 ที่ขา DIN แลวปอน Clock 1 ลูก แลวปอนลอจกิ 0 ที่ขา DIN จากนั้นใหปอน Clock ตอไปเรื่อย ๆ เพื่อศึกษาการทํางานของ Shift Register จากนัน้ใหศกึษาการทํางานแบบนบัวน Ring Counter โดยตอวงจรตามรูปที ่3 และปฏิบัติกับบอรดทดลอง รูปที่ 3 การตอวงจรทดลองเพื่อศึกษาการทํางานนับวนแบบ Ring Counter

49

ใบงานที่ 18 ABEL - HDL : การสรางโมดูลแบบ State Diagram ( Toggle Flip-Flop ) จุดประสงค 1. ศึกษาขั้นตอนวิธีการเขียนโปรแกรมภาษา ABEL-HDL 2. ศึกษาการออกแบบวงจร Sequential logic ดวยการเขยีนState Diagram เพื่อสราง โมดูลการทํางานของ Toggle Flip-Flop ทฤษฎีพื้นฐาน ใหศึกษาทฤษฎีการสรางลอจิกโมดูลดวยวธีิการเขียนเปน State Diagram กอนปฏิบัติ ตามใบงาน โครงสรางของ T – Flip Flop หรือ Toggle Flip-Flop ประกอบดวยขาอินพุทอยางนอย 3 ขาไดแกขา Clock และขา Reset หรือขา Clear และขา T สวนขาเอาพทุมี 2 ขาไดแก Q กับ NOT Q ซ่ึงทั้งสองขาจํามีสัญญาณลอจิกตรงกันขามกันตลอดเวลา การทํางานของ T – Flip Flop เมื่อขา T มีลอจิก 1 ขาเอาพุทจะมีสัญญาณลอจิกสลับกันทุกครั้งที่มสัีญญาณปอนที่ขา Clock แตละลูก แตถาขา T มีลอจิก 0 ขาเอาพุทจะหยุดคาง (Hold) ถึงแมจะมีสัญญาณ Clock ปอนเขามาก็ไมเปลี่ยนแปลง

รูปที่ 1 T – Flip-Flop ขั้นตอนปฏิบตั ิ 1. สรางโมดูล T-Flip/Flop ช่ือ TFF ดวยวิธีการเขยีน State Diagram และศึกษาการทํางานของโมดูล โดยใชโปรแกรมในสวนของ Simulation 2. ตอขา I/O เพื่อโปรแกรมลงตัวชิพและทดสอบการทํางานในบอรดทดลอง

รูปที่ 2 โมดูล TFF

50

State Diagram

คําสั่ง เมื่อสรางโมดูลจาก State Diagram ไดแลว ใหแปลงเปน ABEL – HDL Code เพื่อนํามาศึกษาเปนแนวทางในการเขยีนโปรแกรมแบบ State Equations

51

ใบงานที่ 19 ABEL - HDL : การสรางโมดูลแบบ State Diagram ( JK Flip-Flop ) จุดประสงค 1. ศึกษาขั้นตอนวิธีการเขียนโปรแกรมภาษา ABEL-HDL 2. ศึกษาการออกแบบวงจร Sequential logic ดวยการเขยีนState Diagram เพื่อสราง โมดูลการทํางานของ JK Flip-Flop ทฤษฎีพื้นฐาน ใหศึกษาทฤษฎีการสรางลอจิกโมดูลดวยวธีิการเขียนเปน State Diagram กอนปฏิบัติ ตามใบงาน โครงสรางของ JK-Flip-Flop ประกอบดวยขา อินพุทอยางนอย 4 ขา ไดแก ขา J , K , Clock และขา Reset หรือ Clear สวนขาเอาพุทมี 2 ขา คือ Q กับ NOT Q ซ่ึงทั้งสองจะมีคาลอจิกตรงกันขามกันเสมอ การทํางานของ JK-Flip-Flop อยูภายใตเงือ่นไขของสภาวะดังนี้ คือ - สภาวะ Toggle คือ ถาขา J และ K มีคาลอจิก 1 จะทําใหขาเอาพุทสลับกันทุกครั้งที่มีสัญญาณ Clock เขามาแตละลูก - สภาวะ Pre - set คือ ถาขา J มีคาเปน 1 ขา K มีคาเปน 0 จะทําใหขาเอาพุท Q มีคา 1 และ ขา NOT Q มีคาเปน 0 เมือ่มีสัญญาณ Clock ลูกแรกเขามา และจะอยูในสภาวะนี้ตลอดไป - สภาวะ Reset คือ ถาขา J มีคาเปน 0 ขา K มีคาเปน 1 จะทําใหขาเอาพุท Q มีคา 0 และ

ขา NOT Q มีคาเปน 1 เมือ่มีสัญญาณ Clock ลูกแรกเขามา หรือมีสัญญาณจากขา Clear เขามาและจะอยูในสภาวะนี้ตลอดไป รูปที่ 1 แสดงขาของโมดูล JK Flip – Flop ขั้นตอนปฏิบตั ิ 1. สรางโมดูล JK-Flip/Flop ช่ือ JKFF ดวยวิธีการเขียน State Diagram และศึกษาการทํางานของโมดูล โดยใชโปรแกรมในสวนของ Simulation 2. ตอขา I/O เพื่อโปรแกรมลงตัวชิพและทดสอบการทํางานในบอรดทดลอง

52

State Diagram ของ JK Flip-Flop

รูปที่ 2 แสดง State Diagram การทํางานของ JK Flip-Flop วงจร I/O สําหรับตอทดลองในบอรดทดลอง รูปที่ 3 แสดงการตอวงจร I /O ทดลองในบอรดทดลอง CPLD

53

ใบงานที่ 20 ABEL - HDL : การสรางโมดูลแบบ State Diagram ( โมดูลควบคุมไฟวิ่ง 4 จังหวะ ) จุดประสงค 1. ศึกษาขั้นตอนวิธีการเขียนโปรแกรมภาษา ABEL-HDL 2. ศึกษาการออกแบบวงจร Sequential logic ดวยการเขยีนState Diagram เพื่อสราง โมดูลควบคุมไฟวิ่ง ทฤษฎีพื้นฐาน ใหศึกษาทฤษฎีการสรางลอจิกโมดูลดวยวธีิการเขียนเปน State Diagram กอนปฏิบัติ ตามใบงาน โครงสรางของโมดูลควบคุมไฟวิ่ง 4 จังหวะประกอบดวยขาอนิพุท 3 ขาไดแก

- CLK สําหรับปอนสัญญาณนาฬิกาเขาเพื่อควบคุมจังหวะการวิ่งของหลอดไฟ - CLR สําหรับกลับมาเริ่มตนใหม - DIR สําหรับควบคุมการวิ่งเดนิหนา และถอยหลัง

สวนขาเอาพุททั้ง 4 ขา ใชในการไปควบคุมการติดการดับของหลอดไฟทั้ง 4 ชุด ใหเปนจังหวะการวิ่ง เดินหนาและถอยหลัง ขาเอาพุททั้ง 4 ขาสามารถนําไปขับอุปกรณ AC Solid State Relay เพื่อนําไปขับไฟราวใหวิ่งตามจังหวะควบคุมได ขั้นตอนปฏิบตั ิ 1. สรางโมดูลไฟวิ่ง 4 จังหวะ ช่ือ LIGHT4 ดวยวิธีการเขียน State Diagram และศึกษาการทํางานของโมดูล โดยใชโปรแกรมในสวนของ Simulation

2. ตอขา I/O เพื่อโปรแกรมลงตัวชิพและทดสอบการทํางานในบอรดทดลอง รูปที่ 1 โมดูลไฟวิ่ง 4 จังหวะ

54

State Diagram สําหรับสรางโมดูลไฟวิง่ 4 จังหวะ รูปที่ 2 State Diagram ของโมดูลไฟวิ่ง 4 จังหวะ LIGHT4 รูปที่ 3 การตอวงจรเพื่อทดลองในบอรด CPLD

55

ใบงานที่ 21 ABEL - HDL : การสรางโมดูลแบบ State Diagram ( โมดูลควบคุมไฟสัญญาณจราจร ) จุดประสงค 1. ศึกษาขั้นตอนวิธีการเขียนโปรแกรมภาษา ABEL-HDL 2. ศึกษาการออกแบบวงจร Sequential logic ดวยการเขยีนState Diagram เพื่อสราง โมดูลควบคุมไฟสัญญาณจราจร ทฤษฎีพื้นฐาน ใหศึกษาทฤษฎีการสรางลอจิกโมดูลดวยวธีิการเขียนเปน State Diagram กอนปฏิบัติ ตามใบงาน โครงสรางของโมดูลควบคุมระบบไฟสัญญาณจราจรทีอ่อกแบบประกอบดวยขาอนิพุท 4 ขาคือ - CLK เปนขาที่ใชปอนสัญญาณนาฬิกาเขาไปควบคุมจังหวะการเปลี่ยนสัญญาณไฟ - CLR เปนขาที่ตองการใหระบบกลับมาเริ่มตนใหม - GGN เปนขาที่ตองการควบคุมใหจังหวะไฟเขยีวคางไวตามระยะเวลาที่ตองการ - RRD เปนขาที่ตองการควบคุมใหจังหวะไฟแดงคางไวตามระยะเวลาที่ตองการ สวนขาเอาพุทมี 3 ขาคือ ขาเปดสัญญาณไฟแดง (RD) ขาเปดสัญญาณไฟเขยีว(GN) ขาเปดสัญญาณไฟเหลือง(YL) การทํางานของระบบควบคุมมีดังตอไปนี ้ - เมื่อกดสัญญาณขา CLR เปนลอจิก 0 จะทําใหการทํางานมาอยูที่ State ไฟแดงเมื่อมีสัญญาณ Clock เขามาและจะคางอยูจนขา CLR เปนลอจิก 1 - ขณะที่อยูใน State ไฟแดง ระบบจะรอจนกวาจะมสัีญญาณ Clock ลูกที่ 8 จึงจะเปลี่ยนไปทํางานใน State ไฟเขียว แตหากระหวางรออยูนั้น ถากดใหขา RRD เปนลอจิก 0 ระบบก็จะคางอยทูี่ไฟแดงตลอดไปนานจนกวาจะเปนลอจกิ 1 - ขณะที่อยูใน State ไฟเขียว ระบบจะรอจนกวาจะมีสัญญาณ Clock ลูกที่ 12 จึงจะเปล่ียนไปทํางานใน State ไฟเหลือง แตหากระหวางรออยูนั้น ถากดใหขา GGN เปนลอจิก 0 ระบบก็จะคางอยูทีไ่ฟเขียวตลอดไปนานจนกวาจะเปนลอจิก 1 - ขณะที่อยูใน State ไฟเหลอืง ระบบจะรอจนกวาจะมีสัญญาณ Clock ลูกที่ 14 หรือขา CLR เปนลอจิก 0 จึงจะเปลีย่นไปทํางานใน State ไฟแดง

รูปที่ 1 โมดูลควบคุมไฟสัญญาณจราจร

56

ขั้นตอนปฏิบตั ิ 1. สรางโมดูลไฟสัญญาณจราจร ช่ือ TRAFFIC ดวยวิธีการเขียน State Diagram และศึกษาการทํางานของโมดูล โดยใชโปรแกรมในสวนของ Simulation 2. ตอขา I/O เพื่อโปรแกรมลงตัวชิพและทดสอบการทํางานในบอรดทดลอง State Diagram การทํางานของโมดูล TRAFFIC

รูปที่ 2 State Diagram โมดูลควบคุมระบบไฟสัญญาณจราจร

57

รูปที่ 3 การตอวงจรทดลองในบอรด CPLD

58

ภาคผนวก

59

บอรดทดลอง CPLD รุน SE-C95108-S

วงจรโปรแกรมตัวชิพ CPLD

60

วงจร Clock Generator วงจร Oscillator Module

วงจร Tac SW และ DIP SW วงจร A/D

61

วงจร D/A แบบ R-2R Ladder วงจร Logic Pulser

วงจร LED 7-Segment แบบ 4 หลัก วงจร 8 – Bit LED Display

top related