CPLD (Complex Programmable Logic Device) คืออะไร?

บทความนี้จะสอนคุณเกี่ยวกับอุปกรณ์อิเล็กทรอนิกส์ดิจิทัลที่สำคัญที่เรียกว่า CPLD (Complex Programmable Logic Device).

CPLD (Complex Programmable Logic Device) คืออะไร?

เทคโนโลยีสารสนเทศ อินเทอร์เน็ต และชิปอิเล็กทรอนิกส์ ล้วนเป็นรากฐานของยุคดิจิทัลสมัยใหม่ เทคโนโลยีสมัยใหม่เกือบทั้งหมดมีรากฐานมาจากอิเล็กทรอนิกส์ ตั้งแต่อินเทอร์เน็ตและการสื่อสารเคลื่อนที่ ไปจนถึงคอมพิวเตอร์และเซิร์ฟเวอร์ อิเล็กทรอนิกส์เป็นสาขาที่กว้างขวางและมีสาขาย่อยมากมาย บทความนี้จะแนะนำคุณเกี่ยวกับอุปกรณ์อิเล็กทรอนิกส์ดิจิทัลที่สำคัญที่เรียกว่า CPLD (Complex Programmable Logic Device)

การพัฒนาอิเล็กทรอนิกส์ดิจิทัล

อิเล็กทรอนิกส์เป็นสาขาที่ซับซ้อน มีอุปกรณ์และส่วนประกอบอิเล็กทรอนิกส์อยู่หลายพันชิ้น อย่างไรก็ตาม โดยทั่วไปแล้ว อุปกรณ์อิเล็กทรอนิกส์แบ่งออกเป็นสองประเภทหลัก ได้แก่ อนาล็อกและดิจิทัล

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

ต่างจากระดับข้อมูลนับไม่ถ้วนในสัญญาณอนาล็อก สัญญาณดิจิทัลประกอบด้วยระดับตรรกะเพียงสองระดับ (1 และ 0)

รูปที่ 1: สัญญาณอนาล็อกเทียบกับสัญญาณดิจิตอล

ประเภทของอุปกรณ์อิเล็กทรอนิกส์ดิจิทัล

อุปกรณ์อิเล็กทรอนิกส์ดิจิทัลในยุคแรกนั้นค่อนข้างเรียบง่ายและมีเกตตรรกะเพียงไม่กี่ตัว อย่างไรก็ตาม เมื่อเวลาผ่านไป ความซับซ้อนของวงจรดิจิทัลได้เพิ่มขึ้น และความสามารถในการตั้งโปรแกรมได้กลายเป็นคุณสมบัติสำคัญของอุปกรณ์ควบคุมดิจิทัลสมัยใหม่ อุปกรณ์ดิจิทัลสองประเภทที่แตกต่างกันได้เกิดขึ้นเพื่อให้สามารถตั้งโปรแกรมได้ ประเภทแรกประกอบด้วยฮาร์ดแวร์แบบคงที่พร้อมซอฟต์แวร์ที่สามารถตั้งโปรแกรมใหม่ได้ ตัวอย่างของอุปกรณ์ประเภทนี้ ได้แก่ ไมโครคอนโทรลเลอร์และไมโครโปรเซสเซอร์ ประเภทที่สองประกอบด้วยฮาร์ดแวร์ที่กำหนดค่าใหม่ได้เพื่อให้ได้การออกแบบวงจรตรรกะที่ยืดหยุ่น ตัวอย่างของอุปกรณ์ประเภทนี้ ได้แก่ FPGA, SPLD และ CPLD

ชิปไมโครคอนโทรลเลอร์มีวงจรลอจิกดิจิทัลแบบคงที่ซึ่งไม่สามารถแก้ไขได้ อย่างไรก็ตาม ความสามารถในการตั้งโปรแกรมทำได้โดยการเปลี่ยนแปลงซอฟต์แวร์/เฟิร์มแวร์ที่ทำงานบนชิปไมโครคอนโทรลเลอร์ ในทางตรงกันข้าม PLD (อุปกรณ์ลอจิกที่ตั้งโปรแกรมได้) ประกอบด้วยเซลล์ลอจิกหลายเซลล์ที่สามารถกำหนดค่าให้เชื่อมต่อได้โดยใช้ HDL (ภาษาอธิบายฮาร์ดแวร์) ดังนั้น วงจรลอจิกจำนวนมากจึงสามารถนำไปใช้งานได้โดยใช้ PLD ด้วยเหตุนี้ ประสิทธิภาพและความเร็วของ PLD จึงมักเหนือกว่าไมโครคอนโทรลเลอร์และไมโครโปรเซสเซอร์ นอกจากนี้ PLD ยังมอบอิสระและความยืดหยุ่นที่มากขึ้นแก่ผู้ออกแบบวงจร

รูปที่ 2: ประเภทของอุปกรณ์ดิจิทัลแบบตั้งโปรแกรมได้

วงจรรวมสำหรับการควบคุมแบบดิจิทัลและการประมวลผลสัญญาณโดยทั่วไปประกอบด้วยตัวประมวลผล วงจรตรรกะ และหน่วยความจำ แต่ละโมดูลเหล่านี้สามารถนำไปใช้งานได้โดยใช้เทคโนโลยีที่แตกต่างกัน ตัวเลือกที่มีแสดงไว้ในรูปต่อไปนี้:

รูปที่ 3: โมดูลในไอซีดิจิทัล

เกี่ยวกับ CPLD

ดังที่ได้กล่าวไปแล้วก่อนหน้านี้ มี PLD (อุปกรณ์ลอจิกที่ตั้งโปรแกรมได้) หลายประเภท เช่น FPGA, CPLD และ SPLD ความแตกต่างหลักระหว่างอุปกรณ์เหล่านี้อยู่ที่ความซับซ้อนของวงจรและจำนวนเซลล์ลอจิกที่มีอยู่ โดยทั่วไป SPLD ประกอบด้วยเกตไม่กี่ร้อยเกต ในขณะที่ CPLD ประกอบด้วยเกตลอจิกไม่กี่พันเกต

ในแง่ของความซับซ้อน CPLD (อุปกรณ์ลอจิกที่ตั้งโปรแกรมได้แบบซับซ้อน) อยู่ระหว่าง SPLD (อุปกรณ์ลอจิกที่ตั้งโปรแกรมได้แบบง่าย) และ FPGA จึงสืบทอดคุณสมบัติจากทั้งสองแบบ CPLD มีความซับซ้อนมากกว่า SPLD แต่น้อยกว่า FPGA

