combinational circuit design with programmable logic devices

49
Combinational Circuit Design with Programmable Logic Devices 287 บทที6 Combinational Circuit Design with Programmable Logic Devices 6.1 Semicustom Logic Devices จํานวนของ circuit package (ชิปไอซี ) ถูกทําใหลดลงโดยการลดจํานวนระดับของ integration ซึ่งเปนจํานวนของเกตตอชิป กวา 20 ปที่ผานมา จํานวนเกตที่มีอยูบนชิปเดี่ยว (single chip) เพิ่มขึ้นจากจํานวน2-3เกต ใน logic device ตามมาตรฐาน 7400 Series SSI เปนจํานวน มากกวา 1 ลาน อุปกรณ ในชิป VLSI ซึ่งมีสมรรถนะสูงในปจจุบัน โดยปกติแลวระดับของ integration ที่สูงขึ้นจะชวยลดพื้นที่ของแผนวงจร (PCB) และลดพลังงานที่ตองการใช มีวิธีการนํา digital LSI logic circuit ไปประยุกตใช 3 วิธี ดวยสวนประกอบตามมาตรฐาน SSI, MSI และ LSI และดวยอุปกรณ full-custom VLSI หรือดวยอุปกรณ semicustom ฟงกชั่นตาม มาตรฐาน SSI, MSI และ LSI มีความสะดวก เนื่องจากวงจรสามารถถูกประกอบไดอยางรวดเร็ว ดวยชิ้นสวนที่สามารถหาซื้อไดงาย อยางไรก็ตามจํานวนรวมของชิ้นสวนที่ใช จะทําใหคาใชจายทีเกิดขึ้นตอเกตสูงมากถึงขนาดที่ไมสามารถยอมรับได การรวมกันออกแบบใหเปนอุปกรณ custom หรือ semicustom เพียงชิ้นเดียว หรือมากกวาหนึ่งชิ้น ซึ่งสามารถลดจํานวนชิ้นสวน ทั้งนี้จะให ความสําคัญที่คาใชจายโดยรวมที่เกิดขึ้น ในการออกแบบ full-custom นั้น IC ไดถูกออกแบบทีละเกต ดวยการจัดวาง (layout)ชิ้นสวนประกอบตามลักษณะทางกายภาพ จากนั้นจะพัฒนาการติดตอระหวางเกต โดยการ ใชคอมพิวเตอรชวยในการออกแบบ (CAD) จะทําใหการทํางานของวงจรและพื้นที่ในการใช ซิลิกอนมีความเหมาะสมมากที่สุด แมวกระบวนการออกแบบจะมีคาใชจายสูงและใหเวลานานก็ ตาม การใชอุปกรณ semicustom circuit จะลดเวลาการออกแบบโดยการออกแบบเกตแอเรขึ้นมา กอน และใชเซลลมาตรฐาน หรืออุปกรณที่สามารถโปรแกรมได เกตอารเรยคือ ไอซี ทีประกอบดวยจํานวนเกตที่ไมไดมีการเชื่อมตอ ผูออกแบบตองการเพียงระบุถึงวิธีการติดตอระหวาง เกตบนอารเรยเทานั้น ในการผลิตอุปกรณนี้ไดแบงเปน 2 ระยะ ในระยะแรกทําการเชื่อมตอเกตและ จัดเก็บชิป ระยะสุดทายทําการเชื่อมตอระหวาง layer ของ IC ที่ไดขึ้นรูปไว นอกจากนี้จํานวนชิป ทั้งหมด การลดลงของเวลาการผลิตอยางนาพอใจ อารเรยจํานวนมากถูกดําเนินการ โดยมีการ เชื่อมตอระหวางชั้น (layer) ใหติดกัน และจากนั้นจะถูกเก็บไวเพื่อรอการนําไปใช เซลลมาตรฐาน (standard cell) เปนวงจรที่ไดรับการพัฒนาขึ้นและเก็บไวใน design library กับเซลลมาตรฐานอื่นๆ ผูออกแบบทําการประดิษฐ IC โดยการเลือกเซลลจาก library , การระบุ ตําแหนงของเซลลที่จะวางบน IC และจากนั้น ทําการเขียนวิธีที่จะทําใหเซลลเชื่อมตอกัน

Upload: others

Post on 22-Dec-2021

6 views

Category:

Documents


0 download

TRANSCRIPT

Combinational Circuit Design with Programmable Logic Devices 287

บทที่ 6 Combinational Circuit Design with Programmable Logic Devices

6.1 Semicustom Logic Devices

จํานวนของ circuit package (ชิปไอซี) ถูกทําใหลดลงโดยการลดจํานวนระดับของ integration ซ่ึงเปนจํานวนของเกตตอชิป กวา 20 ปที่ผานมา จํานวนเกตที่มีอยูบนชิปเดี่ยว (single chip) เพิ่มขึ้นจากจํานวน2-3เกต ใน logic device ตามมาตรฐาน 7400 Series SSI เปนจํานวนมากกวา 1 ลาน อุปกรณ ในชิป VLSI ซ่ึงมีสมรรถนะสูงในปจจุบัน โดยปกติแลวระดับของ integration ที่สูงขึ้นจะชวยลดพื้นที่ของแผนวงจร (PCB) และลดพลังงานที่ตองการใช

มีวิธีการนํา digital LSI logic circuit ไปประยุกตใช 3 วิธี ดวยสวนประกอบตามมาตรฐาน SSI, MSI และ LSI และดวยอุปกรณ full-custom VLSI หรือดวยอุปกรณ semicustom ฟงกช่ันตามมาตรฐาน SSI, MSI และ LSI มีความสะดวก เนื่องจากวงจรสามารถถูกประกอบไดอยางรวดเร็วดวยช้ินสวนที่สามารถหาซื้อไดงาย อยางไรก็ตามจํานวนรวมของชิ้นสวนที่ใช จะทําใหคาใชจายที่เกิดขึ้นตอเกตสูงมากถึงขนาดที่ไมสามารถยอมรับได การรวมกันออกแบบใหเปนอุปกรณ custom หรือ semicustom เพียงชิ้นเดียว หรือมากกวาหนึ่งชิ้น ซ่ึงสามารถลดจํานวนชิ้นสวน ทั้งนี้จะใหความสําคัญที่คาใชจายโดยรวมที่เกิดขึ้น

ในการออกแบบ full-custom นั้น IC ไดถูกออกแบบทีละเกต ดวยการจัดวาง(layout)ช้ินสวนประกอบตามลักษณะทางกายภาพ จากนั้นจะพัฒนาการติดตอระหวางเกต โดยการใชคอมพิวเตอรชวยในการออกแบบ (CAD) จะทําใหการทํางานของวงจรและพื้นที่ในการใชซิลิกอนมีความเหมาะสมมากที่สุด แมวกระบวนการออกแบบจะมีคาใชจายสูงและใหเวลานานก็ตาม การใชอุปกรณ semicustom circuit จะลดเวลาการออกแบบโดยการออกแบบเกตแอเรขึ้นมากอน และใชเซลลมาตรฐาน หรืออุปกรณที่สามารถโปรแกรมได เกตอาร เรยคือ ไอซี ที่ประกอบดวยจํานวนเกตที่ไมไดมีการเชื่อมตอ ผูออกแบบตองการเพียงระบุถึงวิธีการติดตอระหวางเกตบนอารเรยเทานั้น ในการผลิตอุปกรณนี้ไดแบงเปน 2 ระยะ ในระยะแรกทําการเชื่อมตอเกตและจัดเก็บชิป ระยะสุดทายทําการเชื่อมตอระหวาง layer ของ IC ที่ไดขึ้นรูปไว นอกจากนี้จํานวนชิปทั้งหมด การลดลงของเวลาการผลิตอยางนาพอใจ อารเรยจํานวนมากถูกดําเนินการ โดยมีการเชื่อมตอระหวางชั้น (layer) ใหติดกัน และจากนั้นจะถูกเก็บไวเพื่อรอการนําไปใช

เซลลมาตรฐาน (standard cell) เปนวงจรที่ไดรับการพัฒนาขึ้นและเก็บไวใน design library กับเซลลมาตรฐานอื่นๆ ผูออกแบบทําการประดิษฐ IC โดยการเลือกเซลลจาก library , การระบุตําแหนงของเซลลที่จะวางบน IC และจากนั้น ทําการเขียนวิธีที่จะทําใหเซลลเชื่อมตอกัน

288 Digital Logic Circuit Analysis and Design

กระบวนการนี้ก็เหมือนกับการออกแบบแผนวงจรดวยชุด SSI/MSI/LSI ความซับซอนของฟงกช่ัน(การทํางาน)ใน cell library มาตรฐาน ซ่ึงสามารถเปนไปไดตั้งแตเกตเดี่ยวๆ จนถึง microprocessor ทั้งอัน อีกทั้งยังมีวงจรที่ซับซอนอื่นๆ การออกแบบเซลลมาตรฐานสวนใหญแลวมีความเหมาะสมนอยกวาการออกแบบ full-custom แตเวลาการออกแบบถูกลดลงมาก IC ที่ไดยังคงตองถูกขึ้นรูปจากการทําใหเปนรอย (scratch) ราวกับวาเปนการออกแบบ full-custom นั่นคือช้ัน(layer)ทั้งหมดตองการที่จะทําใหชิปสําหรับใหแตละคนนําไปประยุกตใชในงานเฉพาะอยาง

ขั้นตอนการขึ้นรูปเพื่อเปนอุปกรณสําหรับแตละบุคคลจะสามารถเลี่ยงไดโดยการใช programmable logic device (PLD) PLD คือ IC ที่ไดขึ้นรูปไวกอนแลวโดยไดทําการรวม flexible interconnection layer เขาไปดวย PLD ประกอบดวยทรัพยากรที่จําเปนในการรับรูถึงการแสดงการเปดปดวงจร(การสวิตซ)สองระดับแรก และมักจะรวมสวนประกอบอื่นๆ เขาไปดวย เพื่อใหมีปริมาณ(ผลลัพธ)มากเทากับเกตหลายพันตัวบน PLD เพียงหนึ่งตัว วงจร PLD ไดรับการพัฒนาโดยการออกแบบการแสดงทางตรรก (logic expression) การแปล logic expression ไปสูรูปแบบของ PLD เปาหมายและจากนั้นติดตั้ง logic expression ลงบน PLD โดยโปรแกรมเมอร ดังนั้นอุปกรณการทํางานจะสามารถถูกผลิตจากการออกแบบในไมกี่นาทีเทานั้น ยิ่งไปกวานั้นจํานวนวันหรือสัปดาหที่ตองการในการผลิต เกตอารเรย หรือ standard cell IC ถาตองการที่จะเปลี่ยนการออกแบบก็สามารถทําไดอยางรวดเร็วและการนําไปประยุกตใหกไมเปลืองคาใชจายสามารถทําขึ้นไดภายในไมกี่นาทีหรือช่ัวโมง

6.2 Logic Array Circuit วงจร Programmable logic arrayจะมีโครงสรางหรือมีรูปลักษณภายในเปนการดําเนินการ

ของลอจิก AND และ OR ในหวัขอนี้เราสามารถตรวจสอบโครงสรางพื้นฐานและการดําเนินการของวงจรนี้รวมถึง เครื่องมือที่จะทําใหมันสามารถโปรแกรมไดโดยผูออกแบบสวิตซช่ิงฟงกชัน 6.2.1 Diode Operation in Digital Circuits Programmable logic devices ทั้งหลายมีรูปลักษณที่สรางมาจากสารกึง่ตัวนําเชน ไดโอด , ทรานซิสเตอร หรือสวนประกอบที่คลายกนั , PN ไดโอดเปนอุปกรณทางอิเล็กทรอนิกสซ่ึงสรางขึ้นจากรอยตอของสารกึ่งตัวนํา 2 ชนิดคือ ชนิด P และชนิด N ซ่ึงแสดงดงัรูปที่ 6.1 สารกึ่งตัวนําคืออุปกรณที่สารมารถจํากัดการไหลของกระแสไฟฟาไดดกีวาวัสดุที่เปนฉนวนเชนยางแตไมมีคุณภาพดีไปกวา ตัวนาํ เชนทองแดง สาร P และ N เปนตัวแสดงใหรูถึงการเปน ขั้วบวกหรือลบ ในการบรรจุกระแสไฟฟาที่ผานตัวมัน การทํางานของไดโอดจะมีลักษณะเหมือนกับสวิตซในอุดมคติ เมือ่มีแรงดันไฟฟาตกครอมไดโอด จะทําใหดาน P (แอโนด) มีคาเปนบวก เมื่อเทียบกับดาน N (แคโทด) ไดโอดนี้เรียกวา ฟอรเวิรดไบแอส ซ่ึงเปรียบไดกับการเปดสวิตซหรือการช็อตวงจรและฟอรเวิรดไบแอสนี้จะทาํใหเกดิแรงดนัตกครอมไดโอดประมาณ 0 โวลท เมือ่แคโทดไดรับแรงดันเปนบวก

