Кіріспе
Тарихи 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 оңай қолданылуы және арнайы тапсырмалар үшін кеңейтілуінің оңайдығы себепті, әлі де танымал.
the VLSI tool
Magic is an electronic design automation (EDA) layout tool for very large scale integration (VLSI) integrated circuit (IC) originally written by John Ousterhout and his graduate students at UC Berkeley. Work began on the project in February 1983. A primitive version was operational by April 1983, when Joan Pendleton, Shing Kong and other graduate student chip designers suffered through many fast revisions devised to meet their needs in designing the SOAR CPU chip, a follow on to Berkeley RISC. Fearing that Ousterhout was going to propose another name that started with "C" to match his previous projects Cm*, Caesar, and Crystal, Gordon Hamachi proposed the name Magic because he liked the idea of being able to say that people used magic to design chips. The rest of the development team enthusiastically agreed to this proposal after he devised the backronym Manhattan Artwork Generator for Integrated Circuits. The Magic software developers called themselves magicians, while the chip designers were Magic users. As free and open source software, subject to the requirements of the BSD license, Magic continues to be popular because it is easy to use and easy to expand for specialized tasks.
Айырмашылықтар
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 файлдарын қолдайды.