SPLD ที่ใช้กันทั่วไป ได้แก่ PAL (ตรรกะอาร์เรย์แบบโปรแกรมได้), PLA (ตรรกะอาร์เรย์แบบโปรแกรมได้) และ GAL (ตรรกะอาร์เรย์ทั่วไป) PLA ประกอบด้วยระนาบ AND และระนาบ OR โปรแกรมอธิบายฮาร์ดแวร์จะกำหนดการเชื่อมต่อระหว่างระนาบเหล่านี้ ภาพประกอบของ PLA แสดงไว้ด้านล่าง:

รูปที่ 4: อาร์เรย์ลอจิกที่ตั้งโปรแกรมได้ (PLA)

PAL ค่อนข้างคล้ายกับ PLA แต่มีระนาบที่ตั้งโปรแกรมได้เพียงระนาบเดียวแทนที่จะเป็นสองระนาบ (ระนาบ AND) การแก้ไขระนาบเดียวช่วยลดความซับซ้อนของฮาร์ดแวร์ อย่างไรก็ตาม ข้อดีนี้ต้องแลกมาด้วยความยืดหยุ่น

รูปที่ 5: ตรรกะอาร์เรย์ที่ตั้งโปรแกรมได้ (PAL)

สถาปัตยกรรม CPLD

CPLD ถือได้ว่าเป็นวิวัฒนาการของ PAL และประกอบด้วยโครงสร้าง PAL หลายแบบที่เรียกว่ามาโครเซลล์ ในแพ็คเกจ CPLD ขาอินพุตทั้งหมดจะพร้อมใช้งานสำหรับมาโครเซลล์แต่ละอัน ในขณะที่มาโครเซลล์แต่ละอันจะมีขาเอาต์พุตเฉพาะ แผนภาพบล็อกของ CPLD แสดงไว้ดังต่อไปนี้

รูปที่ 6: แผนผังบล็อก CPLD

จากแผนภาพบล็อก เราจะเห็นว่า CPLD ประกอบด้วยมาโครเซลล์หรือบล็อกฟังก์ชันจำนวนมาก มาโครเซลล์เหล่านี้เชื่อมต่อกันผ่านอินเตอร์คอนเนคต์แบบตั้งโปรแกรมได้ หรือที่รู้จักกันในชื่อ GIM (global interconnection matrix) การกำหนดค่า GIM ใหม่ทำให้สามารถนำวงจรตรรกะต่างๆ มาใช้ CPLD โต้ตอบกับโลกภายนอกผ่านพอร์ต I/O ดิจิทัล

ความแตกต่างระหว่าง CPLD และ FPGA

ในช่วงไม่กี่ปีที่ผ่านมา FPGA ได้รับความนิยมอย่างมากในการออกแบบระบบดิจิทัลแบบตั้งโปรแกรมได้ FPGA มีทั้งความคล้ายคลึงและความแตกต่างมากมายระหว่าง CPLD และ FPGA ในด้านความคล้ายคลึงกัน ทั้งสองเป็นอุปกรณ์ลอจิกแบบตั้งโปรแกรมได้ซึ่งประกอบด้วยอาร์เรย์ของเกตลอจิก อุปกรณ์ทั้งสองได้รับการตั้งโปรแกรมโดยใช้ HDL เช่น Verilog HDL หรือ VHDL

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

ความแตกต่างที่สำคัญอีกประการหนึ่งระหว่างอุปกรณ์ทั้งสองคือ CPLD มีหน่วยความจำ EEPROM (หน่วยความจำเข้าถึงโดยสุ่มแบบโปรแกรมที่สามารถลบได้ด้วยไฟฟ้า) ในตัว ในขณะที่ FPGA ใช้หน่วยความจำแบบลบเลือน ซึ่งทำให้ CPLD สามารถเก็บข้อมูลไว้ได้แม้ในขณะที่ปิดเครื่อง ในขณะที่ FPGA ไม่สามารถทำได้ นอกจากนี้ หน่วยความจำแบบลบเลือนในตัวยังช่วยให้ CPLD สามารถเริ่มทำงานได้ทันทีหลังจากเปิดเครื่อง ในทางกลับกัน FPGA ส่วนใหญ่ต้องใช้บิตสตรีมจากหน่วยความจำแบบลบเลือนภายนอกเพื่อบูตเครื่อง

ในด้านประสิทธิภาพ FPGA มีเวลาแฝงในการประมวลผลสัญญาณที่คาดเดาไม่ได้เนื่องจากสถาปัตยกรรมที่ซับซ้อนประกอบกับการเขียนโปรแกรมที่ผู้ใช้กำหนด ใน CPLD เวลาแฝงระหว่างขาต่อขาจะต่ำกว่าอย่างมากเนื่องจากสถาปัตยกรรมที่เรียบง่ายกว่า ความหน่วงในการประมวลผลสัญญาณเป็นข้อพิจารณาที่สำคัญเมื่อออกแบบแอปพลิเคชันแบบฝังตัวแบบเรียลไทม์และที่สำคัญต่อความปลอดภัย

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

ในแง่ของความปลอดภัยของข้อมูล CPLD มีความปลอดภัยมากกว่าเนื่องจากมีหน่วยความจำติดตั้งอยู่ในชิป ในทางตรงกันข้าม FPGA ส่วนใหญ่จำเป็นต้องใช้หน่วยความจำแบบไม่ลบเลือนภายนอก ซึ่งอาจก่อให้เกิดภัยคุกคามต่อความปลอดภัยของข้อมูล แม้ว่า FPGA จะมีอัลกอริทึมการเข้ารหัสข้อมูล แต่ CPLD ก็มีความปลอดภัยโดยเนื้อแท้มากกว่า FPGA

การประยุกต์ใช้ CPLD

CPLD ถูกนำมาใช้ในวงจรควบคุมดิจิทัลและวงจรประมวลผลสัญญาณที่มีความซับซ้อนต่ำถึงปานกลางมากมาย การประยุกต์ใช้งานที่สำคัญ ได้แก่:

  1. CPLD สามารถใช้เป็นบูตโหลดเดอร์สำหรับ FPGA และระบบที่ตั้งโปรแกรมได้อื่นๆ
  2. CPLD มักใช้เป็นตัวถอดรหัสที่อยู่และเครื่องสถานะแบบกำหนดเองในระบบดิจิทัล
  3. เนื่องจากมีขนาดเล็กและกินไฟน้อย CPLD จึงเหมาะอย่างยิ่งสำหรับการใช้ในอุปกรณ์ดิจิทัลพกพาและแบบพกพา
  4. CPLD ยังใช้ในการใช้งานควบคุมที่สำคัญต่อความปลอดภัยอีกด้วย

ผู้ผลิต CPLD

CPLD และ FPGA เป็นอุปกรณ์ลอจิกแบบตั้งโปรแกรมได้ระดับไฮเอนด์ที่ผลิตได้ยาก ผู้ผลิต CPLD รายใหญ่ ได้แก่:

  1. Altera (ถูกซื้อโดย Intel)
  2. Xilinx (ถูกซื้อโดย AMD)
  3. Atmel (ซื้อโดย Microchip)
  4. สารกึ่งตัวนำแบบแลตทิซ