Combinational Circuit Design with Programmable Logic Devices 289

เมื่อเทียบกับ แอโนด เราจะเรียกไดโอดนีว้า รีเวิรดไบแอส ซ่ึงมีพฤติกรรมเหมือนการเปดวงจรเปนผลทําใหเกิดแรงดันตกครอมไดโอดมาก รูป 6.1 รอยตอ PN และ สัญลักษณไดโอด

ในการประยุกตใชในวงจรดิจิตอล ปลายขางหนึ่งของไดโอดจะเชื่อมตอกับแหลงจายกระแสไฟฟาหรือ กราวด โดยผานทางตัวตานทาน ซ่ึงแสดงในรูป 6.2 a และ d ปลายดานอื่นสามารถควบคุมโดยสัญญาณดิจิตอล สําหรับ ฟอรเวิรด หรือ รีเวิรดไบแอส ไดโอดอยางใดอยางหนึ่ง ถาพิจารณาการทํางานของวงจรในรูป 6.2a เมื่อสัญญาณ A มีลอจิกเปน 1 (แรงดันบวก) ไดโอดจะรีเวิรดไบแอส และมีพฤติกรรมเหมือนวงจรเปด ซ่ึงมีรูปประกอบในรูปที่ 6.2b ในกรณีนี้สัญญาณในเสน B จะถูกดึงขึ้นโดยตัวตานทานไปยังแหลงจายแรงดันไฟฟา เปนการทําใหสัญญาณ B มีลอจิกเทากับ 1 เมื่อ A มีลอจิก 0 ( 0 โวลท) ไดโอดจะกลายเปน ฟอรเวิรดไบแอส ดังนั้นจะเริ่มนํากระแสมีพฤติกรรมเหมือนการปดวงจร ดังแสดงในรูป 6.2c ซ่ึงเปนการทําใหแรงดันที่จุด B มีลอจิกเปน 0 รูปที่ 6.2d , e และ f เปนรูปที่แสดงผลลัพธเมื่อมีตัวตานทานตอลงกราวด

290 Digital Logic Circuit Analysis and Design

รูปที่ 6.2 การทํางานของ PN ไดโอดสําหรับการประยุกตใชในดิจิตอล (a) กับตัวตานทาน pull-up (b) Reverse – biased :ไดโอดเปด; B pulled up เปน 1 (c) Forward-biased:ไดโอดช็อต, ทําให B เปน 0 (d) กบัตัวตานทาน pull- down (e) Reverse biased : ไดโอดเปด ; B pulled down เปน 0 (f) Forward biased: ไดโอด ช็อต , ทําให B เปน 1 6.2.2 AND and OR Logic Arrays

พฤติกรรมที่จะพบไดในสวติซช่ิงฟงกชัน ซ่ึงดําเนินการโดย PN ไดโอดแสดงไดดังนี ้สําหรับตัวอยาง วงจรรูปที่ 6.3a เปนการแสดงใหเขาใจถึง AND ฟงกชันดวย 3 อินพุตคือ A, Bและ C ส่ิงที่ตรวจสอบความถูกตองของวงจรนี้คือ ตารางความจริง (truth table) เมื่อ ABC = 111 ไดโอดทั้งสามตัวจะเปดหรือทํางาน และเอาตพตุจะมีลอจิกเปน 1 ดังแสดงในรูป 6.3b ถาA เปลี่ยนเปน 0 ไดโอดจะกลายเปนช็อตหรือทํางาน จะไดเอาตพุตเปนลอจิก 0 ดังแสดงในรูป 6.3c ซ่ึงไดโอดอีก 2 ตัวยังคงเปดอยูมันกจ็ะไมมผีลกระทบตอเอาตพตุ ซ่ึงผลลัพธจะถูกตองเหมือนกนัดวยเมื่อ ABC = 101 และ ABC = 110 เมื่ออินพุตมากกวา 1 มีลอจิกเปน 0 ไดโอดจะช็อตและเอาตพุตจะไดเหมือนกนัคือ ลอจิก 0 ดังแสดงในรูป 6.3d ดังนั้นวงจรที่แสดงทั้งหมดเปนของฟงกชัน AND 3 อินพุต เพื่อเปนการประเมนิผลเพื่อตรวจสอบความถูกตองของวงจรควรมีการขยายจํานวนไดโอดเปน K ตัวไดเพื่อที่จะเปนฟงกชัน K อินพุต

Combinational Circuit Design with Programmable Logic Devices 291

รูปที่ 6.3 ฟงกชัน AND กับไดโอดอารเรย (a) รูปแบบพื้นฐาน (b) ไดโอดเปด :f เปน 1 (c)1ไดโอดช็อต ,f คือ 0 (d) ไดโอดหลายตวัช็อต ,f เปน 0 รูปที่ 6.4 ฟงกชัน OR กับไดโอดอารเรย (a) รูปแบบพื้นฐาน (b) ไดโอดทุกตัวเปด :f เปน 0 (c)1ไดโอดช็อต ,f คือ 1

เพื่อความเขาใจในฟงกชัน OR จะแสดงวงจรใหเห็นดังรูป 6.4a ในวงจรนี้เมื่อ ABC = 000

ไดโอดทั้งสามตัวจะเปดและเอาตพุตจะไดลอจิก 0 ดังแสดงในรูป 6.4b เมื่อ ABC = 100 ซ่ึงแสดงในรูป 6.4c ไดโอด A จะตอหรือนํากระแสไฟฟา (มีพฤติกรรมเปนช็อตวงจร) เอาตพุตที่ไดจะมีลอจิกเปน 1 สวนไดโอดอีกสองตัวยังคงเปดอยู ซ่ึงมันจะไมมีผลกระทบตอเอาตพุต ซ่ึงเอาตพุตจะยังมีลอจิกเปน 1 เมื่ออินพุตตัวอ่ืนมีคาลอจิกเปน 1 ดวย ดังนั้นวงจรนี้เปนการอธิบายถึงฟงกชัน OR 3อินพุต วงจรนี้สามารถขยายไดเปน K อินพุตฟงกชันโดยใชไดโอด K ตัว

6.2.3 Two – Level AND – OR Arrays

วงจร AND และ OR ที่อธิบายไปแลวขางตนสามารถนํามาเกี่ยวของกนัในวิธีการของลอจิกเกตซึ่งสามารถกําหนดสวิตซช่ิงฟงกชันเองได สําหรับตวัอยาง พจิารณาฟงกชัน

f(a,b,c) = ab c + b c ซ่ึงก็คือรูปแบบของผลบวกของผลคูณใน two – level เพื่อความเขาใจในฟงกชันที่จะแสดง

ในรูปของลอจิกไดโอดอารเรยซ่ึงแสดงในรปู 6.5a รูปที่6.5b เปนภาพประกอบของรูปแบบที่กะทัดรัด ซ่ึงโดยปกตใิชวงจรไดโอดลอจกิอารเรย ฟงกชัน AND จะแทนโดยเสนแนวตั้งและ

292 Digital Logic Circuit Analysis and Design

สัญลักษณของ AND เกตจะแทนตัวตานทานแบบ pull – up และฟงกชัน OR จะแทนดวยเสนแนวนอน และสัญลักษณของ OR เกตแทนตวัตานทานแบบ pull – down สัญลักษณ x แทนไดโอด บางครั้งเราก็ยกเวนสัญลักษณของ AND เพื่อความกะทดัรัดของวงจร

รูปที่ 6.5 รูปแบบของผลบวกของผลคูณที่แสดงดวย AND-OR อารเรย (a) การเชื่อมตอ AND และ OR อารเรย (b) รูปแบบที่กะทดัรัด (Compact form)

รูปที่ 6.6 เปนการแสดงถึงฟงกชันหลายฟงกชันซึ่งสามารถอธิบายใหเขาใจไดดวยการเพิ่มวงจร OR เขาไปในสัญญาณลอจิกอารเรย ในตัวอยางนีจ้ะแสดง 2 ฟงกชันดังตอไปนี้ f1 (a,b,c) = ab + c f2 (a,b,c) = ab + b c

Combinational Circuit Design with Programmable Logic Devices 293

โปดักเทอมของ ab ที่อยูในทั้ง 2 ฟงกชันนี้มันสามารถแบงการดําเนนิการไดโดย OR เกต ทั้งสองตัว ซ่ึงตําแหนงของไดโอดจะถูกระบุลงไปในอารเรยหรือโปรแกรมโดยอารเรยมีไวเพื่อระบุลอจิกฟงกชัน

การรวมกันของ programmable AND array และ programmable OR array โดยปกตจิะอางถึง programmable logic array (PLA) หลังจากการไมมีการเจาะจงของลอจิกฟงกชัน เราสามารถเขาใจไดวาสามารถระบุรูปแบบของไดโอดได

รูปที่ 6.6 หลายฟงกชันที่แสดงโดย AND – OR อารเรย ตัวอยางที่ 6.1 ออกแบบ PLA โดยใช 3 ลอจิกฟงกชันตอไปนี้และแสดงการเชื่อมตอภายในดวย f1(A,B,C,D,E) = A B D + B C D + A B C D E f2 (A,B,C,D,E) = A B E + B C D E f3 (A,B,C,D,E) = A B D + B C D E + A B C D

เนื่องจากมีตวัแปร 5 ตัวแปรดังนั้น PLA จะตองมี 5 อินพุต ซ่ึงแตละอนัจะตองประกอบไปดวยทั้งสวนทีส่มบูรณและสวนที่ไมสมบูรณ ผลรวมของ 7 โปดักเทอมที่ไมซํ้ากันในทั้ง 3 นิพจนโดยเริ่มตั้งแตนิพจนที่มากอนเปนอันดับแรก ดังนั้น PLA จะตองมีโปดักเทอมเกิดขึน้อยางนอย 7 โปดักเทอม ทายที่สุดฟงกชันทั้งสามจะตองนํามารวมกนั(OR) โครงสรางของ PLA แสดงไดดังรูปที่ 6.7 ตารางที่ 6.1 แสดงการเชื่อมตอที่จะตองสรางขึ้นใน AND และ OR อารเรย ในตารางจํานวนของโปดักเทอมจะสอดคลองกับจํานวนเกตในรูปที่ 6.7 ,แตละการเชื่อมตอในหนึง่เสนแนวตั้งเกิดจากโปรดักเทอม ใน AND อารเรยซ่ึงเปนสวนหนึ่งของ

294 Digital Logic Circuit Analysis and Design

ตาราง , 0 แสดงใหรูถึงตัวแปรนั้นเชื่อมตอโปรดักไลน 1 แสดงใหรูถึงสวนที่ไมสมบูรณของอินพุตที่เชื่อมตอโปรดักไลน และ x แสดงใหรูถึงการเชื่อมตอโปรดักไลน สําหรับ OR อารเรย , แสดงถึงการเชื่อมตอ และ 0 แสดงถึงการไมเชื่อมตอ

รูปที่ 6.7 PLA สําหรับ ตัวอยาง 6.1 ตารางที่ 6.1 ตาราง PLA สําหรับ ตัวอยาง 6.1

Combinational Circuit Design with Programmable Logic Devices 295

