วันพฤหัสบดีที่ 6 ธันวาคม พ.ศ. 2555

CPLD


CPLDคืออะไร
CPLD ย่อมาจาก Complex Programmable Logic Device ซึ่งเทคโนโลยีที่ใช้จะเหมือนกับ EEPROM ทำให้มีความจุของเกทต่ำ โดยทั่วไปจะน้อยกว่า 20,000 เกท แต่ข้อดีของ EEPROM Based FPGA คือสามารถเก็บข้อมูลที่โปรแกรมลงไปได้โดยไม่จำเป็นต้องมีไฟเลี้ยง และในการโปรแกรมจะใช้ทรานซิสเตอร์ 1 ตัวต่อ 1 บิท ซึ่งการโปรแกรมสามารถทำได้ประมาณ 10,000 ครั้ง
FPGA ย่อมาจาก Field Programmable Gate Array ใช้เทคโนโลยีในการโปรแกรมเหมือนกับ SRAM (Static RAM) ทำให้สามารถโปรแกรมซ้ำได้โดยไม่จำกัดจำนวนครั้ง นอกจากนี้ยังมีความจุของเกทในระดับปานกลางถึงสูงมาก (ประมาณ 10,000 – 1,000,000 เกท) ซึ่งข้อดีของ SRAM Based FPGA คือใช้เวลาในการโปรแกรมน้อย (ระดับ nsec) การโปรแกรมทำได้ง่ายเทียบได้กับการเขียน SRAM ทั่วไป และเหมาะสำหรับการออกแบบวงจรที่มีความสลับซับซ้อน ส่วนข้อเสียคือไม่สามารถเก็บโปรแกรมในภาวะที่ไม่มีไฟเลี้ยงได้ ดังนั้น FPGA ชนิดนี้จึงมักใช้ควบคู่กับ ROM เพื่อเก็บโปรแกรมและทำการโหลดโปรแกรมลงในตัวชิพในขณะที่เริ่มต้นใช้งาน
ข้อสังเกตประการหนึ่งคือ CPLD จะมีความจุต่ำกว่า FPGA รวมถึงมีคุณสมบัติพิเศษอื่นๆน้อยกว่า เช่น ไม่มี RAM เป็นต้น ดังนั้นในการใช้งานออกแบบวงจรที่ซับซ้อนจึงแนะนำว่าควรใช้ FPGA จะเหมาะสมกว่าและควรศึกษาข้อมูลของ FPGA แต่ละตระกูลด้วยเนื่องจากมักจะมีคุณสมบัติพิเศษต่างกัน ข้อมูลความแตกต่างของ CPLD และ FPGA เพิ่มเติมสามารถศึกษาจากบทความของบริษัทฯที่
www.astronlogic.com

คุณสมบัติขณะเริ่มทำงาน ( Power- Up Characteristics )
คุณสมบัติขณะเริ่มทำงานของ CPLD ตระกูล XC9500 ที่ใช้แรงเคลื่อน 5 V เมื่อเริ่มจ่ายไฟเข้าเลี้ยงตัวชิพ CPLD วงจรภายในจะถูกควบคุมให้อยู่ในภาวะสงบจนแรงเคลื่อนมีระดับถึงระดับความปลอดภัย(Safe Level Voltage) ประมาณ 3.8 V ในระดับนี้ ค่า Pull-Up Resister จะถูกยกเลิก และ
รีจิสเตอร์ทุกตัวในวงจรจะถูกกำหนดค่าที่ตั้งไว้ตามที่โปรแกรมไว้(Initialized) เวลาในการใช้ในการเริ่มทำงานปรกติหลังจากเริ่มจ่ายไฟเลี้ยงจะใช้เวลาประมาณ 100 - 300 ไมโครวินาที ทั้งนี้ขึ้นอยู่กับขนาดหรือ เบอร์ชิพ โดยเริ่มตั้งแต่ XC9536 ไปจนถึง XC95288