การเขียนโปรแกรมและการพัฒนา CPLD

ขั้นตอนแรกในการพัฒนาระบบดิจิทัลที่ใช้ CPLD คือการเลือกผู้ผลิตอุปกรณ์ ดังที่ได้กล่าวไปแล้ว อุปกรณ์เหล่านี้ผลิตโดยผู้ผลิตหลายราย หลังจากตรวจสอบข้อกำหนดของโครงการและเอกสารข้อมูลอุปกรณ์แล้ว จำเป็นต้องเลือกอุปกรณ์ที่เหมาะสม ปัจจัยที่กำหนดประกอบด้วย ต้นทุน การใช้พลังงาน จำนวน I/O และมาโครเซลล์ แรงดันไฟฟ้าใช้งาน และคุณลักษณะทางความร้อน

เมื่อเลือกโมเดล CPLD แล้ว ขั้นตอนต่อไปคือการตั้งค่าสภาพแวดล้อมการเขียนโปรแกรมและการทดสอบ สภาพแวดล้อมนี้ประกอบด้วยชุดซอฟต์แวร์ที่ใช้สำหรับการออกแบบ ทดสอบ และตรวจสอบวงจร ตัวอย่างของซอฟต์แวร์การเขียนโปรแกรม ได้แก่ Altera Quartus, Xilinx ISE/Vivado, Lattice Diamond และ Atmel ProChip Designer ชุดซอฟต์แวร์เหล่านี้ช่วยให้สามารถพัฒนาโปรแกรมโดยใช้ภาษาฮาร์ดแวร์ Verilog และ VHDL ได้

หลังจากสร้างคำอธิบายตรรกะใน HDL แล้ว อุปกรณ์ฮาร์ดแวร์/บอร์ดพัฒนาจะเชื่อมต่อกับซอฟต์แวร์ผ่านอะแดปเตอร์สายเคเบิลสำหรับการเขียนโปรแกรมและแก้ไขจุดบกพร่อง บอร์ดพัฒนาหลายรุ่นมีโปรแกรมเมอร์ในตัว อย่างไรก็ตาม หากคุณไม่มีโปรแกรมเมอร์ คุณสามารถใช้โปรแกรมเมอร์ JTAG ได้

หลังจากออกแบบ ทดสอบ และตรวจสอบโปรแกรม CPLD แล้ว โปรแกรมจะถูกดาวน์โหลดลงในชิป และสามารถผลิตต้นแบบระบบได้ สามารถออกแบบแผงวงจรพิมพ์ (PCB) ที่ประกอบด้วย CPLD และส่วนประกอบอิเล็กทรอนิกส์โดยรอบได้ หลังจากบูรณาการแล้ว อุปกรณ์จะถูกทดสอบหาข้อผิดพลาดและข้อบกพร่อง หลังจากดีบักแล้ว ต้นแบบก็พร้อมสำหรับการผลิต

อิเล็กทรอนิกส์ดิจิทัลถือเป็นแกนหลักของเทคโนโลยีสารสนเทศสมัยใหม่ ความสามารถในการตั้งโปรแกรมได้เป็นปัจจัยสำคัญในการออกแบบระบบดิจิทัล อุปกรณ์ดิจิทัลแบบตั้งโปรแกรมได้แบ่งออกเป็นสองประเภท ได้แก่ โปรเซสเซอร์และ PLD PLD มีประสิทธิภาพและความยืดหยุ่นที่เหนือกว่าเนื่องจากฮาร์ดแวร์ที่สามารถปรับแต่งได้ CPLD เป็นหนึ่งในสามประเภทหลักของ PLD ร่วมกับ SPLD และ FPGA ในแง่ของประสิทธิภาพและความซับซ้อน CPLD อยู่ระหว่าง SPLD และ FPGA ด้วย EEPROM แบบไม่ลบเลือนในตัว CPLD มีข้อได้เปรียบเหนือ FPGA ในแง่ของความปลอดภัยของข้อมูลและความเร็วในการบูตที่เพิ่มขึ้น

ในบทความนี้ เราจะให้ภาพรวมที่ครบถ้วนของ CPLD รวมถึงสถาปัตยกรรม แผนผัง แอปพลิเคชัน และวิธีการการเขียนโปรแกรม

CPLD (Complex Programmable Logic Device) คืออะไร?

บทความนี้จะสอนคุณเกี่ยวกับอุปกรณ์อิเล็กทรอนิกส์ดิจิทัลที่สำคัญที่เรียกว่า CPLD (Complex Programmable Logic Device).

นักเขียนบทความ
by 
นักเขียนบทความ
CPLD (Complex Programmable Logic Device) คืออะไร?

CPLD (Complex Programmable Logic Device) คืออะไร?

บทความนี้จะสอนคุณเกี่ยวกับอุปกรณ์อิเล็กทรอนิกส์ดิจิทัลที่สำคัญที่เรียกว่า CPLD (Complex Programmable Logic Device).

เทคโนโลยีสารสนเทศ อินเทอร์เน็ต และชิปอิเล็กทรอนิกส์ ล้วนเป็นรากฐานของยุคดิจิทัลสมัยใหม่ เทคโนโลยีสมัยใหม่เกือบทั้งหมดมีรากฐานมาจากอิเล็กทรอนิกส์ ตั้งแต่อินเทอร์เน็ตและการสื่อสารเคลื่อนที่ ไปจนถึงคอมพิวเตอร์และเซิร์ฟเวอร์ อิเล็กทรอนิกส์เป็นสาขาที่กว้างขวางและมีสาขาย่อยมากมาย บทความนี้จะแนะนำคุณเกี่ยวกับอุปกรณ์อิเล็กทรอนิกส์ดิจิทัลที่สำคัญที่เรียกว่า CPLD (Complex Programmable Logic Device)

การพัฒนาอิเล็กทรอนิกส์ดิจิทัล

อิเล็กทรอนิกส์เป็นสาขาที่ซับซ้อน มีอุปกรณ์และส่วนประกอบอิเล็กทรอนิกส์อยู่หลายพันชิ้น อย่างไรก็ตาม โดยทั่วไปแล้ว อุปกรณ์อิเล็กทรอนิกส์แบ่งออกเป็นสองประเภทหลัก ได้แก่ อนาล็อกและดิจิทัล

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

ต่างจากระดับข้อมูลนับไม่ถ้วนในสัญญาณอนาล็อก สัญญาณดิจิทัลประกอบด้วยระดับตรรกะเพียงสองระดับ (1 และ 0)

รูปที่ 1: สัญญาณอนาล็อกเทียบกับสัญญาณดิจิตอล

