กลับไปหน้าบทความ

อ่าน 4 นาที

แบบฟอร์มระดับกลางของ Caltech

ไฟล์ Caltech Intermediate Form ( CIF ) เป็น รูปแบบไฟล์ สำหรับอธิบาย วงจรรวม (Integrated Circuit หรือ IC) CIF มีชุดกราฟิกพื้นฐานจำนวนจำกัด...

แบบฟอร์มระดับกลางของ Caltech

แบบฟอร์มระดับกลางของ Caltech
นามสกุลไฟล์
.cif
ประเภทของรูปแบบรูปแบบไฟล์EDA

ไฟล์ Caltech Intermediate Form ( CIF ) เป็นรูปแบบไฟล์สำหรับอธิบายวงจรรวม (Integrated Circuit หรือ IC) CIF มีชุดกราฟิกพื้นฐานจำนวนจำกัด ซึ่งมีประโยชน์สำหรับการอธิบายรูปร่างสองมิติบนชั้นต่างๆ ของชิป รูปแบบนี้อนุญาตให้มีการอธิบายแบบลำดับชั้น ทำให้การแสดงผลกระชับ นอกจากนี้ยังเป็นรูปแบบข้อความ ที่กระชับแต่ สามารถอ่านได้ง่ายสำหรับมนุษย์

CIF ถูกสร้างขึ้นโดยIvan Sutherlandและ Ron Ayres ในปี 1976 โดยมีการปรับปรุงโดยCarlo H. Séquin , Douglas Fairbairn และ Stephen Trimberger ข้อกำหนดที่เป็นลายลักษณ์อักษรได้รับการปรับปรุงในภายหลังโดยRobert SproullและRichard Lyonและแก้ไขโดย Stephen Trimberger [ 1 ]

ภาพรวม

แต่ละคำสั่งในไฟล์ CIF ประกอบด้วยคำหลักหรือตัวอักษร ตามด้วยพารามิเตอร์ และปิดท้ายด้วยเครื่องหมายเซมิโคลอน ต้องเว้นวรรคระหว่างพารามิเตอร์ แต่ไม่มีข้อจำกัดเกี่ยวกับจำนวนคำสั่งต่อบรรทัด หรือจำนวนคำสั่งในคอลัมน์ใด ๆ ของฟิลด์ สามารถแทรกความคิดเห็นได้ทุกที่โดยการใส่ไว้ในวงเล็บ

คำสั่งในไฟล์ CIF มีเพียงไม่กี่คำสั่ง และแบ่งออกเป็นสองประเภทหลักๆ คือ คำสั่งเกี่ยวกับรูปทรงเรขาคณิต หรือ คำสั่งควบคุม คำสั่งเกี่ยวกับรูปทรงเรขาคณิต ได้แก่LAYERการสลับเลเยอร์มาสก์BOXการวาดสี่เหลี่ยมWIREการวาดเส้นทางROUNDFLASHการวาดวงกลม การPOLYGONวาดรูปทรงใดๆ และCALLการวาดซับรูทีนของคำสั่งรูปทรงเรขาคณิตอื่นๆ ส่วนคำสั่งควบคุม ได้แก่DSการเริ่มต้นการกำหนดซับรูทีนDFการสิ้นสุดการกำหนดซับรูทีนDDการลบการกำหนดซับรูทีน0ไป9จนถึงการเพิ่มข้อมูลเพิ่มเติมที่ผู้ใช้กำหนด และENDการสิ้นสุดไฟล์ CIF คำหลักเหล่านี้มักจะย่อเหลือเพียงหนึ่งหรือสองตัวตัวอักษรที่ไม่ซ้ำกัน

เรขาคณิต

คำLAYERสั่ง (หรือตัวอักษรL) จะกำหนดเลเยอร์มาสก์ที่จะใช้สำหรับรูปทรงเรขาคณิตทั้งหมดที่ตามมาจนกว่าจะมีคำสั่งดังกล่าวอีกครั้ง ตามหลังคำLAYERหลักจะมีพารามิเตอร์ชื่อเลเยอร์เพียงตัวเดียว ตัวอย่างเช่น คำสั่ง:

 แอล ซีซี; 

กำหนดให้เลเยอร์นี้เป็นหน้าตัดสัมผัส CMOS (ดูรูป B.1 สำหรับชื่อเลเยอร์ MOS ทั่วไปบางส่วน)