โครงสร้างและหลักการทำงานของ CPLD
CPLD เป็นคำย่อมาจาก Complex Programmable Logic Device หมายถึงเป็นชิพไอซีที่สามารถสร้างวงจรลอจิกทั้งแบบ Combination และ Sequential ได้โดยการออกแบบโดยใช้คอมพิวเตอร์ และโปรแกรมลงไปบนตัวชิพโดยใช้มาตรฐานการโปรแกรมแบบ JTAG Programmer
อุปกรณ์ที่มีลักษณะคล้ายกันนี้ได้แก่
GAL (GAL : Gate Array Logic) เป็นชิพที่ใช้โปรแกรมวงจรลอจิกได้เฉพาะวงจร Combination โปรแกรมโดยเครื่องโปรแกรมโดยเฉพาะ โปรแกรมได้เพียงครั้งเดียว หากผิดไม่สามารถแก้ไขได้ ขาอินพุท และเ อ้าท์พุทถูกกำหนดไว้ตายตัวไม่สามารถเปลี่ยนได้ มีจำนวนลอจิกเกต
น้อย ใช้แทนวงจรที่มีขนาดเล็กไม่ซับซ้อน
PAL (PAL : Programmable Array Logic) เป็นชิพที่ใช้โปแกรมสร้างวงจรลอจิกที่ซับซ้อนมากขึ้นกว่า GAL โดยมีทั้งตัว Logic gate ต่าง ๆ และ ตัว Flip – flopที่สามารถออกแบบวงจรที่ผสมระหว่าง Combination logic และ Sequential logic การโปรแกรมมีเครื่องมือที่สามารถออกแบบและโปรแกรมผ่านทางคอมพิวเตอร์ได้ ส่วนขา I/O ยังถูกบังคับไม่สามารถใช้สลับกันได้ แต่การโปรแกรมไม่สามารถทำซ้ำได้มากนัก
ส่วน CPLD เป็นชิพที่ใช้ออกแบบวงจรขนาดใหญ่ที่สามารถออกแบบโดยเขียนเป็นโปรแกรมภาษา HDL ได้ ใช้เทคโนโลยีการเก็บรักษาวงจรแบบ Flash ที่สามารถคงสถานะของวงจรที่ฝังอยู่ประมาณ 20 – 40 ปี สามารถโปรแกรมซ้ำได้ประมาณมากกว่า 10000 ครั้ง ขา I/O เป็นแบบเอนกประสงค์โดยสามารถกำหนดให้ เป็นอินพุท และเอ้าพุทแบบต่าง ๆ ได้ มีจำนวนลอจิกเกตที่สามารถกำหนดให้เป็นเกต อะไรก็ได้ เริ่มตั้งแต่ 800 ตัวและ Flip-flop 36 ตัว ไปจนถึง เป็นแสน ๆ เกต
และ Flip-flop หลายพันตัว ที่สามารถรองรับการออกแบบวงจรขนาดใหญ่ ๆ และซับซ้อนมาก ๆ ได้
FPGA (FPGA : Filled Programmable Gate Array) เป็นชิพที่ใช้ออกแบบวงจรที่มีขนาดใหญ่มาก ๆ และมีความซับซ้อนของระบบสูงมากเท่าที่มีอยู่ปัจจุบัน ที่ใช้ในการพัฒนาออกแบบหน่วยประมวลผล (CPU) ขนาดใหญ่ ๆ ได้ โดยมีจำนวนลอจิกเกตและ Flip-flop นับล้าน ๆ ตัว มีจำนวนขา I/O ตั้งแต่หลายสิบไปจนถึงหลายร้อยขา การโปรแกรมและการรักษาวงจรใช้เทคโนโลยีแบบ Volantine เช่นเดียวกับโครงสร้างหน่วยความจำ RAM คือต้องโปรแกรมแล้วต้องมีไฟเลี้ยงตัวชิพอยู่ตลอดเวลา หากไฟดับวงจรจะหายไปทันที ดังนั้นในการออกใช้งาน จะต้องมี Flash memory สำหรับเก็บค่าสถานะของวงจรต่อพ่วงอยู่เสมอ โดยขณะที่โปรแกรม เราต้องโปรแกรมค่า Config. ลงใน Flash ด้วย การทำงานคือ เมื่อเปิดไฟเลี้ยงตัวชิพ ข้อมูล Config.วงจรจาก Flash จะถูกโหลดมาสร้างเป็นวงจรตามที่โปรแกรมไว้และทำงานได้ทันที ด้วยเทคโนโลยีนี้ FPGA จึงสามารถใช้งานได้เหมือนกันกับ 2

โครงสร้างทางสถาปัตยกรรมของ CPLD
ในชิพ CPLD ตระกูล XC9500 ของ XILINX ทุกตัวประกอบด้วยวงจรที่เป็นส่วนการทำงาน ได้แก่ Function Blocks (FBs) และ I/O Blocks (IOBs) ซึ่งทั้งสองส่วนจะถูกเชื่อมต่อกันภายในโดยการทำงานในส่วนของวงจรที่เรียกว่า Fast CONNECT switch matrix ซึ่งวงจรส่วนนี้เป็นลิขสิทธิ์Fเฉพาะของผู้ผลิต วงจรส่วนนี้จะทำงานโดยข้อมูลโปรแกรมที่มาจากส่วนวงจร In-System Programming Controller วงจรส่วน Fast CONNECT switch matrix จะทำงานร่วมกับ Function Blocks ทำให้เกิดวงจรลอจิกตามที่ได้ออกแบบและโปรแกรมเข้าไว้ ในชิพ CPLD แต่ละตัวจะมีFunction Block หลายชุด โดยแต่ละชุดจะมีสายสัญญาณการโปรแกรมลอจิกจาก Fast CONNECT switch matrix เป็นอินพุทจำนวน 36 เส้น และเอ้าพุทจำนวน 18 เส้น ในแต่ละ Function Block
ภายในจะประกอบด้วยวงจรส่วนที่เรียกว่า Macrocells จำนวน 18 ชุด ภายในวงจร Macrocell จะประกอบด้วยวงจรรีจิสเตอร์ หรือ ฟลิบ-ฟล็อบ ที่สามารถประกอบกันเป็นวงจรรีจิสเตอร์ หรือ เค้าเตอร์ได้ ส่วนวงจรในส่วนที่เรียกว่า I/O Blocks จะทำหน้าที่เป็นตัวเชื่อมต่อกับขา I/O ของตัวชิพโดย
สามารถโปรแกรมให้แต่ละขาเป็น Input / Output หรือ Bi-direction และสามารถกำหนด Slew rate
ได้ด้วย


ไม่มีความคิดเห็น:

แสดงความคิดเห็น