ประเภทของอุปกรณ์อิเล็กทรอนิกส์ดิจิทัล

อุปกรณ์อิเล็กทรอนิกส์ดิจิทัลในยุคแรกนั้นค่อนข้างเรียบง่ายและมีเกตตรรกะเพียงไม่กี่ตัว อย่างไรก็ตาม เมื่อเวลาผ่านไป ความซับซ้อนของวงจรดิจิทัลได้เพิ่มขึ้น และความสามารถในการตั้งโปรแกรมได้กลายเป็นคุณสมบัติสำคัญของอุปกรณ์ควบคุมดิจิทัลสมัยใหม่ อุปกรณ์ดิจิทัลสองประเภทที่แตกต่างกันได้เกิดขึ้นเพื่อให้สามารถตั้งโปรแกรมได้ ประเภทแรกประกอบด้วยฮาร์ดแวร์แบบคงที่พร้อมซอฟต์แวร์ที่สามารถตั้งโปรแกรมใหม่ได้ ตัวอย่างของอุปกรณ์ประเภทนี้ ได้แก่ ไมโครคอนโทรลเลอร์และไมโครโปรเซสเซอร์ ประเภทที่สองประกอบด้วยฮาร์ดแวร์ที่กำหนดค่าใหม่ได้เพื่อให้ได้การออกแบบวงจรตรรกะที่ยืดหยุ่น ตัวอย่างของอุปกรณ์ประเภทนี้ ได้แก่ FPGA, SPLD และ CPLD

ชิปไมโครคอนโทรลเลอร์มีวงจรลอจิกดิจิทัลแบบคงที่ซึ่งไม่สามารถแก้ไขได้ อย่างไรก็ตาม ความสามารถในการตั้งโปรแกรมทำได้โดยการเปลี่ยนแปลงซอฟต์แวร์/เฟิร์มแวร์ที่ทำงานบนชิปไมโครคอนโทรลเลอร์ ในทางตรงกันข้าม PLD (อุปกรณ์ลอจิกที่ตั้งโปรแกรมได้) ประกอบด้วยเซลล์ลอจิกหลายเซลล์ที่สามารถกำหนดค่าให้เชื่อมต่อได้โดยใช้ HDL (ภาษาอธิบายฮาร์ดแวร์) ดังนั้น วงจรลอจิกจำนวนมากจึงสามารถนำไปใช้งานได้โดยใช้ PLD ด้วยเหตุนี้ ประสิทธิภาพและความเร็วของ PLD จึงมักเหนือกว่าไมโครคอนโทรลเลอร์และไมโครโปรเซสเซอร์ นอกจากนี้ PLD ยังมอบอิสระและความยืดหยุ่นที่มากขึ้นแก่ผู้ออกแบบวงจร

รูปที่ 2: ประเภทของอุปกรณ์ดิจิทัลแบบตั้งโปรแกรมได้

วงจรรวมสำหรับการควบคุมแบบดิจิทัลและการประมวลผลสัญญาณโดยทั่วไปประกอบด้วยตัวประมวลผล วงจรตรรกะ และหน่วยความจำ แต่ละโมดูลเหล่านี้สามารถนำไปใช้งานได้โดยใช้เทคโนโลยีที่แตกต่างกัน ตัวเลือกที่มีแสดงไว้ในรูปต่อไปนี้:

รูปที่ 3: โมดูลในไอซีดิจิทัล

เกี่ยวกับ CPLD

ดังที่ได้กล่าวไปแล้วก่อนหน้านี้ มี PLD (อุปกรณ์ลอจิกที่ตั้งโปรแกรมได้) หลายประเภท เช่น FPGA, CPLD และ SPLD ความแตกต่างหลักระหว่างอุปกรณ์เหล่านี้อยู่ที่ความซับซ้อนของวงจรและจำนวนเซลล์ลอจิกที่มีอยู่ โดยทั่วไป SPLD ประกอบด้วยเกตไม่กี่ร้อยเกต ในขณะที่ CPLD ประกอบด้วยเกตลอจิกไม่กี่พันเกต

ในแง่ของความซับซ้อน CPLD (อุปกรณ์ลอจิกที่ตั้งโปรแกรมได้แบบซับซ้อน) อยู่ระหว่าง SPLD (อุปกรณ์ลอจิกที่ตั้งโปรแกรมได้แบบง่าย) และ FPGA จึงสืบทอดคุณสมบัติจากทั้งสองแบบ CPLD มีความซับซ้อนมากกว่า SPLD แต่น้อยกว่า FPGA

SPLD ที่ใช้กันทั่วไป ได้แก่ PAL (ตรรกะอาร์เรย์แบบโปรแกรมได้), PLA (ตรรกะอาร์เรย์แบบโปรแกรมได้) และ GAL (ตรรกะอาร์เรย์ทั่วไป) PLA ประกอบด้วยระนาบ AND และระนาบ OR โปรแกรมอธิบายฮาร์ดแวร์จะกำหนดการเชื่อมต่อระหว่างระนาบเหล่านี้ ภาพประกอบของ PLA แสดงไว้ด้านล่าง:

รูปที่ 4: อาร์เรย์ลอจิกที่ตั้งโปรแกรมได้ (PLA)

PAL ค่อนข้างคล้ายกับ PLA แต่มีระนาบที่ตั้งโปรแกรมได้เพียงระนาบเดียวแทนที่จะเป็นสองระนาบ (ระนาบ AND) การแก้ไขระนาบเดียวช่วยลดความซับซ้อนของฮาร์ดแวร์ อย่างไรก็ตาม ข้อดีนี้ต้องแลกมาด้วยความยืดหยุ่น

รูปที่ 5: ตรรกะอาร์เรย์ที่ตั้งโปรแกรมได้ (PAL)

สถาปัตยกรรม CPLD

CPLD ถือได้ว่าเป็นวิวัฒนาการของ PAL และประกอบด้วยโครงสร้าง PAL หลายแบบที่เรียกว่ามาโครเซลล์ ในแพ็คเกจ CPLD ขาอินพุตทั้งหมดจะพร้อมใช้งานสำหรับมาโครเซลล์แต่ละอัน ในขณะที่มาโครเซลล์แต่ละอันจะมีขาเอาต์พุตเฉพาะ แผนภาพบล็อกของ CPLD แสดงไว้ดังต่อไปนี้

รูปที่ 6: แผนผังบล็อก CPLD

จากแผนภาพบล็อก เราจะเห็นว่า CPLD ประกอบด้วยมาโครเซลล์หรือบล็อกฟังก์ชันจำนวนมาก มาโครเซลล์เหล่านี้เชื่อมต่อกันผ่านอินเตอร์คอนเนคต์แบบตั้งโปรแกรมได้ หรือที่รู้จักกันในชื่อ GIM (global interconnection matrix) การกำหนดค่า GIM ใหม่ทำให้สามารถนำวงจรตรรกะต่างๆ มาใช้ CPLD โต้ตอบกับโลกภายนอกผ่านพอร์ต I/O ดิจิทัล