NMโลหะ nMOS
NPnMOS โพลีซิลิคอน
NDการแพร่กระจาย nMOS
NCหน้าสัมผัส nMOS
NIการฝัง nMOS
NBnMOS ฝังอยู่
NGnMOS โอเวอร์กลาส
CMFCMOS โลหะ 1
CMSCMOS โลหะ 2
CPGโพลีซิลิคอน CMOS
CAACMOS แอคทีฟ
CSGเลือก CMOS
CWGCMOS ที่ดี
CCหน้าสัมผัส CMOS
CVACMOS ผ่านทาง
COGเซ็นเซอร์ CMOS เหนือกระจก
รูปที่ B.1ชื่อเลเยอร์ CIF สำหรับกระบวนการ MOS

คำBOXสั่ง (หรือตัวอักษรB) เป็นวิธีที่ใช้กันมากที่สุดในการระบุรูปทรงเรขาคณิต โดยจะอธิบายรูปสี่เหลี่ยมผืนผ้าด้วยการระบุความยาว ความกว้าง ตำแหน่งจุดศูนย์กลาง และการหมุน (ถ้ามี) รูปแบบมีดังนี้:

 ความยาว B ความกว้าง xpos ypos [การหมุน] ; 

หากไม่มีช่องกำหนดการหมุน ตัวเลขทั้งสี่จะระบุกล่องที่มีจุดศูนย์กลางอยู่ที่ ( xpos , ypos ) และมีความยาวตามแกน x และความกว้างตามแกน y ตัวเลขทั้งหมดใน CIF เป็นจำนวนเต็มที่อ้างอิงถึงระยะทางในหน่วยเซนติไมครอน เว้นแต่จะมีการระบุการปรับขนาดด้วยซับรูทีน (อธิบายในภายหลัง) ช่อง กำหนดการหมุน ที่เป็นตัวเลือก จะมีตัวเลขสองตัวที่กำหนดจุดปลายของเวกเตอร์โดยเริ่มต้นที่จุดกำเนิด ค่าเริ่มต้นของช่องนี้คือ (1, 0) ซึ่งเป็นเวกเตอร์ที่ชี้ไปทางขวา ดังนั้นข้อกำหนดการหมุนจึง10 5กำหนดการหมุนทวนเข็มนาฬิกา 26.6 องศาจากแนวตั้งฉาก ในทำนองเดียวกัน10 -10จะหมุนตามเข็มนาฬิกา 45 องศา โปรดทราบว่าขนาดของเวกเตอร์การหมุนนี้ไม่มีความหมาย

รูปที่ B.2 ตัวอย่างคำสั่ง "wire" ของ CIF คำสั่งมีดังนี้: W25 100 200 100 100 200 200 300 200;

คำWIREสั่ง (หรือตัวอักษรW) ใช้ในการสร้างเส้นทางที่เชื่อมระหว่างชุดจุด เส้นทางนี้สามารถมีความกว้างที่ไม่เป็นศูนย์และมีมุมโค้งมนได้ หลังจากWIREคำหลักจะเป็นค่าความกว้าง ตามด้วยคู่พิกัดจำนวนเท่าใดก็ได้ที่อธิบายจุดปลาย รูปที่ B.2 แสดงตัวอย่างสายไฟ โปรดสังเกตว่าจุดปลายและการโค้งมนของมุมนั้นได้รับการจัดการโดยปริยายแล้ว

คำROUNDFLASHสั่ง (หรือตัวอักษรR) จะวาดวงกลมที่เติมสี โดยกำหนดเส้นผ่านศูนย์กลางและพิกัดจุดศูนย์กลาง ตัวอย่างเช่น คำสั่ง:

 R 20 30 40; 

จะวาดวงกลมที่มีรัศมี 10 (เส้นผ่านศูนย์กลาง 20) โดยมีจุดศูนย์กลางอยู่ที่ (30, 40)

รูปที่ B.3 ตัวอย่างคำสั่ง "รูปหลายเหลี่ยม" ของ CIF คำสั่งมีดังนี้: P 150 100 200 200 200 300 100 300 100 200;