ตัวอยางที่ 6.2 เอาตพุตของ 5 อินพุตของวงจร”majority voter” ซ่ึงแสดงในรูปที ่ 6.8a ในแตละ majority ซ่ึงอินพุตคือ 1 จงออกแบบวงจรนี้ดวย PLA

เอาตพุตคือ 1 ซ่ึงประกอบดวยมินเทอม 3 หรือมากวา ฟงกชันที่สอดคลอง คือ f(a,b,c,d,e) = m∑ (7,11,13,14,15,19,21,23,25 – 31) รูปที่ 6.8 Majority voter ของตัวอยาง 6.2 (a) เอาตพุต = 1 ถา majority ของอินพุต = 1 (b) PLA

realization

ใช K – map หรือวิธีอ่ืนที่เหมาะสม ฟงกชันนี้สามารถแสดงใหชัดเจนในรูปของคานอยที่สุดของผลบวกของผลคูณ f(a,b,c,d,e) = abc + abd + abe + acd + ace + ade + bcd + bce + bde + cde

ฟงกชันนีเ้กีย่วของกับ PLA ดังแสดงในรูป 6.8b

296 Digital Logic Circuit Analysis and Design

บอยครั้งที่ผูออกแบบวงจรเซลลมาตรฐานของ VLSI ใช programmable logic array ใหเปนประโยชนในการแยกลอจิกเกตสําหรับการแบงลอจิกที่รวมกันออกจากกัน การเชื่อมตอกันใน AND และ OR อารเรยเกิดขึ้นในระหวางกระบวนการสรางอุปกรณ รูปแบบของ PLA คือจํานวนของอินพุต , โปรดักเทอม และผลรวมของเทอมที่ระบุอยูในวงจร ขอดีของการใช PLAs ขอแรกคือ PLAs สามารถสรางขึ้นใหมีความกระทกัรัดของวงจรไดมากกวาวงจรเทียบเทาที่ไดจากลอจิกเกตที่แยกกัน ดังนัน้จะทําใหใชพื้นที่ในชิปนอย ขอที่สองคือ สามารถใชคอมพิวเตอรเปนเครื่องมือชวยในการออกแบบรูปรางของ PLA จากสมการลอจิกไดโดยตรง ทําใหเวลาในการออกแบบลดลง ขอสุดทายมีวิธีการทดสอบการพัฒนาสําหรับ PLAs ซ่ึงมีประสิทธิภาพดีกวาวิธีการทดสอบโดยวงจรเทียบเทาสําหรับวงจรลอจิกเกตที่แยกกัน

6.2.4 Field – programmable AND and OR Arrays

สวนประกอบของ Field – programmable logic คือ อุปกรณที่ไมเกีย่วของกับ AND / OR อารเรย นั่นคือโปรแกรมโดยผูออกแบบซึ่งคอนขางจะมีความแนนอนกวาผูผลิต สวนมากมาตรฐานของ Field – programmable จะประกอบดวย AND / OR อารเรยซ่ึงสามารถกําหนดสวิตซชิงฟงกชันไดเองโดยยอมใหผูออกแบบระบุหรือโปรแกรมเองได รวมถึงการเชื่อมตอไดโอดกับอารเรยโดยใชรูปแบบของโปดัก และผลรวมของเทอม การทําอุปกรณ programmable จะใชฟวสโลหะ (นิกเกิล – โครเมียม , ไทเทเนียม – ทังสเตน หรือ โลหะผสมที่คลายกัน) มาตออนุกรมกบัไดโอดแตละตัวโดยตอระหวางไดโอดกบัเสนเอาตพุต ดังแสดงในรูป 6.9a โดยฟวสที่ตอก็จะทําหนาที่ช็อตวงจรก็เหมือนกับการเชื่อมตอไดโอดเขากับเอาตพุตโดยตรง ฟวสสามารถขาดไดเมื่อมีกระแสไฟฟาสูงๆไหลผานมันก็จะทําใหเอาตพุตเปนอสิระหรือขาดการเชื่อมตอกับอินพุตที่ตรงกนั Programmable AND array ที่แสดงในรูป 6.9a ตัวแปรแตละอินพุตมันจะสมบูรณไดโดยการเชื่อมตอของไดโอดและฟวสกับเอาตพตุ การเลือกเอาฟวสออกของตัวแปรของโปดัก A , A , B , B , C และ C สามารถทําได สําหรับตัวอยางพจิารณาสวิตซชิงฟงกชัน f(A,B,C) = A B C ดังแสดงในรูปที่ 6.9b เปนการเอาไดโอดออกจากอินพุต A , B ,และC สวนไดโอดที่ตออนุกรมกับอินพุตA , B และC ยังเหมือนเดิม ในกรณีเดยีวกันฟงกชัน f(A,B,C) = A B เปนการเอาฟวสออกทั้งสี่ฟวส ดังแสดงในรูป 6.9c

เราจะแทนการวาดซึ่งมีเฉพาะไดโอดและฟวสโดยใชสัญลักษณ shorthand notation คือ โดยปกตจิะใชแทนรูปรางของ Programmable logic ไดดงัรูปที่ 6.9d และ e ถามี x เชื่อมอยู ก็แทนความหมายวามีฟวสตออยู ถาไมมี x เชื่อมตอก็แทนความหมายวาไมมีฟวสนัน่ก็คือฟวสขาด

Combinational Circuit Design with Programmable Logic Devices 297

รูปที่ 6.9 Fuse – programmable AND อารเรย (a) Unprogrammed AND อารเรย (b)

f(A,B,C) = A B C (c) f(A,B,C) = A B (d)Compact notation สําหรับ (b) (e) Compact notation สําหรับ (c)

รูปที่6.10a เปนภาพของ Programmable OR array ซ่ึงจะมีการสรางคลายกับ Programmable AND array อินพุตของ OR array คือ P1, P2 และ P3 บอยครั้งที่ โปดักเทอมสรางใน AND array ฟงกชันตอไปนี้ f(P1,P2,P3) = P1 + P3

ซ่ึงจะไดผลลัพธแสดงในรปู 6.10b และสัญลักษณ shorthand notation แสดงในรปู 6.10c กระบวนการเลือกเอาฟวสออกจากอุปกรณใน Programmable logic คือการอางถึงอุปกรณที่เปนprogramming นั่นคือจะใช คอมพวิเตอรชวยในการออกแบบ (CAD)

298 Digital Logic Circuit Analysis and Design

รูปที่ 6.10 Fuse – programmable ORอารเรย (a) Unprogrammed AND อารเรย (b) f(P1,P2,P3) = P1 + P3 (c) รูปแบบที่กะทดัรัด (Compact from)

6.2.5 Output Polarity Option

ในการเพิ่มของโปดักและผลรวมของเทอม, จํานวนของรูปรางลักษณะใน Programmable logic devices มาตรฐาน , รวมถึงขั้วเอาตพุต Programmable , สัญญาณยอนกลับและ bidirectional signal pins รูปที่ 6.11a เปนรูปประกอบของการรวมกันของขั้วเอาตพตุที่เลือกวางบน PLDs : active hight , active low ,complementary และ ขัว้ programmable

Combinational Circuit Design with Programmable Logic Devices 299

รูปที่ 6.11 Output polarity option สําหรับ field –programmable logic device (a) Output

polarity option (b) Fuse intact:Oi คือ active high, Oi=Si ⊗ 0 = Si (c) Fuse blown : Oi คือ active low , Oi=Si ⊗ 1 = Si

ขั้วเอาตพุตของ programmable สรางขึ้นจาก Exclusive – OR (XOR) เกต กับฟวสอินพุต 1

ฟวสอินพุตนี้จะมีลอจิกเปน 0 เมื่อฟวสยังอยูหรือมีลอจกิเปน 1 เมื่อฟวสขาดการทาํงานของ XOR เกต เมื่อฟวสยงัอยูจะแสดงไดในรูป 6.11b เอาตพุตจะได Oi = Si ⊕ 0 = Si ดังนั้นเอาตพุตจะทํางานใน active hight เมื่อฟวสขาดแสดงดังรูป 6.11c เอาตพุตคือ Oi = Si ⊕ 1 = Si ดังนั้นเอาตพุตจะทํางานใน active low x แสดงใหรูถึงวามฟีวสอยู ถาไมมี x แสดงวาฟวสขาดซึ่งเปนกฏเกณฑของ AND / OR อารเรย

ในการเพิ่มประสิทธิภาพของเอาตพุต active hight และ active low และขั้วเอาตพุตprogrammable ทั้งผลบวกของผลคูณ (SOP) และ ผลคูณของผลบวก (POS) ตัวอยางรูปที่ 6.12 เปนภาพประกอบของสองฟงกชันตอไปนี้ f1(A,B,C) = AB + A C f2(A,B,C) = (A+B) ( A +C) f1 อยูในรูปแบบของ SOP และ f2 อยูในรูปแบบของ POS จากรูปที่แสดง รูปแบบของ SOP จะทํางานโดยการทําใหเอาตพุตเปน active hight รูปแบบของ POS แสดงในรูปแบบของ POS แสดงในรูปของการจัดการทางพีชคณิตดงัตอไปนี ้

(A + B) ( A + C) = ( )( )A B A C+ +

300 Digital Logic Circuit Analysis and Design

= ( ) ( )A B A C+ + +

= AB AC+ ดังนั้นรูปแบบของ POS สามารถทํากลับมาใหอยูในนพิจนของ SOP ได ดังนัน้โปดกัเทอม

และขั้วเอาตพตุprogrammableสามารถทําไดไมซับซอนโดยใชลอจกิเกต(AND,OR,NAND, NOR,หรือ NOT)

รูปที่ 6.12 Implementation ของรูปแบบ SOP และ POS ใช programmable output polarity 6.2.6 Bidirectional Pins and Feedback Line