ความแตกต่างระหว่าง CPLD และ FPGA

ในช่วงไม่กี่ปีที่ผ่านมา FPGA ได้รับความนิยมอย่างมากในการออกแบบระบบดิจิทัลแบบตั้งโปรแกรมได้ FPGA มีทั้งความคล้ายคลึงและความแตกต่างมากมายระหว่าง CPLD และ FPGA ในด้านความคล้ายคลึงกัน ทั้งสองเป็นอุปกรณ์ลอจิกแบบตั้งโปรแกรมได้ซึ่งประกอบด้วยอาร์เรย์ของเกตลอจิก อุปกรณ์ทั้งสองได้รับการตั้งโปรแกรมโดยใช้ HDL เช่น Verilog HDL หรือ VHDL

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

ความแตกต่างที่สำคัญอีกประการหนึ่งระหว่างอุปกรณ์ทั้งสองคือ CPLD มีหน่วยความจำ EEPROM (หน่วยความจำเข้าถึงโดยสุ่มแบบโปรแกรมที่สามารถลบได้ด้วยไฟฟ้า) ในตัว ในขณะที่ FPGA ใช้หน่วยความจำแบบลบเลือน ซึ่งทำให้ CPLD สามารถเก็บข้อมูลไว้ได้แม้ในขณะที่ปิดเครื่อง ในขณะที่ FPGA ไม่สามารถทำได้ นอกจากนี้ หน่วยความจำแบบลบเลือนในตัวยังช่วยให้ CPLD สามารถเริ่มทำงานได้ทันทีหลังจากเปิดเครื่อง ในทางกลับกัน FPGA ส่วนใหญ่ต้องใช้บิตสตรีมจากหน่วยความจำแบบลบเลือนภายนอกเพื่อบูตเครื่อง

ในด้านประสิทธิภาพ FPGA มีเวลาแฝงในการประมวลผลสัญญาณที่คาดเดาไม่ได้เนื่องจากสถาปัตยกรรมที่ซับซ้อนประกอบกับการเขียนโปรแกรมที่ผู้ใช้กำหนด ใน CPLD เวลาแฝงระหว่างขาต่อขาจะต่ำกว่าอย่างมากเนื่องจากสถาปัตยกรรมที่เรียบง่ายกว่า ความหน่วงในการประมวลผลสัญญาณเป็นข้อพิจารณาที่สำคัญเมื่อออกแบบแอปพลิเคชันแบบฝังตัวแบบเรียลไทม์และที่สำคัญต่อความปลอดภัย

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

ในแง่ของความปลอดภัยของข้อมูล CPLD มีความปลอดภัยมากกว่าเนื่องจากมีหน่วยความจำติดตั้งอยู่ในชิป ในทางตรงกันข้าม FPGA ส่วนใหญ่จำเป็นต้องใช้หน่วยความจำแบบไม่ลบเลือนภายนอก ซึ่งอาจก่อให้เกิดภัยคุกคามต่อความปลอดภัยของข้อมูล แม้ว่า FPGA จะมีอัลกอริทึมการเข้ารหัสข้อมูล แต่ CPLD ก็มีความปลอดภัยโดยเนื้อแท้มากกว่า FPGA

การประยุกต์ใช้ CPLD

CPLD ถูกนำมาใช้ในวงจรควบคุมดิจิทัลและวงจรประมวลผลสัญญาณที่มีความซับซ้อนต่ำถึงปานกลางมากมาย การประยุกต์ใช้งานที่สำคัญ ได้แก่:

  1. CPLD สามารถใช้เป็นบูตโหลดเดอร์สำหรับ FPGA และระบบที่ตั้งโปรแกรมได้อื่นๆ
  2. CPLD มักใช้เป็นตัวถอดรหัสที่อยู่และเครื่องสถานะแบบกำหนดเองในระบบดิจิทัล
  3. เนื่องจากมีขนาดเล็กและกินไฟน้อย CPLD จึงเหมาะอย่างยิ่งสำหรับการใช้ในอุปกรณ์ดิจิทัลพกพาและแบบพกพา
  4. CPLD ยังใช้ในการใช้งานควบคุมที่สำคัญต่อความปลอดภัยอีกด้วย

ผู้ผลิต CPLD

CPLD และ FPGA เป็นอุปกรณ์ลอจิกแบบตั้งโปรแกรมได้ระดับไฮเอนด์ที่ผลิตได้ยาก ผู้ผลิต CPLD รายใหญ่ ได้แก่:

  1. Altera (ถูกซื้อโดย Intel)
  2. Xilinx (ถูกซื้อโดย AMD)
  3. Atmel (ซื้อโดย Microchip)
  4. สารกึ่งตัวนำแบบแลตทิซ

การเขียนโปรแกรมและการพัฒนา CPLD

ขั้นตอนแรกในการพัฒนาระบบดิจิทัลที่ใช้ CPLD คือการเลือกผู้ผลิตอุปกรณ์ ดังที่ได้กล่าวไปแล้ว อุปกรณ์เหล่านี้ผลิตโดยผู้ผลิตหลายราย หลังจากตรวจสอบข้อกำหนดของโครงการและเอกสารข้อมูลอุปกรณ์แล้ว จำเป็นต้องเลือกอุปกรณ์ที่เหมาะสม ปัจจัยที่กำหนดประกอบด้วย ต้นทุน การใช้พลังงาน จำนวน I/O และมาโครเซลล์ แรงดันไฟฟ้าใช้งาน และคุณลักษณะทางความร้อน

เมื่อเลือกโมเดล CPLD แล้ว ขั้นตอนต่อไปคือการตั้งค่าสภาพแวดล้อมการเขียนโปรแกรมและการทดสอบ สภาพแวดล้อมนี้ประกอบด้วยชุดซอฟต์แวร์ที่ใช้สำหรับการออกแบบ ทดสอบ และตรวจสอบวงจร ตัวอย่างของซอฟต์แวร์การเขียนโปรแกรม ได้แก่ Altera Quartus, Xilinx ISE/Vivado, Lattice Diamond และ Atmel ProChip Designer ชุดซอฟต์แวร์เหล่านี้ช่วยให้สามารถพัฒนาโปรแกรมโดยใช้ภาษาฮาร์ดแวร์ Verilog และ VHDL ได้