คำPOLYGONสั่ง (หรือตัวอักษรP) จะรับชุดคู่พิกัดและวาดรูปหลายเหลี่ยมที่เติมสีจากพิกัดเหล่านั้น เนื่องจากรูปหลายเหลี่ยมที่เติมสีต้องเป็นรูปปิด จุดพิกัดแรกและจุดพิกัดสุดท้ายจึงเชื่อมต่อกันโดยปริยายและไม่จำเป็นต้องเป็นจุดเดียวกัน รูปหลายเหลี่ยมสามารถมีความซับซ้อนได้ตามต้องการ รวมถึงความเว้าและการตัดกันเอง รูปที่ B.3 แสดงตัวอย่างคำสั่งรูปหลายเหลี่ยม

ลำดับชั้น

คำCALLสั่ง (หรือตัวอักษรC) เรียกใช้ชุดคำสั่งอื่นๆ ที่ถูกจัดกลุ่มไว้ด้วยDSกันDFซับรูทีนทั้งหมดจะได้รับหมายเลขเมื่อมีการกำหนด และหมายเลขเหล่านี้จะถูกใช้ในCALLเพื่อระบุซับรูทีนเหล่านั้น ตัวอย่างเช่น หากLAYERคำสั่ง และBOXคำสั่ง ถูกจัดกลุ่มไว้ในซับรูทีนที่ 4 คำสั่งนั้นจะเป็นดังนี้:

 ซี 4; 

จะทำให้กล่องถูกวาดลงบนเลเยอร์นั้น

นอกจากการเรียกใช้ซับรูทีนโดยตรงแล้วCALLคำสั่งยังสามารถรวมการแปลงเพื่อส่งผลต่อรูปทรงเรขาคณิตภายในซับรูทีนได้ การแปลงสามแบบที่สามารถใช้กับซับรูทีนใน CIF ได้แก่ การเลื่อน การหมุน และการสะท้อน การเลื่อนระบุโดยใช้ตัวอักษรTตามด้วยค่าชดเชย x, y ค่าชดเชยเหล่านี้จะถูกเพิ่มเข้าไปในพิกัดทั้งหมดในซับรูทีน เพื่อเลื่อนกราฟิกไปทั่วมาสก์ การหมุนระบุโดยใช้ตัวอักษรRตามด้วยจุดปลายเวกเตอร์ x, y ซึ่งคล้ายกับข้อกำหนดการหมุนในBOXคำสั่ง กำหนดเส้นไปยังจุดกำเนิด เส้นที่ไม่หมุนจะมีจุดปลาย (1, 0) ซึ่งชี้ไปทางขวา การสะท้อนมีสองรูปแบบ ได้แก่MXการสะท้อนในแกน x และMYการสะท้อนในแกน y การสะท้อนอาจทำให้สับสนเล็กน้อย เพราะMXทำให้พิกัด x กลายเป็นค่าลบ ซึ่งมีผลเป็นการสะท้อนรอบแกน y

รูปที่ B.4 การแปลง "การเรียก" CIF: (a) รูทีนย่อย 10: BOX 100 200 50 50; WIRE 10 50 50 100 150; (b) การเรียกใช้: C 10 T -50 0 MX MY; (c) การเรียกใช้: C 10 R 0 -1 MX; (d) การเรียกใช้: C 10 MX R 0 -1;

สามารถใช้การแปลงรูปทรงได้หลายวิธีกับวัตถุ และลำดับที่ระบุไว้คือลำดับที่จะใช้ในการแปลงรูปทรงนั้น รูปที่ B.4 แสดงตัวอย่างบางส่วนที่แสดงให้เห็นถึงความสำคัญของการจัดลำดับการแปลงรูปทรง (โปรดสังเกตว่ารูปที่ B.4c และ B.4d ให้ผลลัพธ์ที่แตกต่างกันเมื่อจัดเรียงการแปลงรูปทรงใหม่)

