Кіріспе

Тарихи VLSI интегралды схема (IC) макет редакторы, VLSI Magic құралы – бұл өте үлкен интеграция (VLSI) интегралдық схемаларды (IC) жобалауды автоматтандыруға (EDA) арналған макет құралы. Оны бастапқыда Джон Остерхаут және оның UC Берклидегі аспиранттары жасаған. Жоба 1983 жылдың ақпан айында басталды. 1983 жылдың сәуірінде құралдың алғашқы нұсқасы іске қосылды. Осы кезде Джоан Пендлтон, Шинг Конг және басқа да аспирант чип дизайнерлері Беркли RISC-тің жалғасы болған SOAR CPU чипін жобалау қажеттіліктерін қанағаттандыру үшін көптеген жылдам түзетулерге шыдады. Остерхауттың өзінің бұрынғы жобалары Cm*, Caesar және Crystal сияқты "C" әріпінен басталатын тағы бір атауды ұсынатынынан қорқып, Гордон Хамачи Magic атауын ұсынды, себебі ол адамдар чиптерді жобалау үшін сиқыр қолданды деп айту мүмкіндігін ұнатты. Ол «Интегралды схемаларға арналған Манхэттен суретін жасаушы» (Manhattan Artwork Generator for Integrated Circuits) деген аббревиатураны ойлап тапқаннан кейін, даму тобының қалған бөлігі бұл ұсынысқа қуана келісті. Magic бағдарламалық жасақтамасын жасаушылар өздерін «сиқыршылар» деп атады, ал чиптерді жобалаушылар – Magic қолданушылары. BSD лицензиясының талаптарына сәйкес, ашық кодты және тегін бағдарлама ретінде Magic оңай қолданылуы және арнайы тапсырмалар үшін кеңейтілуінің оңайдығы себепті, әлі де танымал.

Айырмашылықтар

Magic пен басқа VLSI жобалау құралдары арасындағы басты айырмашылық – оның "бұрыш тігілген" геометрияны қолдануында, онда барлық орналасу жазықтықтар жиынтығы ретінде бейнеленеді, ал әрбір жазықтық толығымен "плиткалардан" (төртбұрыштардан) тұрады. Плиткалар бүкіл жазықтықты жабуы керек. Әрбір плитканың төменгі сол жақ бұрышының (X, Y) координатасы болады және төрт плиткаға сілтемелер беріледі: жоғарыдағы оң жақ көршісі, оңдағы жоғары жақ көршісі, төмендегі сол жақ көршісі және солдағы төменгі жақ көршісі. Плиткамен көрсетілген материалдың түрін қоса есептегенде, жазықтықтағы орналасу геометриясы нақты анықталады. Бұрыш тігілген геометриялық бейнелеу макетті "бояу" ретінде қарастыруға алып келеді, оны кенепке жағуға немесе одан өшіруге болады. Бұл, басқа құралдардан ерекшеленеді, олар макетті бір-бірінен бөлек орналастырылатын және өңделетін "объектілер" ретінде қарастырады. Әрбір түсінік практикалық қолдану және есептеу жылдамдығы тұрғысынан өз күшті және әлсіз жақтарына ие. Бұрыш тігілген бейнелеу бір жазықтықта іздеулер үшін өте қолайлы, себебі ол жылдамдық бойынша ерекшеленеді. Бірақ ол өте үлкен деректер базаларына жақсы сәйкес келмейді: әр плитка үшін төрт сілтемені сақтау қажеттігі, сондай-ақ макеттегі материалдық аймақтар арасындағы кеңістікті көрсететін плиткаларды сақтау қажеттігі, оны объектіге негізделген бейнелеулерге қарағанда жадыны көп қажет етеді. Бұрыш тігілген геометрияны бейнелеудің кеңейтілген түрі "бөлінген плитка" әдісі деп аталады, ол 7.1 нұсқасында қосылды және Манхэттен емес геометрияны нақты бейнелеуге мүмкіндік береді. Бұл әдіс дерекқордағы әр плиткаға екі материал түрін көрсетуге мүмкіндік береді, онда плитка бұрыштан бұрышқа дейін диагональмен екіге бөлінеді, диагональдің бір жағында бір материал түрі, ал екінші жағында басқа материал түрі орналасады. Қосымша белгі диагональ жоғарғы сол жақ бұрышынан төменгі оң жаққа, немесе жоғарғы оң жақ бұрышынан төменгі сол жаққа бағатынын көрсетеді. Бөлінген плитка әдісінің артықшылығы – бұрыш тігілген геометрияға қолданылатын барлық ережелер өзгеріссіз бөлінген плиткаларға да қолданылады. Тағы бір артықшылығы – Манхэттен емес геометрияның барлық бұрыштары дерекқордың ішкі торлағында орналасуы керек. Бұл бір жазықтықта тордан тыс геометрия жасауға мүмкіндік бермейді, бұл көптеген өндіріс процестеріндегі ереже бұзушылық болып табылады және объектіге негізделген бейнелеулерде жиі кездесетін мәселе.

Жобалау ережесін тексеру

Magic нақты уақыт режимінде жобалау ережелерін тексеру мүмкіндігіне ие, бұл кейбір қымбат коммерциялық VLSI жобалау бағдарламалық қамтамасыздарында жоқ. Magic мұны Евклид қашықтығы емес, Манхэттен қашықтығын пайдалану арқылы қашықтықты есептеу арқылы іске асырады, бұл есептеу үшін әлдеқайда жылдам. 7.3 нұсқасынан бастап Magic, drc euclidean командасы берілген жағдайда Евклид қашықтығын дұрыс есептейді. Евклид қашықтығын тексеру – Манхэттен қашықтығын тексерудің қарапайым кеңейтімі болып табылады және өте аз қосымша шығындарды қажет етеді. Түзу сызықтың жиегінде Манхэттен және Евклид қашықтықтары бірдей. Тек бұрыштарда ғана екі арақашықтық өзгеше болады. Бұрыштарды тексеру кезінде, бұрыштағы нүктеден іздеу бағытын қадағалау жеткілікті. Манхэттен қашықтығын көрсететін квадраттың ішінде табылған кез келген геометрия, сол геометрия Евклид қашықтығын көрсететін ширек шеңбер радиусынан тыс жатқан-жатпағанын анықтау үшін қосымша тексеруден өтеді. Бұл қосымша тексеру тек Манхэттен қашықтығы ережесін бұзатын геометрияға ғана қолданылатындықтан, ол жиі қолданылмайды, сондықтан есептеудің қосымша шығыны өте төмен. Magic қазіргі уақытта Linux жүйесінде жұмыс істейді, бірақ DOS, OS/2 және басқа операциялық жүйелерге арналған нұсқалары да бар. Magic көбінесе IRSIM және басқа да модельдеу бағдарламаларымен бірге қолданылады.

Ішкі істер

Ол ішкі құрылымында Tcl/Tk-ны пайдаланады.

Импорттау және экспорттау

Magic CIF/Calma GDS файлдарын қолдайды.