หลังจากสร้างคำอธิบายตรรกะใน HDL แล้ว อุปกรณ์ฮาร์ดแวร์/บอร์ดพัฒนาจะเชื่อมต่อกับซอฟต์แวร์ผ่านอะแดปเตอร์สายเคเบิลสำหรับการเขียนโปรแกรมและแก้ไขจุดบกพร่อง บอร์ดพัฒนาหลายรุ่นมีโปรแกรมเมอร์ในตัว อย่างไรก็ตาม หากคุณไม่มีโปรแกรมเมอร์ คุณสามารถใช้โปรแกรมเมอร์ JTAG ได้

หลังจากออกแบบ ทดสอบ และตรวจสอบโปรแกรม CPLD แล้ว โปรแกรมจะถูกดาวน์โหลดลงในชิป และสามารถผลิตต้นแบบระบบได้ สามารถออกแบบแผงวงจรพิมพ์ (PCB) ที่ประกอบด้วย CPLD และส่วนประกอบอิเล็กทรอนิกส์โดยรอบได้ หลังจากบูรณาการแล้ว อุปกรณ์จะถูกทดสอบหาข้อผิดพลาดและข้อบกพร่อง หลังจากดีบักแล้ว ต้นแบบก็พร้อมสำหรับการผลิต

อิเล็กทรอนิกส์ดิจิทัลถือเป็นแกนหลักของเทคโนโลยีสารสนเทศสมัยใหม่ ความสามารถในการตั้งโปรแกรมได้เป็นปัจจัยสำคัญในการออกแบบระบบดิจิทัล อุปกรณ์ดิจิทัลแบบตั้งโปรแกรมได้แบ่งออกเป็นสองประเภท ได้แก่ โปรเซสเซอร์และ PLD PLD มีประสิทธิภาพและความยืดหยุ่นที่เหนือกว่าเนื่องจากฮาร์ดแวร์ที่สามารถปรับแต่งได้ CPLD เป็นหนึ่งในสามประเภทหลักของ PLD ร่วมกับ SPLD และ FPGA ในแง่ของประสิทธิภาพและความซับซ้อน CPLD อยู่ระหว่าง SPLD และ FPGA ด้วย EEPROM แบบไม่ลบเลือนในตัว CPLD มีข้อได้เปรียบเหนือ FPGA ในแง่ของความปลอดภัยของข้อมูลและความเร็วในการบูตที่เพิ่มขึ้น

ในบทความนี้ เราจะให้ภาพรวมที่ครบถ้วนของ CPLD รวมถึงสถาปัตยกรรม แผนผัง แอปพลิเคชัน และวิธีการการเขียนโปรแกรม

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

CPLD (Complex Programmable Logic Device) คืออะไร?

CPLD (Complex Programmable Logic Device) คืออะไร?

บทความนี้จะสอนคุณเกี่ยวกับอุปกรณ์อิเล็กทรอนิกส์ดิจิทัลที่สำคัญที่เรียกว่า CPLD (Complex Programmable Logic Device).

Lorem ipsum dolor amet consectetur adipiscing elit tortor massa arcu non.

เทคโนโลยีสารสนเทศ อินเทอร์เน็ต และชิปอิเล็กทรอนิกส์ ล้วนเป็นรากฐานของยุคดิจิทัลสมัยใหม่ เทคโนโลยีสมัยใหม่เกือบทั้งหมดมีรากฐานมาจากอิเล็กทรอนิกส์ ตั้งแต่อินเทอร์เน็ตและการสื่อสารเคลื่อนที่ ไปจนถึงคอมพิวเตอร์และเซิร์ฟเวอร์ อิเล็กทรอนิกส์เป็นสาขาที่กว้างขวางและมีสาขาย่อยมากมาย บทความนี้จะแนะนำคุณเกี่ยวกับอุปกรณ์อิเล็กทรอนิกส์ดิจิทัลที่สำคัญที่เรียกว่า CPLD (Complex Programmable Logic Device)

การพัฒนาอิเล็กทรอนิกส์ดิจิทัล

อิเล็กทรอนิกส์เป็นสาขาที่ซับซ้อน มีอุปกรณ์และส่วนประกอบอิเล็กทรอนิกส์อยู่หลายพันชิ้น อย่างไรก็ตาม โดยทั่วไปแล้ว อุปกรณ์อิเล็กทรอนิกส์แบ่งออกเป็นสองประเภทหลัก ได้แก่ อนาล็อกและดิจิทัล

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

ต่างจากระดับข้อมูลนับไม่ถ้วนในสัญญาณอนาล็อก สัญญาณดิจิทัลประกอบด้วยระดับตรรกะเพียงสองระดับ (1 และ 0)

รูปที่ 1: สัญญาณอนาล็อกเทียบกับสัญญาณดิจิตอล

ประเภทของอุปกรณ์อิเล็กทรอนิกส์ดิจิทัล

อุปกรณ์อิเล็กทรอนิกส์ดิจิทัลในยุคแรกนั้นค่อนข้างเรียบง่ายและมีเกตตรรกะเพียงไม่กี่ตัว อย่างไรก็ตาม เมื่อเวลาผ่านไป ความซับซ้อนของวงจรดิจิทัลได้เพิ่มขึ้น และความสามารถในการตั้งโปรแกรมได้กลายเป็นคุณสมบัติสำคัญของอุปกรณ์ควบคุมดิจิทัลสมัยใหม่ อุปกรณ์ดิจิทัลสองประเภทที่แตกต่างกันได้เกิดขึ้นเพื่อให้สามารถตั้งโปรแกรมได้ ประเภทแรกประกอบด้วยฮาร์ดแวร์แบบคงที่พร้อมซอฟต์แวร์ที่สามารถตั้งโปรแกรมใหม่ได้ ตัวอย่างของอุปกรณ์ประเภทนี้ ได้แก่ ไมโครคอนโทรลเลอร์และไมโครโปรเซสเซอร์ ประเภทที่สองประกอบด้วยฮาร์ดแวร์ที่กำหนดค่าใหม่ได้เพื่อให้ได้การออกแบบวงจรตรรกะที่ยืดหยุ่น ตัวอย่างของอุปกรณ์ประเภทนี้ ได้แก่ FPGA, SPLD และ CPLD

ชิปไมโครคอนโทรลเลอร์มีวงจรลอจิกดิจิทัลแบบคงที่ซึ่งไม่สามารถแก้ไขได้ อย่างไรก็ตาม ความสามารถในการตั้งโปรแกรมทำได้โดยการเปลี่ยนแปลงซอฟต์แวร์/เฟิร์มแวร์ที่ทำงานบนชิปไมโครคอนโทรลเลอร์ ในทางตรงกันข้าม PLD (อุปกรณ์ลอจิกที่ตั้งโปรแกรมได้) ประกอบด้วยเซลล์ลอจิกหลายเซลล์ที่สามารถกำหนดค่าให้เชื่อมต่อได้โดยใช้ HDL (ภาษาอธิบายฮาร์ดแวร์) ดังนั้น วงจรลอจิกจำนวนมากจึงสามารถนำไปใช้งานได้โดยใช้ PLD ด้วยเหตุนี้ ประสิทธิภาพและความเร็วของ PLD จึงมักเหนือกว่าไมโครคอนโทรลเลอร์และไมโครโปรเซสเซอร์ นอกจากนี้ PLD ยังมอบอิสระและความยืดหยุ่นที่มากขึ้นแก่ผู้ออกแบบวงจร