การกำหนดซับรูทีนเพื่อใช้ในCALLคำสั่งนั้นค่อนข้างง่าย คำสั่งที่จะบรรจุจะอยู่ระหว่าง คำสั่ง DS(definition start) และDF(definition finish) อาร์กิวเมนต์ของDSคำสั่งคือหมายเลขซับรูทีนและตัวคูณขนาดของซับรูทีน ไม่มีอาร์กิวเมนต์สำหรับDFคำสั่ง ตัวคูณขนาดสำหรับซับรูทีนประกอบด้วยตัวเศษตามด้วยตัวส่วนที่จะนำไปใช้กับค่าทั้งหมดภายในซับรูทีน การปรับขนาดนี้ช่วยให้สามารถแสดงตัวเลขขนาดใหญ่ด้วยจำนวนหลักที่น้อยลงและช่วยให้ปรับขนาดการออกแบบได้ง่าย ตัวคูณขนาดไม่สามารถเปลี่ยนแปลงได้สำหรับการเรียกใช้ซับรูทีนแต่ละครั้ง เนื่องจากมันถูกนำไปใช้กับคำจำกัดความแล้ว ตัวอย่างเช่น ซับรูทีนในรูปที่ B.4 สามารถอธิบายอย่างเป็นทางการได้ดังนี้:

 DS 10 20 2; B10 20 5 5; W1 5 5 10 15; ดีเอฟ; 

โปรดทราบว่าตัวคูณมาตราส่วนคือ 20/2 ซึ่งช่วยให้สามารถตัดเลขศูนย์ต่อท้ายออกจากค่าทั้งหมดภายในรูทีนย่อยได้

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

 DS 10; ... ซี 11; ดีเอฟ; DS 11; ... ดีเอฟ; ซี 10; 

ถูกต้องตามกฎหมาย แต่ลำดับขั้นตอนคือ:

 ซี 11; DS 11; ... ดีเอฟ; 

ไม่ใช่ เพราะการเรียกใช้งานซับรูทีน 11 จริงๆ นั้นเกิดขึ้นหลังจากที่ได้นิยามซับรูทีนนั้นแล้วในตัวอย่างแรก

ควบคุม

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

การขยายรูปแบบ CIF สามารถทำได้โดยใช้คำสั่งเชิงตัวเลข0ผ่านทาง9. แม้ว่าจะไม่ได้เป็นส่วนหนึ่งของ CIF อย่างเป็นทางการ แต่ก็มีธรรมเนียมปฏิบัติบางอย่างที่พัฒนาขึ้นสำหรับการใช้ส่วนขยายเหล่านี้ (ดูรูป B.5)

0Nชื่อเลเยอร์ XY;กำหนดชื่อโหนดบนเลเยอร์และตำแหน่งที่ระบุ
0Vx1 y1 x2 y2 ... xn yn;วาดเวกเตอร์
2A"ข้อความ" Txy;วางข้อความไว้เหนือตำแหน่งที่ระบุ
2B"ข้อความ" Txy;วางข้อความไว้ด้านล่างตำแหน่งที่กำหนด
2C"ข้อความ" Txy;จัดวางข้อความให้อยู่ตรงกลาง ณ ตำแหน่งที่กำหนด
2L"ข้อความ" Txy;วางข้อความไว้ทางด้านซ้ายของตำแหน่งที่ระบุ
2R"ข้อความ" Txy;วางข้อความไว้ทางด้านขวาของตำแหน่งที่ระบุ
4Alowx lowy highx highy;ประกาศขอบเขตเซลล์
4Bชื่ออินสแตนซ์;แนบชื่ออินสแตนซ์ไปยังเซลล์
4Nชื่อสัญญาณ xy;ระบุสัญญาณ ณ ตำแหน่งหนึ่ง
9ชื่อเซลล์;ประกาศชื่อเซลล์
91ชื่ออินสแตนซ์;แนบชื่ออินสแตนซ์ไปยังเซลล์
94ป้ายกำกับ xy;ติดฉลากในตำแหน่งที่กำหนด
95ความยาวฉลาก ความกว้าง xy;ติดฉลากในบริเวณที่กำหนด
รูปที่ B.5ส่วนขยายทั่วไปของผู้ใช้สำหรับไฟล์ CIF

คำสั่งสุดท้ายในไฟล์ CIF คือENDคำสั่ง (หรือตัวอักษรE) คำสั่งนี้ไม่รับพารามิเตอร์ใดๆ และโดยทั่วไปจะไม่มีเครื่องหมายเซมิโคลอน

ไวยากรณ์ BNF

ต่อไปนี้คือไวยากรณ์สำหรับรูปแบบ CIF โดยที่ cifFile เป็นโหนดไวยากรณ์ระดับบนสุด