ลักษณะขอแมอีกสิ่งหนึ่งใน field – programmable logic devices ตางๆคือ bidirectional input / output pin , ดังภาพประกอบในรปู 6.13a bidirectional pin จะถูกผลักดันโดย three – state driver (บางครั้งเรียกวา tristate driver) ของเสนควบคุมที่เชื่อมตอ หนึง่โปดักเทอม เมื่อเสนควบคมุเปน 1, ไดเวอรจะเรียกวา enabled และฟงกชันจะช็อตวงจร (หรือปดสวิตซดังแสดงในรูป 6.13b ในกรณีนี้ผลรวมของเทอมจะผลักดันไปที่ pin ดังนั้นจะไดฟงกชันที่อินพตุ ในการรวมกันนั้นคานี้จะถูกสงกลับไปที่ AND อารเรย มันสามารถใชรูปแบบของโปดักเทอม

Combinational Circuit Design with Programmable Logic Devices 301

รูปที่ 6.13 Bidirectional pin ใน programmable logic device (a) I Om คือ a bidirectional I/O pin (b)

Three-state driver enabled (Pn+1 = 1) (c) Three- state driver disabled (Pn+1=0)

เมื่อเสนควบคมุเปน 0 ไดเวอรจะเปน disabled และฟงกชันจะเปดวงจร (หรือเปดสวติซ)ดังแสดงในรูป 6.13c นี้คือรูปแบบการไมเชื่อมตอในผลรวมเทอมของ pin สวนไหนทีว่ิ่งตรงไปที่เสนยอนกลับ (feedback line) แสดงไดดังตวัอยางประกอบตอไปนี้

ตัวอยางที่ 6.3 ดําเนินการ 2 – บิต ripple – carry adder , ซ่ึงแสดงในรูป 6.14 a โดยใช programmable logic array ซ่ึงมี 4 dedicated input pin , 3 dedicated output pin และ 2 bidirectional pins สมการลอจิกมาตรฐานสําหรับหนึ่งสเตท , i , ของ n-บิต full adder ดงัตอไปนี ้ Si = A i B i C i-1 + A i B i C i-1+ A i B i C i-1+ A i B i C i-1 Ci = A i B i + A i C i-1 + B i C i-1

Ai และ Bi คือขอมูลทางอินพุตและ Ci-1 คือ ตัวทดอินพุตสเตท i,Si มันคือผลรวมเอาตพุตและ Ci คือตัวทดของเอาตพุต สําหรับการบวก ripple – carry, carry – out of one state มันจะเชื่อมตอกับตัวทดของอินพุตในสเตทถัดไปซึ่งแสดงในรปู 6.14a

รูปที่ 6.14b แสดงการดําเนนิการของ PLA จาก บล็อคไดอะแกรมจากรูป 6.14a วงจรบวกตองการ 5 อินพุต และสี่ dedicated input pin ,bidirectional pin5 ซ่ึงใชในอินพุตอื่นๆ ดังนั้น ไดเวอร

302 Digital Logic Circuit Analysis and Design

ของ pin 5 จะ disabled โดยโปดัก 16 เสนโดยมีฟวสอยูดวย เสนโปดัก 16 เสนจะเปน 0 ตั้งแตโปดักทุกอินพุตถูกดาํเนินการ

เทอมของตัวทด C0 จะใชคํานวณเทอมของ S1 และ C1 ตลอดจนเสนฟดแบคจาก pin 6 ซ่ึงจะยอมให C0 รวมกับ A1 และ B1 โดยผานสมการที่มากอน

รูปที่ 6.14 Two- bit ripple- carry adder ใช I/O และ feedback line (a) Blockdiagram with pin number (b) Programmable logic realization

Combinational Circuit Design with Programmable Logic Devices 303

6.2.7 Commercial Devices Programmable logic devices ที่มีอยูในวงการคามีโครงสรางแสดงไดดังรูป 6.15 ซ่ึงมี

อินพุตที่ประยุกตเปน AND อารเรยทั้งในรูปแบบที่สมบูรณและรูปแบบที่ไมสมบูรณ และเอาตพุตของ AND อารเรย ประยุกตเปน OR อารเรย ทําใหสามารถไดนิพจนผลบวกของผลคูณหลายนิพจน เอาตพุตของOR อารเรยอาจจะเลือกขั้วที่เหมาะสมได การทําใหลดลงของอุปกรณที่ซับซอน และตนทุนรวมถึงความเร็วที่เพิ่มขึ้น ฟวสสามารถถอดออกจาก AND อารเรย หรือ OR อารเรย สวนที่เหลือคือ อารเรยในรูปรางที่ไมเปลี่ยนแปลง เมื่อ AND อารเรยไมมีการเปลี่ยนแปลงจะมีขอแมวา จะตองรวมกับอินพุต (โปดักเทอม) เมื่อ OR อารเรยอยูกับที่แตละอินพุต คือผลรวมของการเลือกโปดักเทอม อุปกรณที่ AND อารเรยจะคงที่ไมเปลี่ยนแปลง และ Programmable OR อารเรย อางถึง Programmable read-only memories (PROMs) ในขณะที่ Programmable AND อารเรย , อุปกรณ OR อารเรยที่คงที่ จะอางถึงอุปกรณ Programmable array logic (PAL) อุปกรณในอารเรยทั้งคูคือคือ Programmable อยูในเทอมของ field – programmable logic arrays (FPLAs) ตอไปนี้เปนการตรวจสอบชนิดของรูปรางอุปกรณมาตรฐาน อุปกรณนั้นจะตรวจสอบไดในรายการดังตาราง 6.2

รูปที่ 6.15 พื้นฐานโครงสราง programmable device

304 Digital Logic Circuit Analysis and Design

ตารางที่ 6.2 Typical Commercially Available PLDS

Device Description input Product Term Output Output Polarity PLS100 PLA 16 48 8 Programmable PLS153 PLA 16 42 10 Programmable 82S123 PROM 5 32 8 Active high 82S129 PROM 8 256 4 Active high 82S131 PROM 9 512 4 Active high 82S135 PROM 8 256 8 Active high 82S137 PROM 10 1024 4 Active high 82S147 PROM 9 512 8 Active high 82S181 PROM 10 1024 8 Active high 82S185 PROM 11 2048 4 Active high 82S191 PROM 11 2048 8 Active high 82S321 PROM 12 4096 8 Active high PAL16H8 PAL 16 8 8 Active high PAL14H4 PAL 14 4 4 Active high PAL16C1 PAL 16 16 1 Complementary PAL18P8 PAL 18 8 8 Programmable

6.3 Field Programmable Logic Arrays 6.3.1 FPLA Circuit Structure

Field – programmable Logic Arrays (FPLAs) คือ สวนประกอบของแพ็กเกจ PLA มันจะตอฟวสอนุกรมกับไดโอดใน AND และ OR อารเรยซ่ึงซึ่งสามารถถอดออกไดโดยผูใช มาตรฐานของ FPLA เร่ิมตนในป 1975 โดย Signetics Corporation (ขณะนีค้ือ Philips Semiconductors) รวมถึง PLS 100 [4] , ดังแสดงในรูป 6.16 ตอมาก็มีความแตกตางกนัออกมา , รวมถึง PLS 153 [4] ดังแสดงในรูป 6.17 นี้คือส่ิงที่ตางกันในจาํนวนของอินพุต , โปดักเทอม และ เอาตพุต และการนําไปใชไดของขั้วเอาตพุต programmable ,ฟดแบค , และรูปรางอื่นๆ

รูปรางของ FPLA มันจะเหมอืนกับตนแบบโดยให i x p x o , ซ่ึง i คือจํานวนของอินพุตใน AND อารเรย , p คือ จํานวนของโปรดักเทอมใน AND อารเรย และ o คือจํานวนของเอาตพุตจาก OR อารเรย การดําเนินการของแตละอินพุตจะมแีหลงจายให AND อารเรย ซ่ึงคือผลรวมของ 2i อินพุตสามารถใชในโปดักเทอม, ในอุปกรณ FPLA จํานวนมากเอาตพุตจะยอนกลับมาที่ AND

Combinational Circuit Design with Programmable Logic Devices 305

อารเรย (สมบูรณแบบและไมสมบูรณแบบ) ซ่ึงทําใหไดผลรวมคือ i+o ตัวแปรและการดําเนินการอยางอื่นสําหรับทําใหเกิดโปดักเทอม

สําหรับตัวอยาง PLS100 ที่แสดงในรูป 6.16 คือโครงสรางของ (16 x 48 x 8) ซ่ึงมี 16 อินพุต 48 โปดักเทอม และ 8 เอาตพุตดวยขัว้ programmable ซ่ึงสามารถทํางานไดโดย tristate driver ซ่ึงจะ enabled ดวยการแยกอนิพุตออกจากกนั ดังนั้นอินพุตคอืแหลงจายของ AND อารเรยในรูปแบบของ ความสมบูรณและไมสมบูรณ , ทุกๆโปดักสามารถทําเปน 16 ตัวแปรได

PLS153A ซ่ึงแสดงในรูป 6.17 คือโครงสราง 18 x 42 x 10 , 8 จาก 18 อินพุต pin ที่เปนอินพุต นอกจากนี้ อีก 10 อินพุต pin คือ bidirectional lines controlled โดย tristate driver เมื่อ ไดเวอร disable pin ก็คืออินพุตของ AND อารเรย แตละ tristate driver จะควบคุมโดยโปดักเทอมที่แยกกัน ดังนั้น 10 ของโปดักเทอมใชในการ enable tristate driver , อีก 32 โปดักเทอมคืออินพุตของ OR อารเรย ดังนั้น แตละเอาตพุตคือ programmable ที่ผานไปยัง XOR เกต 6.3.2 Realizing Logic Functions with FPLAs

ควรจะมกีารอธิบายวา FPLA สามารถรวมกับลอกจิกฟงกชันไดนั่นคอืการเตรียมบางสวนของผลรวมโปดัก เพื่อใหกับอินพุต ดังนั้น FPLA เดี่ยวสามารถลดจํานวนในการออกแบบลงไดโดย ลอจิกฟงกชันตางๆในแพก็เกจเดีย่ว

เมื่อออกแบบนิพจนลอจกิสําหรับการดําเนินการใน FPLA มันควรจะบอกวาทุกๆอินพุตสามารถใชในแตละโปดักเทอม และทกุๆโปดักเทอมสามารถรวมอยูในแตละผลรวมของเทอมดวย ขอจํากดัขั้นพืน้ฐานคือผลรวมของจํานวนโปดักเทอม ดังนั้นเมื่อลดขนาดนิพจนลอจิกใน FPLA , การลดขนาดของผลรวมจํานวนโปดกัเทอมควรเปนวตัถุประสงคในขั้นตน เวนแตมันจะนําไปสูจํานวนโปดักที่เล็กลง, การลดลงของจํานวนในทุกๆโปดักเทอม ซ่ึงจะไมเปนการประหยดัตนทุน ในความเปนจริงถาเราใหเวลาที่ฟวสขาดชาลงจะทําใหโปรแกรมของอุปกรณทํางานไดนานขึ้น สําหรับเหตุผลนี้เปนวิธีที่พเิศษสําหรับการลดขนาดเพื่อการพัฒนารูปรางของอุปกรณ PLA นั่นคือ ความคดิที่จะลดจํานวนของโปดักนั่นเอง ในการรวมกันตั้งแตโปดักเทอมสามารถแบงไดโดยผลรวมของหลายๆเทอมใน FPLAs, วิธีการลดขนาดของหลายๆเอาตพตุ ดังนั้น วิธีการของ Quine – McCluskey หรือวิธีการของ ESPRESSO จะถูกใชบอย วิธีการของ ESPRESSO จะเปนวิธีที่ใชในการพัฒนารูปรางสําหรับใชในการลดขนาดของวงจร PLA โดยเฉพาะ

ตัวอยางดังตอไปนี้เปนตวัอยางประกอบในการอธิบายการใชงานของอุปกรณ FPLA

306 Digital Logic Circuit Analysis and Design

รูปที่ 6.16 Philips PLS100/101 FPLA[4]

Combinational Circuit Design with Programmable Logic Devices 307

รูปที่ 6.17 Philips PLS153A FPLA[4]

ตัวอยางที่ 6.4 จงทําให 3 ฟงกชันในตัวอยาง 6.1 เปนจริง ในอุปกรณ PLS100 FPLA ฟงกชันแสดงในรูป 6.18 นี้เปนรูปที่แสดงการเชื่อมตอที่ตรงกับตารางที่ 6.1 ในตวัอยาง 6.1 สวนอินพุตอื่นๆของ PLS 100 จะไมสนใจ ตัวอยางที่ 6.5 ใช FPLA ทําใหเปนจริงในมาตรฐาน TTL 4 – to – 1 line data selector /multiplex (วงจรชนดิ SN74153) แสดงในรูป 6.19 ไดอะแกรมของ PLA คือโครงสรางของการออกแบบวงจรที่เขากันไดดังแสดงในรูป 6.20 นั่นคือ PLA ตองการ 12 อินพุต , 2 เอาตพุต และ 8 โปดักเทอมซึ่งมันจะงายสําหรับการใชงานใน PLS100 FPLA , PLS153FPLA

6.4 Programmable Read – only Memory 6.4.1 PROM Circuit Structures

Programmable read – only memory (PROM) คือส่ิงที่มีมานานสําหรับ programmable logic device ตั้งแตป 1970 เพราะวามนัถูกประยุกตใชในหนวยความจําของคอมพิวเตอร PROM

308 Digital Logic Circuit Analysis and Design

ประกอบดวย AND อารเรย และ programmable OR อารเรย ที่คงที่ ดังแสดงในรูป 6.21 AND อารเรยทําใหเกิดทุก 2n ที่เปนไปไดในมนิเทอมโปรดักของ n อินพตุดังนั้นบอยคร้ังที่อางถึง การถอดรหัส n – ถึง- 2n

OR อารเรยจะมีการรวมกนัของโปดักเทอมซึ่งรวมถึงในแตละผลรวมของเทอม ดังนั้น ผลรวมของรูปแบบของโปดักจากหลายๆฟงกชันสามารถเขาใจไดจากคาตารางความจริงหรือ ลิสของมินเทอม จาํนวนของผลรวมของเทอมแปลคาระหวางอุปกรณ , ตามขนาดของชิป , จํานวนของpin ในแพ็กเกจ และการพิจารณาตนทุนอืน่ๆ อุปกรณ PROM ไมสามารถเปนแบบอยางรวมอยูในขั้วเอาตพุตหรือฟกแบคได

รูปที่ 6.22 แสดงตัวอยางของรูปรางของPROM ในเชิงพาณิชย มีรูปรางเฉพาะซึ่งมีเอาตพุต tristate ซ่ึงควบคุมโดย chip – Enable ควบคุมสัญญาณ ตาราง 6.2 แสดงรปูรางจํานวนของ Signetics bipolar PROMs และแสดงความแตกตางในจํานวนของอินพตุและเอาตพุต รูปที่ 6.18 Realization ของตาราง 6.1 ดวย Philips PLS100 FPLA [4]

Combinational Circuit Design with Programmable Logic Devices 309

รูปที่ 6.19 SN74153 dual 4-to-1 multiplex 6.4.2 Realizing Logic Functions with PROMs

สวิตซชิงฟงกชันสามารถแทนโดยลักษณะเฉพาะในรูปของผลบวกของผลคูณ ดังนั้นแตละเอาตพุตของ PROM จะสามารถกําหนดรปูแบบของสวติซช่ิงฟงกชันไดดวยการเชื่อมตองายๆของเอาตพุตมายังมินเทอมของฟงกชัน ดังนัน้สวิตซชิงฟงกชันไดจากPROM , อยางแรกจะไดฟงกชันที่ชัดเจนและเปนที่ยอมรับในรูปของผลบวกของผลคูณ หรือ ไดมาจากตารางความจริงของฟงกชัน จากนั้นชนิดของมินเทอมของฟงกชันจะเชือ่มตอเทอมของ OR ซ่ึงจะไดผลลัพธในรูปของ SOP จะไมมีขอดีในการลดฟงกชันเมือ่ใช PROM รูปแบบที่เปนที่ยอมรับจะตองใช PROM ที่มีฟวส มันควรจะใช commercially – available PROM เพราะจะไมมีประสิทธิภาพเมื่อตองการจํานวนมนิเทอมที่เล็กลง นอกจากจะลดขนาดของชิปลง

310 Digital Logic Circuit Analysis and Design

รูปที่ 6.20 PLA realization ของ SN74153 dual 4-to – 1 multiplexer

รูปที่ 6.21 Programmable read-only memory (PROM) สมารถ realize K ฟงกชัน f(I2,I1,I0)

Combinational Circuit Design with Programmable Logic Devices 311

รูปที่ 6.22 รูปรางทั่วไปของ commercial PROM ตัวอยางที่ 6.6 จงทําให 3 สวติซชิงฟงกชันตอไปนี้เปนจริงดวย PROM 3 – อินพุต , 3 – เอาตพุต

f1(A,B,C) = AB + B C f2(A,B,C) = (A+ B +C)( A +B) f3(A,B,C) = A+BC

อันดับแรกตองแปลแตละฟงกชันใหอยูในรูปของผลบวกของผลคูณ f1(A,B,C) = AB + B C = AB C +ABC+ A B C+A B C = m∑ (1,5,6,7)

f2(A,B,C) = (A+ B +C)( A +B) =(A+ B +C)( A +B+ C )( A +B+C) = M∏ (2,4,5) = m∑ (0,1,3,6,7) f3(A,B,C) = A+BC = A B C +A B C+AB C +ABC+ A BC = m∑ (3,4,5,6,7)

ดังนั้น เอาตพตุ 1 คือการเชื่อมตอที่โปดักเทอม (1,5,6,7) เอาตพุต 2 คือเชื่อมตอที่โปดักเทอม (0,1,3,6,7) และเอาตพตุ 3 คือ เชื่อมตอที่โปดักเทอม (3,4,5,6,7) ทายที่สุดจะไดวงจรดังแสดงในรูปที่ 6.23

312 Digital Logic Circuit Analysis and Design

ตัวอยางที่ 6.7 ใชPROM ทําให 1 – บิต full- adder module เปนจริง

ตารางความจรงิของ full adder ในตาราง 6.3 รูปแบบของตารางนี้ PROM โปรแกรมโดยการนําฟวสออกทําให 2 ฟงกชันเปนศนูย ดังแสดงในรูป 6.24 PROM 3-อินพุต, 2- เอาตพุต เปนส่ิงที่จําเปนสําหรับวงจรนี ้

ตัวอยางที่ 6.8 จงออกแบบการแปลงเลขฐานสองไปเปนรหัสเกรยโดยใช PROM 4- อินพุต , 4 – เอาตพุต , ตารางความจริงของการแปลงโคดคือตารางที่ 6.4 จะมี 15 จาก 16 ที่เปนไปไดของมนิเทอมที่แสดงในเอาตพุต (จะมี มินเทอม 0 เทานั้นทีไ่มไดอยูใน 4 เอาตพุต) ตารางความจริงใชในการ mapped ในPROM ดังแสดงในรูป 6.25

รูปที่ 6.23 PROM solution สําหรับตัวอยาง 6.6

Combinational Circuit Design with Programmable Logic Devices 313

รูปที่ 6.24 PROM realization of full adder ตารางที่6.3 ตารางความจริงของ FULL – ADDER

รูปที่ 6.25 PROM realization ของการแปลง binary – to –gray code

314 Digital Logic Circuit Analysis and Design

ตารางที่ 6.4 ตารางความจริงของ Binary – To –Gray Code 6.4.3 Lookup Tables

การประยกุตใชงาน PROM คือ lookup table ในฟงกชันคือการเก็บในรูปแบบที่เปนตารางกับอารกิวเมนตที่ใชในการอางถึง อินเด็ก ในตารางเพือ่แกไขคาของฟงกชัน สําหรับอารกิวเมนตนั้นๆ ดังนัน้ ตารางความจรงิสามารถทําใหเปนจริงโดย PROM ,lookup table สามารถดําเนินการโดยการเขยีนในรูปแบบของตารางความจรงิและมันสามารถทําใหคาตารางความจริงเปนจริงไดดวย PROM , ตารางของฟงกชันตรีโกณ , ล็อกการิทึม, เอ็กโปแนเชยีล, และฟงกชันอื่นๆสามารถดําเนินการไดงาย ตัวอยางที่ 6.9 จงดําเนนิการ 8 – บิต โดย 8- บิต high – speed bit ในการคํานวน P15-0 = A7-0 x B7-0

ใช PROM ดังใน lookup tables ในการดําเนินการทางคณิตศาสตร ใช PROM ขนาดใหญซ่ึงมี 16 อินพตุ และ 6 เอาตพุตในการดําเนินการสูตรคณูดวย 216 แถว แลวแบงเปน 2 ตัวที่ถูกดําเนินการมาเปน 4 – บิต ดังตอไปนี้ P15-0 = A7-0 x B7-0 = ((A7-4 x 24) + A3-0) x ((B7-4 x 24) + b3-0) = (A7-4 x B7-4) x 28 + ((A7-4 x B3-0) + (A3-0 x B7-4)) x 24 + A3-0 x B3-0

Combinational Circuit Design with Programmable Logic Devices 315

นี่คือการดําเนนิการที่ทําไดดวย 4- บิต โดยการคูณ 4-บิต มาสูการแบงคํานวณโปดัก การคูณดวย 24 และ 28 สามารถทําไดโดยเล่ือนเทอมของ 4 และ 8 มาทางซาย บล็อกไดอะแกรมในรูป 6.26 คือ ระบบของ PROM ซ่ึงใชการดําเนินการแบบการคูณ PROM 1ถึง4 คือโปรแกรมที่คูณ lookup tables จาก 4- บิตโดยบางสวนของ 4-บิต บางสวนของโปดัก คือผลรวมโดยการบวกและการดําเนนิการใน PROM จากโปดกัสุดทาย

รูปที่ 6.26 Implementation ของ hight-speed binary multiplier ดวย PROMs 6.4.4 General Read- only Memory Application

อุปกรณในคอมพิวเตอรหรือระบบดิจิตอลทั้งหมดจะใช PROM คือ read-only memory (ROM) สําหรับฝงอยูในอปุกรณดังกลาว ซ่ึงเปนที่เกบ็ขอมูลของโปรแกรมคอมพิวเตอร , ตารางคาคงที่ของขอมูลและตารางการแปลงโคดตางๆ ดังแสดงในรูป 6.22 ขอมูลสามารถอานจาก ROM โดยในรูปแบบของจํานวนในตารางซึ่งเรียกวา address , บนอินพุต An-1…A0 การเลือกขอมูลตัวอักษรบนเอาตพุต Om…..O1 ดูเหมือนวาจะตองทําไดหลังจาก time delay นั้นๆเรียกวา access time ของอุปกรณ n - อินพุต , m - เอาตพุต PROM สามารถเก็บไวในตารางโดย 2n – m –บิต ของขอมูลตัวอักษร พจิารณาไดอะแกรมของ PROM ในรูป 6.27 อารเรยจะมีประสิทธิภาพในการถอดรหัส n-

316 Digital Logic Circuit Analysis and Design

to-2n แตละเอาตพุตของการถอดรหัสจะได 1 มินเทอมของอินพุต An-1…A0 OR อารเรยสามารถมอง 2n – m –บิต ของการเก็บของเซลลแตละการเก็บขอมูลตัวอักษร m-บิต Supplied address คือการถอดรหัสดวยการดําเนินการถอดรหัสของเอาตพุตในการเลือกที่จะเก็บเซลลเพื่อจะขับเอาตพุต Om…O1

ในการเตรยีมขอมูลเพื่อที่จะเก็บใน PROM โดยกําหนดใหที่อยูของแตละขอมูลตัวอักษรอยูในขอบเขตที่กาํหนด ในสวนใหญขอมูลจะอยูในพื้นทีใ่กลกัน โดยเริ่มจากที่อยูแรกอยูใน PROM ในบาง อยางไรก็ตามขอมูลคือส่ิงที่เตรียมไวในรูปแบบใน lookup tables แตละตาํแหนงจะอยูในรูปแบบของ data code นั่นคือในบางวิธีการที่สัมพันธกันของการเก็บขอมูลใน PROM รูปที่ 6.27 PROM device as a 2n x m read – only memory

Combinational Circuit Design with Programmable Logic Devices 317

6.4.5 Read – only Memory Technologies จากที่ไดอธิบายเรื่อง Fusible link PROM ไวกอนหนานีแ้ลว , ROM และ programmable device อ่ืนๆ ที่มีอยูในเทคโนโลยีอ่ืนๆ ซ่ึงจะตองตัดสนิใจวาจะเลือกใชเกณฑอะไรระหวาง cost , speed , flexibility และ reusability ความซับซอนของอุปกรณ PROM ไดกําหนดโดยจํานวนของไดโอด และ fuse ที่ประกอบอยูในอุปกรณดังกลาว ถาเปน n-อินพุต PROM จะมีไดโอด จํานวน 2n ตัวตอกับอนิพุต ในแตละ โปดัก (ตัวแปร n uncomplemented และ n complemented) ถาเปน n ตัวแปร จะม ีโปดัก ของ ที่เปนไปไดอยู 2n , AND array ที่มีไดโอด จํานวน 2n*2n ถามี เอาตพุต จํานวน k ตัว จะมีไดโอด และ ฟวส ใน OR อารเรยจํานวน k*2n ตัว ซ่ึงแตละตัวของโปดักเทอมจํานวน 2n ตัว จะสามารถตอเขากับ เอาตพตุแตละตวัได ดังนั้น คาใชจายรวมทั้งสิ้นจะเทากับราคาของไดโอด จํานวน (2n+k)*2n ตัวรวมกับราคาของ fuse จํานวน k*2n ตัว สําหรับการประยุกตใชกับปริมาณมากๆ สวนใหญจะใช mask-programmed ROM หรือ ROM งายๆ ในอุปกรณ ROM จะไมม ี user-programmable fuse แทนที่ ในระหวางขั้นตอนสุดทายของขั้นตอนการผลิต chip ในโรงงาน OR อารเรย จะถูกจดัเรียงอยางถาวรโดยการวางหรือการเวนที่ลวด(wire)ดวยชุดไดโอด หรือ แทนที่ลวดดวย unblown fuse หรือ blown fuse ตามลําดับ custom mask จะระบุที่ทีจ่ะวางลวดระหวางขั้นตอนการผลิต ดวยเหตนุี้จะเปนการกาํหนดวา cell ใดจะเปน 1 และ cell ใดจะเปน 0 แตละ ROM mask เปน custom ซ่ึงถูกออกแบบจากตารางที่ลูกคาจัดหามาให และซึ่งจะทําใหมีคาใชจายในการพัฒนาสงูขึ้นดวย ปกติแลวจะเปนหลายพันดอลลาร ขณะที่ไมปรากฏ programmable fuse ใน OR อารเรย จะทําใหคาใชจายของ mask-programmed ROM chip นอยกวาคาใชจายของอุปกรณ PROM ที่มีคุณภาพ(ความสามารถ)เทากัน คาใชจายที่ประหยดัขึ้นนีถู้กลดลงโดยราคาของ mask (mask charge) เนื่องจาก ROM เทานั้นที่มีผลตอคาใชจายเมื่อการสั่งซื้ออุปกรณจํานวนมาก แตถาจํานวนของชิ้นสวนนอยจะทําใหมีผลตอคาใชจายมากขึ้นโดยทีจ่ะใชอุปกรณ PROM ซ่ึงลูกคาสามารถโปแกรมไดเฉพาะงาน ระหวางการพฒันา logic circuit , สารสนเทศ(information)ที่จะถูกเกบ็ไวใน PROM แตละตัว(ที่มีการเปลี่ยนแปลง, PROM undergo) จะมีการเปลี่ยนแปลงบอยคร้ังจนกระทัง่การออกแบบถูก debug อยางเสร็จสมบูรณ นาเสียดาย ที่ ROM และ PROM ไมสามารถพรอม (alert ) ในครั้งแรกที่โปรแกรม อยางไรก็ตามROM และ PROM สามารถถูกทิ้งและอุปกรณใหมที่ผานการโปรแกรมจะเขามาแทนที่ อุปกรณดังกลาวสวนใหญจะเปนพวก Erasable programmable read-only memories (EPROM) OR อารเรย ของ EPROM จะถูกโปรแกรมโดยการใช special programming voltage เพื่อที่จะดัก (trap) electrical charge ใน cell ที่ระบุเปน 0 หรือ 1 ถึงแมวาจะไมถาวรเทากับ fuse ที่หลอมละลาย, กระแสไฟนีจ้ะเหลืออยูซ่ึงถูกดัก(trap) ไวมากถึง 10 ป อยางไรกต็ามกระแสไฟสามารถหมดไปอยางรวดเรว็โดยการฉายแสง(irradiate)chipดวยแสง ultraviolet โดยผาน quartz

318 Digital Logic Circuit Analysis and Design

window บน chip และการซอม(restoring) OR array ยังสภาวะทีไ่มไดโปรแกรมตั้งแตตน จากนั้น EPROM อาจจะถูกโปรแกรมดวยสารสนเทศใหม( information) วัฏจักรของการลบและการโปรแกรมใหมอาจจะถูกทําซ้ําๆจนกระทั่งแบบ(design)ถูกตอง และ EPROM ถูกนํามาใชอยางนาพอใจ EEPROM (electrically erasable programmable read-only memory) นั้นคลายกับ EPROM โดยที่ EEPROM แทนไดดวย 1 และ 0 ในเซลล memory โดยมีหรือไมมีกระแสไฟดัก( trapped electrical charge ) เชนเดียวกันกับ EPROM กระแสนี้สามารถหมดไปและ chip ก็สามารถนํามาโปรแกรมใหมได อยางไรก็ตามใน EEPROM การลบทําไดดวยกระแสไฟฟาโดยการจายแรงดนั(voltage)พิเศษใหกับ chip การลบและการโปรแกรมใหมของ chip นี้ทําไดโดยไมตองยาย chip ออกจากชิ้นงาน(product ) ดังนั้นการนํา EEPROM มาประยุกตใชในสารสนเทศที่ตองการเพื่อที่จะเปลี่ยนโดยไมตองมีการเคลื่อน chip จึงเปนที่นาจูงใจมาก อุปกรณ EEPROM จํานวนมาก support ตอการลบของ chip นอกจากนี้ยังสามารถกําหนดตําแหนงที่จะทําการลบไดโดยไมรบกวนอุปกรณช้ินอื่นๆ ทําใหตนทนุอุปกรณ EEPROM ที่เรียกวา flash memory นอยลง ซ่ึงอุปกรณดังกลาว support การลบของ chip ทั้งหมด ดังนั้นตนทุนที่เกดิขึ้นจึงมีความยดืหยุน อุปกรณ EPROM และ EEPROM มีความซับซอนมากกวาอุปกรณ PROM และดวยเหตุนี้จึงทําใหคาใชจายตอ bit สูงกวา PROM ที่มีความสามารถเทากัน อีกทัง้ EPROM และ EEPROM มีการหนวงเหนีย่วการแพร (propagation delay) นานกวา PROM และ ROM ที่มีขนาดเทาๆกนั เนื่องจากเดิมทเีครื่องทําการขึ้นรูป (former) จะใชเทคโนโลยี NMOS หรือ CMOS transistor สวน PROM และ ROM ใหเทคโนโลยี bipolar TTL อยางไรก็ตามถึงแมจะมีคาใชจายที่สูงขึ้นและความสามารถ(Performance)ที่ต่ําลง แตกจ็ะมีความสะดวกในการลบและโปรแกรม chip ใหมอีกคร้ังหนึ่ง ในบางกรณี EPROM หรือ EEPROM ที่ใชระหวางการทํางานตนแบบ(prototyping) จะถูกเก็บไวสําหรับ final product อยางไรก็ตาม ในสถานการณที่ทําการผลิตผลิตภัณฑจํานวนมาก ตนทุนที่เกดิขึน้มากจะถูกลดลงไปโดยการแทนที่ EPROM หรือ EEPROM ดวย PROM หรือ ROM จํานวนเทากนัหลังจากทําการออกแบบครั้งสุดทาย

6.5 Programmable Array Logic 6.5.1 PAL circuit structure

PAL เกิดขึ้นในป ค.ศ. 1970 โดย Monolithic memories โดยมีราคาต่ําเพื่อนํามาแทนสําหรับลอจิกเกตที่แยกกนั , PROMs และ PLAs [5] PAL แสดงในรูปที่ 6.28 ซ่ึงประกอบดวย programmable AND อารเรย และ OR อารเรยแบบคงที่ ใน OR อารเรยแบบคงที่แตละเอาตพุตเชื่อมตออยางถาวรกับกลุมของโปดักเทอม ใน PAL รูปที่ 6.28 เปนตัวอยางแตละเอาตพุตจะเชื่อมตอกับ 3 โปดัก ดังนัน้แทนดวยผลรวมของ 3 โปดักเทอม เพราะวา OR อารเรยแบบคงที่แทน

Combinational Circuit Design with Programmable Logic Devices 319

ดวย PAL แสดงในรูป 6.29 ขอแตกตางของ PROM ในทุกๆ 2n ทีเ่ปนไปไดของโปดักจะทําใหเกิด n ตัวแปร PAL ทําใหเกิดการจํากัดจาํนวนของโปดักเทอม สวนที่เหลือผูออกแบบจะเลือกโปดักนั้นเพื่อสรางแตละผลรวม ดังนัน้ตนทุนทั้งหมดของ PAL จะตองพจิารณาใหต่ํากวาเพื่อเปรียบเทียบระหวาง PROMs กับ EPLAs ในกรณีของ read- only memories , PAL จะวางอยูในหลายตําแหนงของเทคโนโลยีวงจร , ในการเพิ่ม fuse- programmable bipolar TTL เทคโนโลยี NMOS และ CMOS ทรานซิสเตอรบอยครั้งที่นํามาใชงานใน programmable AND อารเรย ของอุปกรณ PAL ตางๆซึ่งมันมีความสามารถในการลบและเขียนโปรแกรมใหมได ชิปที่พูดถึงนี้คอือุปกรณ erasable programmable logic หรือ EPLDs ขณะทีห่นวยความจําที่อานไดอยางเดยีว, CMOS และNMOS EPLDs ตางก็เหมือนกันคือมีตนทุนที่สูง เมื่อเทียบกับ bipolar TTL fuse – programmable – PALs อยางไรก็ตามประโยชนที่ไดคือ ไดชิปทีส่ามารถลบและเขียนโปรแกรมใหมได

รูปที่ 6.28 Programmable array logic (PAL) device

320 Digital Logic Circuit Analysis and Design

6.5.2 Realizing Logic Function เพราะวาแตละเอาตพุตมีการจํากัดของผลรวมเซ็ทคงที่ของโปดักเทอม PALs มีขอจํากัด

มากกวา PROMs และ FPLAs ในจํานวนของสวิตซชิงฟงกชัน ดังนั้นการเลือก PAL สําหรับประยุกตใชงานเฉพาะอยาง จะตองแนใจในจํานวนของโปดักเทอมตอเอาตพุต นัน่คือมันตองมีจํานวนที่เพยีงพอสําหรับกรณีที่เลวรายที่สุดของโปดักเทอม ในการประยุกตใชงาน นอกจากนี้ การจํากัดของโปดกัเทอมเดีย่วไมสามารถแบงระหวาง 2 ผลรวมของเทอมได ถา 2 ผลรวมมีโปดักเทอมรวมกัน , โปดักเทอมนั้นจะเกิดขึ้น 2 คร้ัง ในกรณีที่ดีสวติซชิงฟงกชันหลายๆฟงกชัน สามารถแทนดวยผลรวมของจํานวนจํากดัของโปดักเทอม ดังนั้น PALs จะมีประสิทธิภาพมากกวา PROMs หรือ FPLAs สําหรับ

ฟงกชันที่มีอินพุตหลายๆตัวแปร แตมันจะมีจํานวนนอยสําหรับโปดักเทอม กลุมของสวิตซชิงฟงกชันใน PAL แทนไดดวยการลดขนาดของโปดัก เนื่องจากกลุมของโปดกัเทอมมีขอจํากัดสําหรับแตละฟงกชัน วัตถุประสงคเบื้องตนในการออกแบบควรจะลดขนาดของจํานวนโปดกัเทอมในนิพจน SOP แตละอินพตุสามารถดําเนินการไดในโปดักเทอมทั้งหมด ในการบวกเริ่มจากโปดักเทอมไมสามารถแบงระหวางเอาตพุตไดมนัจะสามารถทําไดใน PROM และ FPLAs มันไมตองการใชวิธีลดขนาดของหลายๆเอาตพุต สําหรับ PLAแตละผลรวมควรจะเปนอิสระตอการลดขนาด

รูปที่6.29 รูปแบบมาตรฐานของ PAL

Combinational Circuit Design with Programmable Logic Devices 321

ตัวอยางที่ 6.10 การลดขนาดของ 3 ฟงกชันพรอมๆกนั fα (A,B,C,D) = m∑ (0,2,7,10) + d(12,15) f β (A,B,C,D) = m∑ (2,4,5) + d(6,7,8,10) fγ (A,B,C,D) = m∑ (2,7,8) + d(0,5,13)

ผลลัพธคือ 3 นิพจนดังตอไปนี้ fα (A,B,C,D) = A B D + B C D + A B C D f β (A,B,C,D) = A B + B C D fγ (A,B,C,D) = A B D + B C D + A B C D นิพจน 3 นิพจนตองการ8 โปดักเทอม แมวาจะม ี5 เทอมที่มีลักษณะเฉพาะกับ 3 เทอมที่แบงระหวางหลายเอาตพุต นิพจนของ PAL แสดงไดดงัรูป 6.30 รูปที่ 6.30 PAL realization of fα (A,B,C,D) , fβ (A,B,C,D) , fγ (A,B,C,D)

การเปนอิสระไมขึ้นตอกันของการลดขนาดแตละฟงกชันดังนิพจนตอไปนี ้

322 Digital Logic Circuit Analysis and Design

fα (A,B,C,D) = A B D + B C D + A B C D f β (A,B,C,D) = A B + B C D fγ (A,B,C,D) = A B D + B C D + A B C

ตองการฟงกชันของผลรวมของเอาตพุตและ 8 โปดักเทอมในแตละกรณี ใน PAL รูปที่ 6.30 มีฟงกชัน f(A,B,C,D) อยูใน 2 โปดักเทอม ดังนั้น 1 ใน 3 โปดักเชื่อมตอกับ OR เกต จะเทากับ 0 รูปที่ 6.31 ตัวแปร A คือการยายจากโปดกัเทอม(P3) โดยการยายฟวส (A และ A) โปดักเทอม (P4) จะเปน 0 โดยถาฟวสยังอยูตาํแหนงเดิม เนือ่งจาก A.A = 0 ฟวสจะอยูทางซายสําหรับแตละโปดกั นั่นคือจะมีคาเปน 0 โปดักของ P6 แสดงในรูป 6.30

รูปที่ 6.31 Product term involving ตัวแปร A และการ ดําเนินการกับมัน

6.5.3 PAL Output and Feedback Option มาตรฐาน TTL และ CMOS PALs ซ่ึงจะแบงชนิดของจํานวนอินพุต ,เอาตพุต โปดักเทอม

ตอเอาตพุต และ ออปชันเอาตพุต PAL จํานวนมากรวมถึงขั้วเอาตพุตและยอนกลับภายในจากเอาตพุต มายัง AND อารเรย ลักษณะอื่นที่ไมเหมือนกนัระหวาง PAL รวมถึงความเร็วสวิตซชิงและการกินกําลังไฟฟา ความหมายของรหัส PAL เบอรตางๆ

PAL I A O เมื่อ I คือ จํานวนของอินพตุ O คือจํานวนของเอาตพุต A คือชนิดของเอาตพุต ดังแสดงตอไปนี้ L active low

Combinational Circuit Design with Programmable Logic Devices 323

H active high P programmable polarity C complementary outputs

สําหรับตัวอยาง PAL 16L8 ที่แสดงในรปู 6.32 คือ PAL 16 อินพตุ 8 Active – low เอาตพุต แตละเอาตพุตคือผลรวมของ 7 โปดักเทอมและทํางานโดยการควบคุม tristate buffer โดยการบวกโปดกัเทอม 6 เอาตพุตจะยอนกลับไปที่ AND อารเรย PAL18P8 ที่แสดงในรูป 6.33 มี 8 bidirectional pins รวมถึง เอาตพุต programmable – polarity และ 10 เอาตพุต [5] tristate drivers บน bidirectional line จะไมแสดงอยางชัดเจนในไดอะแกรมแตจะแทนรวมอยูใน XNOR เกต รูปรางของอุปกรณ PAL อ่ืนสามารถพบไดใน [5] ตัวอยางที่ 6.11 ออกแบบวงจร PAL ที่เปรียบเทียบสอง 4-บิต โดยไมคิดเครื่องหมายของจํานวนเลขฐานสอง , A = (a3a2a1a0) และ B = (b3b2b1b0) และ คาที่กําหนดให 3 อินพุต X= 1 ถา A=B, Y= 1 ถา A>B , และ Z = 1 ถา A<B

สามารถเขียนเปนสมการไดดังตอไปนี ้X = (a3 b3)(a2 b2)(a1 b1)(a0 b0) Y = a3 b 3 + (a3 b3)a2 b 2 + (a3 b3)(a2 b2)a1 b 1 + (a3 b3)(a2 b2)(a1 b1)a0 b 0 Z = a 3b3 + (a3 b3) a 2b2 + (a3 b3)(a2 b2) a 1b1 + (a3 b3)(a2 b2)(a1 b1) a 0b0 เมื่อ ai bi = a i b i + aibi

สมการนี้อยูในรูปของ SOP ซ่ึงจะได 16 โปดักเทอมสําหรับ x และ 15 โปดักเทอมสําหรับ y และ Z

Ei = ai bi , สําหรับ i = 0,3 นี้คือเทอมที่ปอนกลับมาที่ AND อารเรย กลุมของสมการจะกลายเปน

X = E3E2E1E0 Y = a3 b 3 + E3a2 b 2 + E3E2a1 b 1 +E3E2E1a0 b 0 Z = a 3b3 + E3 a 2b2 + E3E2 a 1b1 + E3E2E1 a 0b0

324 Digital Logic Circuit Analysis and Design

รูปที่ 6.32 PAL16L8: active low output[5]

รูปที่ 6.33 PAL18P8: programmable – polarity output [5]

Combinational Circuit Design with Programmable Logic Devices 325

รูปที่ 6.34 4-bit comparator mapped onto a PAL18P8 device [5]

326 Digital Logic Circuit Analysis and Design

6.6 Computer – aided Design Tool for PLD Design คอมพิวเตอรชวยในการออกแบบ CAD ที่ขายอยูตามทองตลาดโดยทั่วไปแบงเปน 2 ชนิด

ดวยกัน คือประเภทที่มีการใชงานที่ตามแบบที่ผูขายกําหนดขึ้นเพื่อใชเฉพาะงาน และ แบบที่ใชงานทั่วๆ ไป(หรือแบบที่เปนสากล) ผูขายหลายเจาจัดหา CAD เพื่อพัฒนาการออกแบบอยางโดยเฉพาะสําหรับออกแบบ PLD ตัวอยางเชน MAX+PLUS II จากบริษัท Altera และ AMAZE จากบริษัท Signetics อยางไรก็ตาม มีระบบ CAD บางระบบที่สนับสนุนการพัฒนาการออกแบบอุปกรณที่ตองใช PLD ไดอยางอิสระ และจากนั้นทําเชื่อมโยงการออกแบบกับอุปกรณที่เลือกจาก library ตางๆ ซ่ึงมีอยูมากมาย ตัวอยางชองชุดออกแบบที่ใชงานทั่วๆไป ไดแก PALASM จากบริษัท Advanced Micro Devices, CUPL จากบริษัท Logical Devices , ABLE จากบริษัท DATA I/O และ PLDesigner จากบริษัท Minc ชุดคอมพิวเตอรชวยในการออกแบบสําหรับการออกแบบ PLD ( PLD CAD packages) จะสามารถใชไดทั้งการออกแบบเพื่อประดิษฐขึ้นมาใหและเขาไปใชในรูปแบบทั่วไป รวมถึง schematic diagrams , logic equations , truth table และ sequential circuit state diagrams and state table ดังแสดงในรูปที่ 6.35 แตละแบบจะถูก translate หรือ compile ใหอยูในฟอรมของ logic equation และจากนั้นจะทําการ minimize โดยใชวิธีที่คลายๆกัน ผูออกแบบมักจะมีทางเลือกของ minimization algorithm ซ่ึงตองเลือกเอาระหวางเวลาการคํานวณหรือผลลัพธที่เหมาะสม แบบ(design)ที่ผานการ compile แลวอาจจะนําไปจําลอง(simulate)เพื่อที่จะ verify ความถูกตอง และเพื่อประเมิน timing และ พารามิเตอรอ่ืนๆ เมื่อแบบ(design)ถูกตองแลว จากนั้น logic equation จะถูกเชื่อมโยงเขากับอุปกรณ PLD ที่ไดเลือกไว ถาการแบบ(design)ไมเหมาะสมกับ PLD ที่เลือก ผูออกแบบจะตอง modify ทั้งแบบ(design) , เลือกเครื่องมืออ่ืน หรือ แบง(แยก)แบบ(design)ใหเปน module ใน PLD แตละอัน ระบบ CAD บางระบบมีการคนหาผาน library ของอุปกรณอยางอัตโนมัติ และกําหนด PLD ที่เหมาะสมที่สุดและตรงกับขอกําหนด(เงื่อนไข)ที่ระบุไวไดอยางอัตโนมัติ บางระบบสามารถทําการแบง(แยก)แบบ(design) เพื่อที่จะเชื่อมโยงกับ PLD ตางๆ หรือทําการรวมแบบ(design)ที่มีขนาดเล็กเพื่อใหเหมาะสมกับ PLD ผลลัพธของขั้นตอนการเลือกอุปกรณที่เหมาะสม (device-fitting step) คือ fuse map ซ่ึงเปน map ของ fuse ใน PLD ซ่ึงจะระบุวา fuse อันใดที่หลอมละลาย (กระแสไฟจะหยุดไหลทันทีเนื่องจาก fuse ละลายเพราะกระแสไฟแรงเกินไป ) และ fuse ใดที่เหลืออยูในแบบ(design) ในกรณีสวนใหญ มาตรฐานเชนมาตรฐาน JEDEC ถูกใชสําหรับ fuse map จากนั้น fuse map จะถูก down load เพื่อโปรแกรม pattern ของ fuse ใหกับ chip ชุดการออกแบบ PLD สวนใหญจะใชภาษาระดับสูง(high-level language)เพื่อแสดงแบบ(design) ใน logic equation , truth table หรือ sequential circuit state machine format ชุดออกแบบ PLD หลายชุดที่ยอมรับการออกแบบที่ประดิษฐขึ้นเองกับ schematic capture program ในกรณี

Combinational Circuit Design with Programmable Logic Devices 327

เหลานี้ schematic จะถูก translate เปนรูปแบบของ logic equation จากภาษาที่ใชโดยชุดการออกแบบ PLD นั่นเอง รูปที่ 6.36 กระบวนการการออกแบบPLD

สําหรับตัวอยาง รูปที่ 6.38 จะแสดงไดอะแกรมของแผนภูมิสําหรับ 1-บิต full adder ไดอะแกรมนี้คิดขึ้นโดย Mentor Graphic Design Architect schematic editor และถายทอดโดย Minc PLDesigner program มาเปนภาษา PLD ผลลัพธที่ไดของ PLD แสดงในรูป 6.37 และการลดสมการลอจิกโดย PLD คอมไพเลอร ผลลัพธที่ไดแสดงในรูป 6.38 ในหัวขอถัดไปเปนการแสดงถึง ภาษา PDL และการออกแบบภาษา PLD แบบอื่น คือ PLD ที่คลายกัน

328 Digital Logic Circuit Analysis and Design

รูป 6.36 1- bit full adder schematic diagram

6.6.1 Design Representation with PDL

PLD (PLD Designer Design Language) คือรูปแบบของ ภาษาระดับสูงซึ่งใชในอุปกรณการออกแบบของ PLD ทั้งหมด , สามารถออกแบบในสมการ , ตารางความจริง(truth table) ,ผังสภาวะ(state diagram) , ตารางสภาวะ(state table) และ รูปแบบของพฤติกรรมอื่นๆ ตัวอยางประกอบแสดงในรูป 6.37 ไฟล PLD จะอยูในสวนหัว การใชสัญลักษณแทนฟงกชันและนิพจน และการนิยามฟงกชันเพื่อเก็บการประกาศสัญลักษณอินพุตและเอาพุท และสมการลอจิก , ตารางความจริง(truth table) และ state machine ขอคิดเห็นอาจจะใชในการออกแบบไฟลทั้งหมดก็ได

Input และ Output Singnal Declarations

ทุกๆครั้งที่มีการออกแบบจะมีบางจํานวนของอินพุตภายนอกและเอาตพุต และในบางกรณีไฟลใน PLD สัญญาณจะถูกนิยามหรือประกาศกอนฟงกชันอื่นๆ ในอุปกรณ programmable logic , อินพุตภายนอกสามารถเปนอินพุต pin หรือ I/O line ซ่ึงเอาตพุตเหลานั้นจะ disabled ตัวอยางตอไปนี้จะแสดงรูปแบบของการประกาศจํานวนสัญญาณอินพุตและ เอาตพุต INPUT x,y [I3..I0] ; “dedicated input: OUTPUT x, [c3..c0] ; “combinational output OUTPUT x,y ENABLED_BY oe “combinational output with tristate drivers BIPUT x1, x2 ENABLED_BY oe “I/O line สําหรับตัวอยาง จํานวนสัญญาณที่เปนลําดับอาจจะกําหนดใหโดยใชสัญลักษณของแถว

Combinational Circuit Design with Programmable Logic Devices 329

รูปที่ 6.37 1-bit full adder PDL description generated from the schematic

คียเวิรด ENABLED_BY อาจใชในเอาตพตุเฉพาะของอปุกรณลอจิกคอื S.EQN =CIN*/B*/A

+/CIN*B*/A +/CIN*/B*A +CIN*B*A ; “(4 terms)

COUT.EQN =A*CIN +B*CIN +B*A; “(3 terms)

330 Digital Logic Circuit Analysis and Design

ตารางที่ 6.5 PLD Language Logical Operations Logic Equations

สมการลอจิกคือ ฟวสใน PDL ซ่ึงระบุไวชัดเจนโดยเขียนไวในกระดาษ การดําเนินการของ PDL ลอจิกแสดงในตาราง 6.5 ซ่ึงจะแสดงลําดับการมากอน วงเล็บก็เปนสิ่งหนึ่งที่จําเปนตองใช รูปที่ 6.39 แสดงสมการลอจิกของวงจร 1 – บิต full – adder ซ่ึงอยูใน PDL สมการใน PDL สามารถมีนิพจนไดหลายรูปแบบ จากตัวอยางจะเปนนิพจน SOP หรือ POS จะซับซอนเปนนิพจนหลายระดับ เมื่อออกแบบคอมไพเลอรทุกๆสมการสามารถแปลงเปนรูปแบบของ SOP สองระดับที่ตองการ AND / OR อารเรย ของ PAL และPLA สําหรับตัวอยางรูปที่ 6.39b แสดงเอาตพุตของคอมไพเลอร PDL สําหรับสมการ full adder ของรูปที่ 6.39a S.EQN = CIN*/B*/A +/CIN*B*/A s =(a(+)b(+)cin; +/CIN*/B*A

cout = (a*b)+(a*cin)+(b*cin); +CIN*B*A; COUT.EQN = A*CIN +B*CIN +B*A;

(a) (b) รูปที่ 6.39 การแทน full adder ใน PDL ดวยสมการลอจิก

(a) สมการ PDL ลอจิก (b) การหาสมการดวย PDL compiler

Combinational Circuit Design with Programmable Logic Devices 331

การชวยในการพัฒนาสมการลอจิกและ mapping มายังอุปกรณเฉพาะทุกๆอินพุต , เอาตพุต หรือ biput (bidirectional input/output) อาจกําหนดเปน active low สําหรับตัวอยางรูปที่ 6.40 แสดงถึงการแทนนิพจนสวติซชิงที่เหมือนกัน

x = ab cd+ = ( a + b )( c + d ) จากรูปที่ 6.40a จะเปนการแปลงนิจนของรูปแบบ SOP โดยใชทฤษฎขีอง Demorgan วงจร

AND/OR ในรูป 6.40b ถาลอจิกเปาหมายมีการแปลงไดรเวอรในอินพุต แสดงในรูป 6.40c คอมไพเลอรจะใชใน AND/OR อารเรยจากนิพจน SOP ab + cd และสมมุติเอาตพุตไดเวอรจะแปลงมันซึ่งแสดงในรูป 6.40d สัญญาณจะออกแบบที่ active low ซ่ึงแสดงในรูป 6.40e OUTPUT x; x= /(a*b+c*d); (a) LOW_TRUE OUTPUT x; x= a*b + c*d; (c) OUTPUT x;

332 Digital Logic Circuit Analysis and Design

/x=a*b+c*d; (e) รูปที่ 6.40 ใช active – hight และ active – low device output (a) PLD description ของ ab cd+

(b) Schematic diagram (active – high output) (c) PLD description ของ x = ad+cd (d)Schematic diagram (inverted output) (e) Alternate PLD from ของ x = ab + cd

Macros

Macro คือเครื่องจักรสําหรับสัญญาณซึ่งแทนโดยฟงกชันนั่นคือ ใชอยางซ้ําๆ ดังนัน้นิพจนของสวิตซชิงจะใชลอจิกเกตตางๆ หลากหลายรูปแบบของ macro สามารถนิยามไดดงันี้

MACRO macro – name [(parameters)] text;

ในลิสของรูปจะนยิาม 3 macro สวนประกอบวงจรในไดอะแกรมของแผนภูมใินรปู 6.36 สําหรับตัวอยาง AND เกต 2 เกต 2 อินพุตกาํหนดโดย MACRO AND2(io,i1)(io*i1) ;

กําหนดฟงกชัน AND 2 ซ่ึง AND มี 2 ตัวแปร io และ i1 3 copies ของ AND 2 marco เกิดขึ้นในฟงกชันของ full adder

MACRO N$11 AND2 (A,B) ; MACRO N$12 AND2 (A,CIN) ; MACRO N$13 AND2 (B,CIN) ;

กําหนด 3 AND เกต 2 อินพุตซึ่งเทียบเทากับนิพจนลอจกิ ซ่ึงขยายเปน N$11 = A * B ; N$12 = A * CIN ; N$13 = B * CIN ;

OR เกตและ XOR ที่ใชในรูปที่ 6.36 คือการอธิบายโดยใชนิยามของ macro ซ่ึงอธิบายไวในสวนของการนิยามหนาที่การทํางาน การสรางลอจิกเกต COUT , N$14 และS ที่อินพุตของมันทํางานโดยจะตองมีอินพุตของวงจรและเอาตพุตที่เปนชนิดของ AND เกต N$11, N$12 และ N$13 ซ่ึงอธิบายไวในรูป 6.38 นอกจากนีย้ังแสดงถึงสมการที่สรางขึ้นจากรายการของ PDL ดังแสดงในรูป 6.37

Combinational Circuit Design with Programmable Logic Devices 333

Truth Tables ตารางความจรงิจะแสดงผลรวมของตัวแปรอินพุตของลอจิกฟงกชันและคาของฟงกชัน

สําหรับการรวมกันของแตละตัว เพื่อเปนการประหยัดเวลา , หลายๆฟงกชันที่ใชบอยควรจะนํามาอยูในตารางความจริงเดยีวกนั สําหรับตัวอยางนี้ เปนตารางความจริงของ full adder ของในรูปที่ 6.39 ซ่ึงนํามาใสไวในรูปที่ 6.41a รูปที่ 6.41 ตารางความจริง Full adder (a) ตารางความจริง (b) ตารางความจริงของPLD

การอธิบาย PDL full adder ของตารางความจริง แสดงในรูป 6.41b บรรทัดแรกจะกําหนดตัวแปรอินพุตและเอาตพุตถูกแยกโดย (::) บรรทัดตอมาตัวแปรอินพุต 1 ตัวจะอยูในรายการและจะมีคาเอาตพุตสอดคลองกับอินพุต ถาตองการติดคาตัวแปรของอินพุตทางดานเอาตพุตกจ็ะแสดงในรูปของสมการที่ติดคาตัวแปรนั้นอยู 6.6.2 Processing a PDL Design File

หลังจากขั้นตอนการออกแบบ PDL , PDL คอมไพเลอรจะถูกใชเพื่อแปลและเพื่อลดการออกแบบซึ่งสิ่งดังกลาวจะเกี่ยวของกับหลายๆขั้นตอน ซ่ึงสามารถแสดงใหเห็นในเชิงกายภาพหรือเชิงพฤติกรรมไดโดยใชตารางความจริง (truth tables) ,ตารางสภาวะ(state tables) , หรือใชวิธีอ่ืนๆ คอมไพเลอรประกอบขึ้นโดยการแปลง state machine ใหเปนสมการลอจิกที่ประกอบดวยเอาตพุตทุกตัวโดยมีอินพุตที่เปน flip – flop เปนตัวกระตุน การออกแบบเคยอยูในรูปแบบของสมการลอจิก และสมการที่กลาวถึงนี้จะทําใหงายขึ้นโดยทําใหอยูในรูปแบบ SOP 2 ระดับ (two – level) ซ่ึงสามารถนํามาmapped กันบน AND / OR อารเรย ของอุปกรณ PAL หรือ PLA ที่เลือกไว

334 Digital Logic Circuit Analysis and Design

ในขั้นตอนการทําใหสมการงายขึ้น สมการจะถูกลดรูปโดย 1 ใน 4 ทางเลือกซึ่งจะกําหนดโดยผูใช ทางเลือกแรกไมลดทั้งหมดจะทําใหสมการอยูในรูปของ SOP ทางเลือกที่สองใชวิธีของ ESPRESSO ซ่ึงจะลดสมการไดอยางรวดเร็ว โดยการใชหนวยความจํานอย แตมันไมจําเปนวาจะไดผลดีที่สุด ทางเลือกที่สามคือใชวิธีของ ESPRESSO กับ Quine – McCluskey ทางเลือกที่ส่ีใชวิธี Quine – McCluskey ซ่ึงจะทําใหไดผลดีที่สุดแตมันจะตองใชเวลาในการคํานวณนานขึ้น และใชหนวยความจํามากขึ้น

ตัวอยางจากตารางความจริงในรูปที่ 6.41 PDL คอมไพเลอรจะทําใหสมการลอจิกดังในรูป 6.42 โดยการใชวิธีของ ESPRESSO ในการลดรูปของสมการ

COUT.EQN = A*CIN +B*CIN +B*A; “(3 terms)

S.EQN =CIN*/B*/A +/CIN*B*/A +/CIN*/B*A +CIN*B*A

หลังจากที่คอมไพเลอรแลว ขั้นตอไปคือการตรวจสอบโดยใชการจําลองฟงกชันการทํางานและภาษา PDL จะสามารถยอมให test vector และมีการจําลองเพื่อที่จะกําหนดดวยไฟลในการออกแบบ การคอมไพลสามารถทําไดทันทีดังตอไปนี้ โดยการจําลองดวยเครื่องมือ PLD SIM ของ ระบบสราง PLD เมื่อการสังเคราะหPLD ถูกรวมเขาไวในการออกแบบอื่นๆเชน Mentor Graphic Falcon Framework ซ่ึงขั้นตอนถัดไปคือการ mapping สมการใหไปยังอุปกรณที่เลือก ระบบ PLDesigner จะมี library และจะสามารถเลือกเครื่องมือที่ดีที่สุดใหเหมาะกับการออกแบบไดโดยจะไดตามขอกําหนดที่ผูใชไดระบุไว

สรุป สําหรับบทนี้เราสามรถใช programmable logic device ในการดําเนนิการรวมวงจรลอจิก จะมี

การนําเสนอโครงสรางวงจรพื้นฐานของ three type ของ PLDs , และอธิบายการกระบวนการ mapping ลอจิกฟงกชัน, รวมถึงมีตัวอยางประกอบ ทายที่สุดอธิบายการใชคอมพิวเตอรเปนเครื่องมือในการออกแบบเพือ่พัฒนาวงจร PLD

Combinational Circuit Design with Programmable Logic Devices 335

คําถามทายบทที่ 6 6.1 จงออกแบบการแปลง BCD to excess – 3 code โดยใช (a) Logic network (two-level NAND gate) (b) PLA(ในรูป 6.7) (c) ROM (ในรูป 6.25) (d) PAL (ในรูป 6.30) 6.2 จงดําเนนิการฟงกชันตอไปนี้โดยใช (a) 4-to-16 decoder และ logic gate (b) PLA(ในรูป 6.7) (c) ROM (ในรูป 6.25) (d) PAL (ในรูป 6.30) f1(A,B,C,D) = m∑ (0,1,2,3,6,9,11) f2(A,B,C,D) = m∑ (0,1,6,8,9) f3(A,B,C,D) = m∑ (2,3,8,9,11) 6.3 จงใช 32 x 6 ROM ในการแปลงเปนเลขฐานสอง 6-bit เปน 2 digit BCD

(a5a4a3a2a1a0)2 = [(x3x2x1x0)BCD (y3y2y1y0)BCD]10 โดยแสดง ROM ในรูปแบบของตารางความจริง

6.4 จงแสดงการดาํเนินการฟงกชันในขอ 6.2 โดยใช (a) PLS100FPLA (b) PAL16L8

6.5 จงแสดงการลบเลขฐานสองโดยใช (a) PLS100FPLA

(b) PAL16L8