รูปที่ 2: ประเภทของอุปกรณ์ดิจิทัลแบบตั้งโปรแกรมได้

วงจรรวมสำหรับการควบคุมแบบดิจิทัลและการประมวลผลสัญญาณโดยทั่วไปประกอบด้วยตัวประมวลผล วงจรตรรกะ และหน่วยความจำ แต่ละโมดูลเหล่านี้สามารถนำไปใช้งานได้โดยใช้เทคโนโลยีที่แตกต่างกัน ตัวเลือกที่มีแสดงไว้ในรูปต่อไปนี้:

รูปที่ 3: โมดูลในไอซีดิจิทัล

เกี่ยวกับ CPLD

ดังที่ได้กล่าวไปแล้วก่อนหน้านี้ มี PLD (อุปกรณ์ลอจิกที่ตั้งโปรแกรมได้) หลายประเภท เช่น FPGA, CPLD และ SPLD ความแตกต่างหลักระหว่างอุปกรณ์เหล่านี้อยู่ที่ความซับซ้อนของวงจรและจำนวนเซลล์ลอจิกที่มีอยู่ โดยทั่วไป SPLD ประกอบด้วยเกตไม่กี่ร้อยเกต ในขณะที่ CPLD ประกอบด้วยเกตลอจิกไม่กี่พันเกต

ในแง่ของความซับซ้อน CPLD (อุปกรณ์ลอจิกที่ตั้งโปรแกรมได้แบบซับซ้อน) อยู่ระหว่าง SPLD (อุปกรณ์ลอจิกที่ตั้งโปรแกรมได้แบบง่าย) และ FPGA จึงสืบทอดคุณสมบัติจากทั้งสองแบบ CPLD มีความซับซ้อนมากกว่า SPLD แต่น้อยกว่า FPGA

SPLD ที่ใช้กันทั่วไป ได้แก่ PAL (ตรรกะอาร์เรย์แบบโปรแกรมได้), PLA (ตรรกะอาร์เรย์แบบโปรแกรมได้) และ GAL (ตรรกะอาร์เรย์ทั่วไป) PLA ประกอบด้วยระนาบ AND และระนาบ OR โปรแกรมอธิบายฮาร์ดแวร์จะกำหนดการเชื่อมต่อระหว่างระนาบเหล่านี้ ภาพประกอบของ PLA แสดงไว้ด้านล่าง:

รูปที่ 4: อาร์เรย์ลอจิกที่ตั้งโปรแกรมได้ (PLA)

PAL ค่อนข้างคล้ายกับ PLA แต่มีระนาบที่ตั้งโปรแกรมได้เพียงระนาบเดียวแทนที่จะเป็นสองระนาบ (ระนาบ AND) การแก้ไขระนาบเดียวช่วยลดความซับซ้อนของฮาร์ดแวร์ อย่างไรก็ตาม ข้อดีนี้ต้องแลกมาด้วยความยืดหยุ่น

รูปที่ 5: ตรรกะอาร์เรย์ที่ตั้งโปรแกรมได้ (PAL)

สถาปัตยกรรม CPLD

CPLD ถือได้ว่าเป็นวิวัฒนาการของ PAL และประกอบด้วยโครงสร้าง PAL หลายแบบที่เรียกว่ามาโครเซลล์ ในแพ็คเกจ CPLD ขาอินพุตทั้งหมดจะพร้อมใช้งานสำหรับมาโครเซลล์แต่ละอัน ในขณะที่มาโครเซลล์แต่ละอันจะมีขาเอาต์พุตเฉพาะ แผนภาพบล็อกของ CPLD แสดงไว้ดังต่อไปนี้

รูปที่ 6: แผนผังบล็อก CPLD

จากแผนภาพบล็อก เราจะเห็นว่า CPLD ประกอบด้วยมาโครเซลล์หรือบล็อกฟังก์ชันจำนวนมาก มาโครเซลล์เหล่านี้เชื่อมต่อกันผ่านอินเตอร์คอนเนคต์แบบตั้งโปรแกรมได้ หรือที่รู้จักกันในชื่อ GIM (global interconnection matrix) การกำหนดค่า GIM ใหม่ทำให้สามารถนำวงจรตรรกะต่างๆ มาใช้ CPLD โต้ตอบกับโลกภายนอกผ่านพอร์ต I/O ดิจิทัล

ความแตกต่างระหว่าง CPLD และ FPGA

ในช่วงไม่กี่ปีที่ผ่านมา FPGA ได้รับความนิยมอย่างมากในการออกแบบระบบดิจิทัลแบบตั้งโปรแกรมได้ FPGA มีทั้งความคล้ายคลึงและความแตกต่างมากมายระหว่าง CPLD และ FPGA ในด้านความคล้ายคลึงกัน ทั้งสองเป็นอุปกรณ์ลอจิกแบบตั้งโปรแกรมได้ซึ่งประกอบด้วยอาร์เรย์ของเกตลอจิก อุปกรณ์ทั้งสองได้รับการตั้งโปรแกรมโดยใช้ HDL เช่น Verilog HDL หรือ VHDL

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

ความแตกต่างที่สำคัญอีกประการหนึ่งระหว่างอุปกรณ์ทั้งสองคือ CPLD มีหน่วยความจำ EEPROM (หน่วยความจำเข้าถึงโดยสุ่มแบบโปรแกรมที่สามารถลบได้ด้วยไฟฟ้า) ในตัว ในขณะที่ FPGA ใช้หน่วยความจำแบบลบเลือน ซึ่งทำให้ CPLD สามารถเก็บข้อมูลไว้ได้แม้ในขณะที่ปิดเครื่อง ในขณะที่ FPGA ไม่สามารถทำได้ นอกจากนี้ หน่วยความจำแบบลบเลือนในตัวยังช่วยให้ CPLD สามารถเริ่มทำงานได้ทันทีหลังจากเปิดเครื่อง ในทางกลับกัน FPGA ส่วนใหญ่ต้องใช้บิตสตรีมจากหน่วยความจำแบบลบเลือนภายนอกเพื่อบูตเครื่อง