cifFile  ::= (blank* command? semi)* endCommand blank* command  ::= primCommand | defDeleteCommand | defStartCommand semi (blank* primCommand? semi)* defFinishCommand primCommand  ::= polygonCommand | boxCommand | roundFlashCommand | wireCommand | layerCommand | callCommand | userExtensionCommand | commentCommand polygonCommand  ::= "P" path boxCommand  ::= "B" integer sep integer sep point (sep point)? roundFlashCommand  ::= "R" integer sep point wireCommand  ::= "W" integer sep path layerCommand  ::= "L" blank* shortname defStartCommand  ::= "D" blank* "S" integer (sep integer sep integer)? defFinishCommand  ::= "D" blank* "F" defDeleteCommand  ::= "D" blank* "D" integer callCommand  ::= "C" integer transformation userExtensionCommand  ::= digit userText commentCommand  ::= "(" commentText ")" endCommand  ::= "E" transformation  ::= (blank* ("T" point |"M" blank* "X" |"M" blank* "Y" |"R" point)*)* path  ::= point (sep point)* point  ::= sInteger sep sInteger sInteger  ::= sep* "-"? integerD integer  ::= sep* integerD integerD  ::= digit+ shortname  ::= cc? c? c? c  ::= digit | upperChar userText  ::= userChar* commentText  ::= commentChar* | commentText "(" commentText ")" commentText semi  ::= blank* ";" blank* sep  ::= upperChar | blank digit  ::= "0" | "1" | ... | "9" upperChar  ::= "A" | "B" | ... | "Z" blank  ::= อักขระ ASCII ใดๆ ยกเว้น digit, upperChar, "-", "(", ")" หรือ ";" userChar  ::= อักขระ ASCII ใดๆ ยกเว้น ";" commentChar  ::= อักขระ ASCII ใดๆ ยกเว้น "(" หรือ ")" 

ดูเพิ่มเติม

  • คู่มือคอมพิวเตอร์ช่วยในการออกแบบ VLSI - ภาคผนวก B: รูปแบบระดับกลางของ Caltech โดย Steven M. Rubin
  • คู่มือเบื้องต้นของ CIF
  • Hon, Robert W. และ Sequin, Carlo H., "คู่มือการใช้งาน LSI" ฉบับที่ 2, เอกสารทางเทคนิคของศูนย์วิจัยซีร็อกซ์ พาโล อัลโต หมายเลข SSL-79-7, มกราคม 1980
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Caltech_Intermediate_Form&oldid=1318785836 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ แบบฟอร์มระดับกลางของ Caltech

ไฟล์ Caltech Intermediate Form ( CIF ) เป็น รูปแบบไฟล์ สำหรับอธิบาย วงจรรวม (Integrated Circuit หรือ IC) CIF มีชุดกราฟิกพื้นฐานจำนวนจำกัด...

ภาพรวม

แต่ละคำสั่งในไฟล์ CIF ประกอบด้วยคำหลักหรือตัวอักษร ตามด้วยพารามิเตอร์ และปิดท้ายด้วยเครื่องหมายเซมิโคลอน ต้องเว้นวรรคระหว่างพารามิเตอร์ แต่ไม่มีข้อจำกัดเกี่ยวกับจำนวนคำสั่งต่อบรรทัด หรือจำนวนคำสั่งในคอลัมน์ใด ๆ ของฟิลด์...

เรขาคณิต

คำ LAYER สั่ง (หรือตัวอักษร L ) จะกำหนดเลเยอร์มาสก์ที่จะใช้สำหรับรูปทรงเรขาคณิตทั้งหมดที่ตามมาจนกว่าจะมีคำสั่งดังกล่าวอีกครั้ง ตามหลังคำ LAYER หลักจะมีพารามิเตอร์ชื่อเลเยอร์เพียงตัวเดียว ตัวอย่างเช่น คำสั่ง:

ลำดับชั้น

คำ CALL สั่ง (หรือตัวอักษร C ) เรียกใช้ชุดคำสั่งอื่นๆ ที่ถูกจัดกลุ่มไว้ด้วย DS กัน DF ซับรูทีนทั้งหมดจะได้รับหมายเลขเมื่อมีการกำหนด และหมายเลขเหล่านี้จะถูกใช้ใน CALL เพื่อระบุซับรูทีนเหล่านั้น ตัวอย่างเช่น หาก LAYER คำสั่ง และ BOX คำสั่ง...