ในด้านประสิทธิภาพ FPGA มีเวลาแฝงในการประมวลผลสัญญาณที่คาดเดาไม่ได้เนื่องจากสถาปัตยกรรมที่ซับซ้อนประกอบกับการเขียนโปรแกรมที่ผู้ใช้กำหนด ใน CPLD เวลาแฝงระหว่างขาต่อขาจะต่ำกว่าอย่างมากเนื่องจากสถาปัตยกรรมที่เรียบง่ายกว่า ความหน่วงในการประมวลผลสัญญาณเป็นข้อพิจารณาที่สำคัญเมื่อออกแบบแอปพลิเคชันแบบฝังตัวแบบเรียลไทม์และที่สำคัญต่อความปลอดภัย

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

ในแง่ของความปลอดภัยของข้อมูล CPLD มีความปลอดภัยมากกว่าเนื่องจากมีหน่วยความจำติดตั้งอยู่ในชิป ในทางตรงกันข้าม FPGA ส่วนใหญ่จำเป็นต้องใช้หน่วยความจำแบบไม่ลบเลือนภายนอก ซึ่งอาจก่อให้เกิดภัยคุกคามต่อความปลอดภัยของข้อมูล แม้ว่า FPGA จะมีอัลกอริทึมการเข้ารหัสข้อมูล แต่ CPLD ก็มีความปลอดภัยโดยเนื้อแท้มากกว่า FPGA

การประยุกต์ใช้ CPLD

CPLD ถูกนำมาใช้ในวงจรควบคุมดิจิทัลและวงจรประมวลผลสัญญาณที่มีความซับซ้อนต่ำถึงปานกลางมากมาย การประยุกต์ใช้งานที่สำคัญ ได้แก่:

  1. CPLD สามารถใช้เป็นบูตโหลดเดอร์สำหรับ FPGA และระบบที่ตั้งโปรแกรมได้อื่นๆ
  2. CPLD มักใช้เป็นตัวถอดรหัสที่อยู่และเครื่องสถานะแบบกำหนดเองในระบบดิจิทัล
  3. เนื่องจากมีขนาดเล็กและกินไฟน้อย CPLD จึงเหมาะอย่างยิ่งสำหรับการใช้ในอุปกรณ์ดิจิทัลพกพาและแบบพกพา
  4. CPLD ยังใช้ในการใช้งานควบคุมที่สำคัญต่อความปลอดภัยอีกด้วย

ผู้ผลิต CPLD

CPLD และ FPGA เป็นอุปกรณ์ลอจิกแบบตั้งโปรแกรมได้ระดับไฮเอนด์ที่ผลิตได้ยาก ผู้ผลิต CPLD รายใหญ่ ได้แก่:

  1. Altera (ถูกซื้อโดย Intel)
  2. Xilinx (ถูกซื้อโดย AMD)
  3. Atmel (ซื้อโดย Microchip)
  4. สารกึ่งตัวนำแบบแลตทิซ

การเขียนโปรแกรมและการพัฒนา CPLD

ขั้นตอนแรกในการพัฒนาระบบดิจิทัลที่ใช้ CPLD คือการเลือกผู้ผลิตอุปกรณ์ ดังที่ได้กล่าวไปแล้ว อุปกรณ์เหล่านี้ผลิตโดยผู้ผลิตหลายราย หลังจากตรวจสอบข้อกำหนดของโครงการและเอกสารข้อมูลอุปกรณ์แล้ว จำเป็นต้องเลือกอุปกรณ์ที่เหมาะสม ปัจจัยที่กำหนดประกอบด้วย ต้นทุน การใช้พลังงาน จำนวน I/O และมาโครเซลล์ แรงดันไฟฟ้าใช้งาน และคุณลักษณะทางความร้อน

เมื่อเลือกโมเดล CPLD แล้ว ขั้นตอนต่อไปคือการตั้งค่าสภาพแวดล้อมการเขียนโปรแกรมและการทดสอบ สภาพแวดล้อมนี้ประกอบด้วยชุดซอฟต์แวร์ที่ใช้สำหรับการออกแบบ ทดสอบ และตรวจสอบวงจร ตัวอย่างของซอฟต์แวร์การเขียนโปรแกรม ได้แก่ Altera Quartus, Xilinx ISE/Vivado, Lattice Diamond และ Atmel ProChip Designer ชุดซอฟต์แวร์เหล่านี้ช่วยให้สามารถพัฒนาโปรแกรมโดยใช้ภาษาฮาร์ดแวร์ Verilog และ VHDL ได้

หลังจากสร้างคำอธิบายตรรกะใน HDL แล้ว อุปกรณ์ฮาร์ดแวร์/บอร์ดพัฒนาจะเชื่อมต่อกับซอฟต์แวร์ผ่านอะแดปเตอร์สายเคเบิลสำหรับการเขียนโปรแกรมและแก้ไขจุดบกพร่อง บอร์ดพัฒนาหลายรุ่นมีโปรแกรมเมอร์ในตัว อย่างไรก็ตาม หากคุณไม่มีโปรแกรมเมอร์ คุณสามารถใช้โปรแกรมเมอร์ JTAG ได้

หลังจากออกแบบ ทดสอบ และตรวจสอบโปรแกรม CPLD แล้ว โปรแกรมจะถูกดาวน์โหลดลงในชิป และสามารถผลิตต้นแบบระบบได้ สามารถออกแบบแผงวงจรพิมพ์ (PCB) ที่ประกอบด้วย CPLD และส่วนประกอบอิเล็กทรอนิกส์โดยรอบได้ หลังจากบูรณาการแล้ว อุปกรณ์จะถูกทดสอบหาข้อผิดพลาดและข้อบกพร่อง หลังจากดีบักแล้ว ต้นแบบก็พร้อมสำหรับการผลิต

อิเล็กทรอนิกส์ดิจิทัลถือเป็นแกนหลักของเทคโนโลยีสารสนเทศสมัยใหม่ ความสามารถในการตั้งโปรแกรมได้เป็นปัจจัยสำคัญในการออกแบบระบบดิจิทัล อุปกรณ์ดิจิทัลแบบตั้งโปรแกรมได้แบ่งออกเป็นสองประเภท ได้แก่ โปรเซสเซอร์และ PLD PLD มีประสิทธิภาพและความยืดหยุ่นที่เหนือกว่าเนื่องจากฮาร์ดแวร์ที่สามารถปรับแต่งได้ CPLD เป็นหนึ่งในสามประเภทหลักของ PLD ร่วมกับ SPLD และ FPGA ในแง่ของประสิทธิภาพและความซับซ้อน CPLD อยู่ระหว่าง SPLD และ FPGA ด้วย EEPROM แบบไม่ลบเลือนในตัว CPLD มีข้อได้เปรียบเหนือ FPGA ในแง่ของความปลอดภัยของข้อมูลและความเร็วในการบูตที่เพิ่มขึ้น

ในบทความนี้ เราจะให้ภาพรวมที่ครบถ้วนของ CPLD รวมถึงสถาปัตยกรรม แผนผัง แอปพลิเคชัน และวิธีการการเขียนโปรแกรม