close

Вход

Забыли?

вход по аккаунту

?

Matveeva

код для вставкиСкачать
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
Федеральное государственное автономное
образовательное учреждение высшего образования
САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
АЭРОКОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯ
Н. А. Матвеева, Е. А. Суворова, Ю. Е. Шейнин
ПРОЕКТИРОВАНИЕ СБИС
И СИСТЕМ-НА-КРИСТАЛЛЕ
Учебно-методическое пособие
Санкт-Петербург
2016
УДК 004
ББК 32.97
М33
Рецензент –
доктор технических наук, профессор В. А. Фетисов
Утверждено
редакционно-издательским советом университета
в качестве учебно-методического пособия
Матвеева, Н. А.
М33 Проектирование СБИС и Систем-на-кристалле: учеб.-метод.
пособие / Н. А. Матвеева, Е. А. Суворова, Ю. Е. Шейнин. – СПб.:
ГУАП, 2016. – 51 с.
Приведены методические указания, инструкции по применению
программных продуктов фирмы Cadence Design Systems, а также список лабораторных работ с заданиями, пояснениями и комментариями
по их выполнению.
Издание предназначено для студентов магистратуры, обучающихся по магистерским программам «Встроенные системы обработки информации и управления» и «Системы-на-кристалле» направления
«Информатика и вычислительная техника», а также смежным специальностям, изучающим вопросы проектирования современных сетей и систем на кристалле.
УДК 004
ББК 32.97
©
©
Матвеева Н. А., Суворова Е. А.,
Шейнин Ю. Е., 2016
Санкт-Петербургский государственный
университет аэрокосмического
приборостроения, 2016
ВВЕДЕНИЕ
Развитие современных технологий и процесса производства
приводит к интеграции десятков, сотен сложнофункциональных
(СФ) блоков внутри одного чипа. К таким СФ-блокам можно отнести блоки центральных процессоров, цифровые сигнальные процессоры, блоки памяти и т.д. Потребность в повышении производительности вычислительных систем постоянно возрастает. При этом
современные устройства должны обладать низким энергопотреблением. Это очень важно для того, чтобы увеличить время автономной работы устройств, сократить расходы на электроэнергию и
т.д. Так же в быстро развивающемся мире время, затрачиваемое на
разработку новой системы, сокращается. Это вызвано стремительным развитием рынка бытовой техники, электроники, встроенных
автомобильных систем. Вышеперечисленные факторы приводят
к тому, что появился новый тип сверхбольших интегральных схем
(СБИС) под названием Системы-на-кристалле (СнК).
Системы-на-кристалле предназначены для выполнения специализированных конкретных задач с определенными ограничениями
и требованиями на обработку данных. СнК входят в состав сложных устройств, начиная от портативных, таких как видеокамеры и
телевизионные приставки, заканчивая сложным промышленным
или космическим оборудованием.
В последнее время при описании подходов к проектированию
СнК используется концепция применения так называемых сложнофункциональных (СФ) блоков или Intellectual Property (IP)блоков. Название IP-блок взято из англоязычной литературы. СФ
блоки играют роль макрокомпонентов при создании СнК, значительно сокращая время и затраты на проектирование путем повторного использования готовых проверенных (верифицированных)
блоков. В соответствии с данной концепцией разработчики могут
использовать в последующих проектах ранее созданные ими блоки
или приобретенные у других компаний. Но для создания, верифи3
кации и тестирования СФ-блоков необходимо использовать методологии проектирования аналогичные проектированию целых СнК.
СнК представляет собой сложную систему с большим набором
выполняемых функций и состоящую из большого числа компонент. Для ускорения процесса проектирования и выпуска готовых
систем различными компаниями были предложены методологии
проектирования и системы автоматизированного проектирования
(САПР).
Современные САПР предоставляют широкие возможности для
разработчиков новых СнК. Они позволяют не только исследовать
параметры архитектуры и оценивать ее производительность, но и
описывать системы на уровне регистровых передач, тестировать
корректность их работы, оптимизировать их энергопотребление и площадь. Мировыми лидерами в этой области считаются
такие компании как Cadence Design Systems, Synopsys и Mentor
Graphics.
В данном методическом пособии мы остановимся на возможностях САПР, которые предоставляет компания Cadence Design
Systems. Будет представлена информация об использовании утилит nclaunch для описания СнК на уровне регистровых передач,
моделирования и Incisive Metrics Center для тестирования корректности ее функционирования. Представленный цикл лабораторных
работ направлен на освоение студентами базовых представлений о
процессе проектирования СнК, моделирования и тестирования систем. Студенты ознакомятся с особенностями компонент, которые
входят в состав СнК таких как память, арифметико-логическое
устройство, блок арбитра.
4
1. ПРОФЕССИОНАЛЬНЫЙ ПОТОК ПРОЕКТИРОВАНИЯ СБИС
ФИРМЫ CADENCE DESIGN SYSTEMS
Понятие сверхбольшая интегральная схема (СБИС) используется для обозначения интегральной схемы, которая состоит
более чем из 10 тысяч элементов на кристалле. На физическом
уровне она представляет собой сложный полупроводниковый
прибор со специальной многослойной топологией. На структурном уровне – это многокомпонентный объект, предназначенный
для решения таких задач, как преобразование информации, обработка данных и т.д.
Система на кристалле (СнК) – это СБИС, формируемая преимущественно из повторно используемых блоков со стандартными интерфейсами, [1]. Блоки могут быть как цифровыми, так и аналоговыми. В большинстве случаев СнК представляет собой цифровую
СБИС, которая может также содержать ряд аналоговых блоков.
Поэтому для проектирования СнК используются те же методы и
средства, что и для СБИС, [2]. Эти средства реализованы в виде систем автоматизированного проектирования (САПР), поставляемых
компаниями Cadence Design Systems, Synopsis, Mentor Graphics и
др. В данном пособии будут рассмотрены особенности использования САПР от компании Cadence Design Systems.
Основные шаги разработки СнК представлены на рис. 1. Как правило процесс разработки начинается с описания концепции разрабатываемой системы, определения ее функционала и технических
Концепция
новой
системы
САПР
Фабрика
Инженер-проектировщик
Система на кристалле
Рис. 1. Основные шаги разработки СнК
5
характеристик
функционирования.
После того, как система специфицирована, начинается процесс разработки
с использованием САПР. После полной готовности системы ее в специальМоделирование системы
ном формате передают на фабрику для
изготовления. Время изготовления зависит от многих факторов, например,
Синтез системы
от технологической библиотеки, толщины проектной нормы и др.
Маршрут проектирования СнК включает
в себя следующие стадии: постановФизический синтез
(генерация топологии)
ка задачи и составление технического
задания, создание алгоритмической и
функциональной моделей системы, разработка модели на уровне регистровых
Изготовление на фабрике
пересылок с помощью таких языков
как VHDL [4], Verilog, [3], разработка
принципиальной электрической схемы
Производственное
(в заданном технологическом базисе),
тестирование
проектирование топологии, изготовлеРис. 2. Стадии
ние и тестирование СнК, [5], рис. 2.
проектирования СнК
На этапе постановки задачи и составления технического задания определяется функциональность микросхемы. Алгоритмическая и функциональная модели определяют общее функционирование устройства и
используются для оценки необходимых параметров будущей системы. Модели могут создаваться на программном языке, например,
C++. Алгоритмические и функциональные модели покрывают, как
правило, не всю функциональность устройства, а только его основные
функции.
Одним из важнейших этапов разработки является создание модели системы на уровне регистров. Как правило, такую модель называют RTL (Register Transfer Level) моделью. На данном уровне
описания определяется иерархия системы. Описание включает все
имеющиеся в системе регистры и комбинационную логику между
ними в виде логических выражений на одном из языков описания
аппаратуры.
Важно отметить, что этап разработки RTL модели является технологически независимым, т.е. RTL код не зависит от определенной
технологии и может быть перенесен на любой заданный технологиСпецификация системы
6
ческий базис в процессе синтеза. С другой стороны, RTL код уже
содержит информацию обо всех последовательностных элементах
системы и комбинационной логике между ними. Так как частота
работы устройства напрямую зависит от объема логики между регистрами, RTL код определяет и некоторый диапазон частот, который может быть достигнут при переносе системы на заданную
технологию. Таким образом, основная оптимизация параметров
устройства осуществляется еще на этапе написания RTL кода. Моделирование RTL кода осуществляется, как правило, с точностью
до процессорного такта синхронных устройств.
Одновременно с написанием RTL кода формируется верификационное окружение модели. Верификационное окружение предназначено для проверки правильности работы модели. В зависимости
от сложности системы сложность верификационного окружения
может значительно изменяться – от возможности подачи простых
наборов входных сигналов до построения параллельной функциональной модели устройства, служащей эталоном в процессе верификации, [5].
На следующем этапе проектирования СнК осуществляется перенос RTL кода СнК на заданную технологию. Выполняется он, как
правило, путем логического и физического синтеза в САПР с использованием библиотек элементов для выбранной интегральной
технологии реализации СнК, с точностью до конкретной фабрики,
на которой будет осуществляться изготовление кристаллов.
В результате логического синтеза абстрактные последовательностные и комбинационные элементы, описанные в RTL коде, заменяются на элементы из технологической библиотеки. В ходе оптимизации подбираются библиотечные элементы, параметры которых наиболее хорошо соответствуют заданным характеристикам
системы. Сами характеристики задаются в специальных файлах,
так называемых файлах ограничений (constraints).
В зависимости от выбранной целевой интегральной технологии
емкости связей между библиотечными элементами могут вносить
значительный вклад во временные характеристики системы. Для
правильного определения временных параметров системы нужно
знать длины связей между элементами. Для этого элементы необходимо разместить на кристалле. Синтез электрической схемы,
при котором производится размещение элементов на кристалле,
называется физическим синтезом. Физический синтез позволяет
получить схему с лучшими характеристиками, но требует значительно больше аппаратных ресурсов.
7
Синтез схемы – процесс итеративный. Он может выполняться как
для отдельных блоков системы, так и для системы в целом неоднократно – до тех пор, пока не будет достигнут приемлемый результат.
На основе анализа полученных результатов синтеза разработчиком
может производиться изменение логики устройств и RTL кода для
обеспечения необходимых характеристик проектируемой СнК.
На основе синтезированной схемы СнК производится разработка топологии СнК. Кроме непосредственно размещения элементов
на кристалле и трассировки межсоединений, которые могут выполняться также и в процессе физического синтеза, производится множество других подготовительных операций. В частности, создается
детальный план кристалла, разрабатывается порядок размещения
внешних буферов ввода-вывода по периферии чипа (цоколевка),
производится анализ энергопотребления схемы и проектируется
сетка шин земли и питания (power plan), разрабатываются и размещаются цепи синхронизации – «дерево» тактовых сигналов (clock
tree), [5].
Созданный топологический проект подвергается тщательному
анализу. Исследуются временные параметры микросхемы, которые по результатам топологического проектирования могут быть
оценены со значительно большей точностью.
Финальной стадией разработки микросхемы является передача
проекта на производство. Осуществляется изготовление фотошаблонов, затем производство микросхем. Образцы микросхемы тестируются с использованием тестов аппаратного контроля. Годные
чипы корпусируются и проходят те или иные процедуры испытаний в зависимости от предъявляемых к ним требований.
Весь маршрут проектирования СнК сложен и длителен. Чаще
всего присутствует итеративный характер на каждой из фаз. Это
связано с тем, что современные системы очень сложны, состоят из
большого количества функциональных блоков, которые для взаимодействия между собой используют различные стандарты передачи
данных.
Компания Cadence Design Systems поставляет системы автоматизированного проектирования (САПР) для таких задач, как проектирование систем и их верификация, функциональная верификация, логический дизайн систем и т.д., [6].
Комплекс программных средств проектирования Cadence включает в себя несколько десятков программ, которые могут совместно
использоваться для решения различных задач проектирования системы. Они покрывают весь маршрут проектирования СнК – от ал8
9
Plan-and
Metric-Driven
Closure
Full-System
Verification
Assertion Based
Verification
Multi-Language
Automation
and Reuse
Planning and
Management
Plan-to-Closure
Methodology
HDLs
HDL
Analysis
and Lint
CPF
Specification
Embedded
Software
Debug and
Analysis
SimVision
Incisive
Acceleration
and Emulation
e, Verilog, VHDL,
Code, Assertion,
SystemC,SystemVerilog,
Functional and
CPF PSL, OVL, SVA,
Transaction Coverage
Simulation
Constrain-Driven Single-Run Data
and Assertion
Test Generation
Checking
Specman + Design Team Simulator Core
GUI-Based
Test Creation
Static Analysis
and Methodology
Enforcement
eAnalyzer
Legacy Code C, (HDL)
Verification Environment
Reference Models and Tests
Рис. 3. Структура Incisive Enterprise Simulator
Assertions
Device Under Test
Plan-Driven
Multi-Run Control
with Total
CoverageAnalysis
Desktop Manager
GUI-Based UVC
Construction and
Configuration
Verification Builder
Methodology
Libraries
Scenario Builder
Interface Specification
and
Functional Testbench
Incisive Enterprise Simulator
vPlan
Executable
Specification
Verification Environment
Include
Embedded
Software in
the Simulation
Incisive
Software
Extensions
High-Throughput
Connection to
Accelerationand
Emulation
Specman TBA
System Level
горитмических моделей до создания технологических файлов для
изготовления кристалла на фабрике. В состав средств проектирования Cadence входят различные симуляторы, которые поддерживают как языки системного описания систем, например SystemC,
SystemVerilog, так и языки аппаратного уровня, например Verilog,
VHDL. Кроме того, предоставляются возможности использования различных методологий тестирования работы проектируемой
системы-на-кристалле на различных стадиях ее создания.
В рассматриваемом курсе проектирования СБИС рассматривается этап написания RTL кода, моделирования системы на уровне
регистровых описаний с помощью программных средств компании
Cadence в частности Incisive Enterprise Simulator.
Структура программы Incisive Enterprise Simulator представлена
на рис. 3. С использованием данного симулятора разработчики могут отлаживать и анализировать код на следующих стандартизованных языках IEEE Verilog, SystemVerilog, e, VHDL, SystemC, PSL,
SVA, Si2 Common Power Format. Также отображается информация
о метриках функционального анализа, о протестированности исходного кода системы.
В данном методическом пособии основное внимание будет уделено вопросу использования Incisive Enterprise Simulator для
отладки и моделирования описания систем на языке VHDL.
10
2. СОЗДАНИЕ ПРОЕКТА И ЗАПУСК НА МОДЕЛИРОВАНИЕ
В СИСТЕМЕ АВТОМАТИЗИРОВАННОГО
ПРОЕКТИРОВАНИЯ CADENCE
В этом разделе представлена информация о пошаговом создании
проекта в САПР, предоставляемой компанией Cadence, с помощью
утилиты nclaunch, [7].
Перед началом работы над проектом, создается отдельная рабочая директория для проекта. Так как САПР требует гораздо больше
вычислительных ресурсов, то как правило его устанавливают не на
обычный компьютер пользователя, а на сервер. В случае установки
программного обеспечения на сервер, для каждого пользователя
должна быть создана учетная запись и рабочая директория.
Процесс создания проекта состоит из шагов, представленных ниже.
1. Открыть консоль и перейти в рабочую директорию проекта (см. раздел Специализированное программное обеспечение для
удаленного доступа к серверу с ОС Linux CentOS с рабочих станций
Windows).
2. Выполнить команду nclaunch. Появится окно, представленное на рис. 4.
Рис. 4. Запуск Nclaunch
11
3. Выбрать режим Multiple Step.
4. Создать директорию проекта. В этой директории будут храниться все выходные файлы, которые генерируются системой проектирования в процессе моделирования. К таким файлам относятся
снимки проекта, базы данных моделирования, лог файлы и др. Для
этого необходимо в главном меню выбрать File – Set Design Directory.
Откроется форма, как показано на рис. 5. Указать путь к директории
проекта. Кликнуть на кнопку «Create cds.lib File», чтобы создать новый cds.lib файл. Затем нажать на кнопку «Save».
Рис. 5. Установка директории проекта
12
5. В открывшемся окне включить библиотеки по умолчанию,
как показано на рис. 6 и нажать на кнопку «ОК». Затем нажать на
кнопку «ОК» во вкладке «Set Design Directory».
6. После того, как проект был создан, необходимо скомпилировать его, выполнить сборку проектируемой системы и запустить
моделирование. Внешний вид рабочей области представлен на
рис. 7. Внешний вид рабочей области проекта.
Рис. 6. Выбор списка библиотек для проекта
13
Рис. 7. Внешний вид рабочей области проекта
2.1. Компиляция проекта
1. Исходный код проекта загрузить в рабочую директорию.
2. Выбрать VHDL файл компонента верхнего уровня, кликнуть
правой кнопкой мыши и выбрать во всплывающем меню «NCVhdl», рис. 8. В открывшейся вкладке «Compile VHDL» выставить
настройки для компиляции, как показано на рис. 9 и нажать на
кнопку «ОК».
3. В случае успешной компиляции без ошибок в правой части
графического окна в папке «worklib» (рис. 10 Окно проекта) появятся объектные файлы для каждого блока проекта. Пример изображен на рис. 11.
14
15
Рис. 9. Настройки компиляции
Рис. 8. Компиляция исходного кода
Рис. 10. Окно проекта
Рис. 11. Содержимое папки worklib после выполнения
компиляции проекта
2.2. Фаза сборки проекта
1. Развернуть содержимое worklib и выбрать модуль верхнего
уровня, кликнуть правой кнопкой мыши и выбрать во всплывающем меню «NCElab», рис. 12. В открывшейся вкладке «Elaborate»
выставить настройки в соответствии с рис. 13.
16
17
Рис. 13. Настройки сборки проекта
Рис. 12. Сборка проекта
Рис. 14. Содержимое папки Snapshots
2. Если не произошло никаких ошибок, то в папке «Snapshots»
появится файл с названием, которое содержит название модуля
верхнего уровня (рис. 14).
2.3. Запуск моделирования
После успешного и безошибочного выполнения фаз компиляции, сборки проекта можно приступить к моделированию разработанного блока.
1. Для этого необходимо развернуть папку «Snapshots» и выбрать файл, который необходимо запустить на моделирование. Затем кликнуть на кнопку «Simulator» или кликнуть правой кнопкой
мыши и из раскрывающегося списка выбрать «NCSim» (рис. 15). Затем установить настройки моделирования как показано на рис. 16 и
нажать на кнопку «ОК».
18
19
Рис. 16. Настройки моделирования проекта
Рис. 15. Запуск моделирования
2. В результате шага 1 откроется окно моделирования как
показано на рис. 17. Так же откроется консоль, как показано на
рис. 18.
3. Перед запуском моделирования необходимо выбрать компоненты системы, состояние которых представляет интерес для
проектировщика во время моделирования. Значения сигналов выбранных компонент будут отображаться на временных диаграммах
в ходе моделирования системы. Для этого необходимо выбрать интересующий компонент системы или набор сигналов в дереве структуры проекта, кликнуть правой кнопкой мыши и во всплывающем
меню выбрать «Send to New – Waveform Window», как показано на
рис. 19. В результате откроется временная диаграмма, как изображено на рис. 20. Для запуска моделирования необходимо на панели
вкладок временной диаграммы выбрать вкладку «Simulation» и из
всплывающего списка выбрать команду «Run», рис. 21. Для остановки моделирования необходимо на панели вкладок временной
диаграммы выбрать вкладку «Simulation» и из всплывающего списка выбрать команду «Stop». В процессе моделирования системы
на временной диаграмме будут отражены все изменения сигналов,
переменных выбранного компонента, рис. 22.
Рис. 17. Рабочее окно моделирования проекта
20
Рис. 18. Консоль моделирования проекта
Рис. 19. Настройка временных диаграмм
для моделирования проекта
21
Рис. 20. Временная диаграмма
Рис. 21. Запуск моделирования
22
Рис. 22. Отображение значений сигналов в процессе моделирования
системы
23
3. ИСПОЛЬЗОВАНИЕ IMC (INCISIVE METRICS CENTER) ДЛЯ
ОЦЕНКИ ПОЛНОТЫ ТЕСТИРОВАНИЯ
Утилита IMC (Incisive Metrics Center) [8] входит в пакет программных продуктов Cadence. Она предоставляет проектировщику
информацию о результатах тестирования разработанного модуля.
С помощью утилиты IMC можно оценить полноту покрытия
кода тестами, которые использовались для тестирования разработанной системы. Типичными показателями качества тестов является покрытие тестами исходного кода (представленного на языке
VHDL) и покрытие переключений на выводах модулей. Каждое
логическое выражение в коде должно тестироваться и каждый
вывод модуля должен изменить свое логическое состояние в обоих направлениях, т.е. переключиться из “1” в “0”, а также из “0”
Рис. 23. Сборка проекта
24
в “1”. В ходе оценки полноты тестирования оценивается на сколько
тщательно в процессе выполнения тестов были проверены строки
исходного кода, представляющего собой описание системы. Представляется информация о том, какие блоки или строки исходного
кода не были протестированы. Это означает, что при выполнении
тестов не возникало событий, которые приводили к активации тех
или иных состояний системы. Используя информацию о результатах тестирования проектировщик может понять какие из блоков
системы не были протестированы или протестированы не полностью. Информация отображается в графическом виде.
Ниже представлены основные шаги, которые необходимо выполнить для запуска этой утилиты.
1. При сборке проекта (рис. 23) должна быть установлена галочка напротив «Enable code coverage checks» (рис. 24, рис. 25).
Рис. 24. Выбор расширенных параметров
настройки сборки проекта
25
Рис. 25. Установка параметров сборки проекта при использовании
утилиты IMC
2. Запуск моделирования (рис. 26 – рис. 28).
Рис. 26. Запуск на моделирование
26
27
Рис. 27. Установка параметров
моделирования
Рис. 28. Команда запуска моделирования
3. Когда моделирование выполнено, можно приступить к анализу результатов тестирования. Для этого необходимо нажать на
кнопку «Coverage» (рис. 29).
В консоли «Simulator» ввести команду imc и нажать клавишу
«Enter» (рис. 30).
Рис. 29. Выбор инструмента анализа результатов моделирования
Рис. 30. Консоль «Simulator»
28
4. Запущена утилита IMC (Incisive Metrics Center) (рис. 31). Теперь необходимо загрузить файл, сгенерированный в ходе моделирования вашего проекта (рис. 32). Файл располагается в директории «<рабочий каталог пользователя>/cov_work/scope/test».
Рис. 31 Начальное окно утилиты Incisive Metrics Center
Рис. 32. Загрузка базы для анализа результатов моделирования
29
Рис. 33. Результаты анализа тестирования
Смотрим и анализируем результаты. Необходимо помнить, что
для сдачи лабораторной работы необходимо, чтобы все компоненты были полностью протестированы. Это означает, что напротив
всех компонент должны быть зеленые полоски с надписью 100%
(рис.33).
30
4. ТЕСТИРОВАНИЕ БЛОКОВ, НАПИСАННЫХ
НА ЯЗЫКЕ VHDL
Основная цель тестового окружения (модуля) – проверить функционирование разрабатываемого устройства путем подачи на его
вход тестовых воздействий и про анализировать результаты моделирования его работы. При этом анализ результатов моделирования может выполняться автоматически самим тестовым модулем
либо вручную разработчиком, [1].
В целом, тестовый модуль выполняет следующие задачи:
– создает экземпляр объекта для тестирования (моделирования);
– формирует на входе созданного экземпляра объекта тестовое
воздействие;
– при необходимости выводит в консоль программы моделирования различную информацию;
– при необходимости проводит автоматическую проверку функционирования тестируемого устройства.
Общая структура тестового модуля представлена на рис. 34.
Тестовый модуль на языке VHDL представляется проектным
модулем entity, который не содержит внешнего интерфейса, то есть
портов ввода/вывода. При этом в проектном модуле architecture,
представляющем реализацию тестового модуля, создается экземпляр тестируемого объекта, на вход которого подаются сформированные тестовые воздействия.
Тестовые воздействия могут формироваться внутри тестового
модуля с помощью конструкций языка VHDL или могут считываться из внешнего источника, например, из файла.
Автоматическая проверка корректности работы устройства выполняется путем сравнения результатов работы устройства, то есть
Тестовое окружение
Блок формирования
тестового воздействия
Экземпляр объекта
моделирования
Блок проверка результатов
моделирования
Блок формирования
эталонных значений
Рис. 34. Структура тестового окружения
31
значений его выходных портов, с эталонными значениями. Эталонные значения, в свою очередь, могут быть сформированы также
разными способами.
Первый способ – это получить данные значения извне, например, считать из файла. Здесь предполагается, что эталонные значения были сформированы каким-либо образом ранее, например,
созданы самим разработчиком тестируемого устройства.
Второй способ заключается в формировании эталонных значений
непосредственно самим тестовым модулем с помощью конструкций
языка VHDL. Фактически в этом случае проектировщик создает отдельную от основного проекта модель поведения тестируемого устройства в целом или какой-либо его части в отдельности. На практике,
лучше, если это сделает другой человек, не тот, кто писал VHDL код
проекта. При выполении лабораторной работы бригадой, рекомендуется чтобы это было написано другим членом бригады.
Третий способ заключается в использовании эталонного объекта
для получения эталонных значений. В этом случае кроме экземпляра тестируемого объекта дополнительно выбирается экземпляр
эталонного объекта. При этом входные векторы тестовых воздействий подаются одновременно как на тестируемый, так и на эталонный объекты. В результате моделирования на выходе эталонного объекта формируются значения эталона, с которыми можно
сравнивать результаты работы тестируемого объекта. В качестве
эталонного объекта часто используют поведенческое описание разрабатываемого устройства, которое редко бывает синтезируемым,
зато его можно быстро разработать и отладить.
Если рассматривать структуру тестового окружения в терминах
языка VHDL, то можно ее представить в виде структуры, представленной на рис. 35.
Тестовое окружение
Объект
моделирования
Entity
Entity
Architecture
Component
Architecture
Параллельные операторы
Блок
формирования
Architecture
тестовых воздействий
Блок проверки
результатов
моделирования
Рис. 35. Структура тестового окружения в терминах языка VHDL
32
5. ЛАБОРАТОРНЫЕ РАБОТЫ
5.1. Лабораторная работа 1 «Функциональное и структурное описание простой комбинационной схемы на VHDL»
Задание:
Выполнить два варианта описания объекта моделирования – поведенческое описание и структурное описание (на базе компонентов «И», «ИЛИ», «НЕ»). Промоделировать работу, убедиться в правильности функционирования.
Варианты задания:
1. Y=A and (B or C) and (not D)
2. Y=A or B and (C or (not D))
3. Y=(A or B) and (not (C or D))
4. Y=not(A) and not(B) and (C or D)
5. Y=not(A or B) or not(C or D)
6. Y=A and not(B or C or D)
7. Y=not(A and B and C) or D
8. Y=not(A and B) or not(C) and D
9. Y=not(A or B) and (C or D)
10. Y=(A and B) or not(c) or not(D)
11. Y=A or (C and not(B or D))
12. Y=A and (not(C or b) and D)
13. Y=(A and B and C) or (not(C or D))
14. Y=(B or C) and (A and D) or (not(A))
15. Y=A and (not(C or D) and (not B))
Порядок выполнения работы:
1. Выполнить описание объекта моделирования на языке VHDL.
2. Осуществить компиляцию проекта, исправить выявленные
ошибки.
3. Разработать тестовое окружение для объекта моделирования.
4. Выполнить тестирование правильности функционирования
объекта моделирования.
5. Проверить полноту тестирования с помощью утилиты Incisive
Metrics Center.
6. Подготовить отчет.
Содержание отчета:
1. Постановка задачи, вариант задания.
2. Текст программы на языке VHDL.
3. Результаты моделирования.
4. Оценка полноты тестирования.
5. Выводы.
33
5.2. Лабораторная работа 2 «Блок арбитража»
Задание:
Разработать блок арбитража и тестовое окружение для него.
Блок арбитража представляет собой элемент вычислительной системы, который используется для организации совместного доступа
нескольких устройств к разделяемым ресурсам системы. Примером
такого разделяемого ресурса может быть шина передачи данных.
Блок арбитра разрешает конфликт узлов за доступ к разделяемой
среде. Устройства, которым необходимо осуществить передачу данных передают арбитру запросы на передачу. Арбитр решает, какому
узлу он предоставит право использования разделяемой среды. Затем
он сообщает свое решение выбранному узлу, [1].
В данной лабораторной работе арбитр выбирает устройство для
доступа к ресурсу на основе приоритетов устройств. Количество
устройств для которых выполняется арбитраж задается параметрически на этапе создания блока арбитра. В соответствии с выбранным вариантом реализуется один из трех алгоритмов динамического изменения приоритетов. К ним относятся:
1. Алгоритм простой циклической смены приоритетов.
2. Алгоритм циклической смены приоритетов с учетом последнего запроса.
3. Алгоритм наиболее давнего использования.
В алгоритме простой циклической смены приоритетов после
каждого цикла арбитража все приоритеты понижаются на один
уровень, при этом устройство, имевшее ранее низший уровень приоритета, получает наивысший приоритет (рис 36).
В алгоритме циклической смены приоритетов с учетом последнего
запроса все возможные запросы упорядочиваются в виде циклическоУровень приоритета
устройства
Уровень приоритета
устройства
после цикла арбитража
0
1
1
2
2
3
3
4
4
0
0 – наивысший приоритет
4 – низший приоритет
Рис. 36. Алгоритм простой циклической смены приоритетов
34
го списка. После обработки очередного запроса обслуженному устройству назначается низший уровень приоритета. Следующее в списке
устройство получает наивысший приоритет, а остальным устройствам приоритеты назначаются в убывающем порядке, согласно их
следованию в циклическом списке, рис. 37.
В алгоритме наиболее давнего использования (LRU, Least
Recently Used) после каждого цикла арбитража наивысший приоритет присваивается устройству, который дольше чем другие не
использовал шину, рис. 38.
Уровень приоритета
устройства
Обслуженное
устройство
Уровень приоритета
устройства после
цикла арбитража
0
4
1
0
2
1
3
2
4
3
0 – наивысший приоритет
4 – низший приоритет
Рис. 37. Алгоритм циклической смены приоритетов
с учетом последнего запроса
Время не
использования
шины
Обслуженное
устройство
Уровень
приоритета
устройства
Время не Уровень приоритета
использования устройства после
цикла арбитража
шины
50
0
0
4
40
1
50
0
30
2
40
1
20
3
30
2
10
4
20
3
0 – наивысший приоритет
4 – низший приоритет
Рис. 38. Алгоритм наиболее давнего использования
35
Варианты задания:
N варианта
Количество устройств
Алгоритм смены приоритетов
1
3
Простая циклическая
смена приоритетов
2
5
Циклическая смена приоритетов
с учетом последнего запроса
3
7
Простая циклическая
смена приоритетов
4
9
Алгоритм наиболее
давнего использования
5
11
Алгоритм наиболее
давнего использования
6
3
Циклическая смена приоритетов
с учетом последнего запроса
7
5
Простая циклическая
смена приоритетов
8
7
Циклическая смена приоритетов
с учетом последнего запроса
9
9
Простая циклическая
смена приоритетов
10
11
Циклическая смена приоритетов
с учетом последнего запроса
11
3
Алгоритм наиболее
давнего использования
12
5
Алгоритм наиболее давнего
использования
13
7
Алгоритм наиболее давнего
использования
14
9
Циклическая смена приоритетов
с учетом последнего запроса
15
11
Простая циклическая смена
приоритетов
Порядок выполнения работы:
1. Выполнить описание объекта моделирования.
2. Осуществить компиляцию проекта, исправить выявленные
ошибки.
4. Разработать тестовое окружение для объекта моделирования.
5. Выполнить тестирование правильности функционирования
объекта моделирования.
36
6. Проверить полноту тестирования с помощью утилиты Incisive
Metrics Center.
7. Подготовить отчет.
Содержание отчета:
1. Постановка задачи.
2. Алгоритмы реализуемых операций.
3. Текст программы на языке VHDL.
4. Результаты моделирования.
5. Оценка полноты тестирования.
6. Выводы.
5.3. Лабораторная работа 3 «Описание блока
памяти на языке VHDL»
Задание:
Разработать компонент памяти. Разрядность слова памяти определяется в соответствии с вариантом лабораторной работы. Разрабатываемый компонент включает в себя блок (массив) памяти и набор
внешних интерфейсов. Интерфейсы предназначены для взаимодействия компонента памяти с абстрактными вычислителями. Количество интерфейсов определяется в соответствии с вариантом задания.
Интерфейсы являются параллельными и полностью синхронными.
Значения анализируются по восходящему фронту тактового сигнала. Разрядность передаваемого слова данных и разрядность адреса
соответствуют разрядности слова и количеству слов памяти.
Для предотвращения коллизии с операцией «запись» по одному адресу, будем считать, что интерфейс с меньшим номером имеет
более высокий приоритет на запись. Если одновременно приходят
операции записи и чтения по разным интерфейсам на один адрес,
то все операции чтения считывают старое значение из ячеек.
Варианты задания:
N варианта
Количество внешних интерфейсов
Разрядность слова
памяти, бит
Тип внешнего
интерфейса
1
2
8
А)
2
4
16
Б)
3
5
32
А)
4
6
32
Б)
5
2
16
Б)
6
4
16
Б)
37
N варианта
Количество внешних интерфейсов
Разрядность слова
памяти, бит
Тип внешнего
интерфейса
7
2
8
Б)
8
4
8
Б)
9
2
16
А)
10
4
32
А)
11
2
32
Б)
12
3
8
Б)
13
3
16
А)
14
4
32
Б)
15
2
32
А)
Характеристики интерфейса:
А) Для передачи адреса, данных на запись, данных на чтение и
управления используются выделенные линии. Набор управляющих сигналов включает в себя входной сигнал, указывающий действительность выставляемой внешним устройством информации,
входной сигнал, указывающий направление обмена и выходной
сигнал подтверждения, указывающий при записи факт успешной
записи данных в память, а при чтении факт того, что на шину выставлены действительные данные.
При записи данных адрес, данные на запись и управление выставляются одновременно. При чтении одновременно выставляются
адрес и управление, данные должны быть выставлены в следующем
такте или через такт.
Сигнал подтверждения того, что данные на чтение действительны, держать пока не поступит следующая команда или не будет
снят сигнал действительности выставленной команды.
Б) Для передачи адреса, данных на запись, данных на чтение и
управления используются выделенные линии. Набор управляющих
сигналов включает в себя входной сигнал, указывающий действительность выставляемого внешним устройством адреса, входной сигнал,
указывающий направление обмена и выходной сигнал подтверждения, указывающий при записи факт успешного защелкивания адреса
в памяти; входной сигнал, указывающий действительность входных
данных, выходной сигнал, подтверждающий, что данные успешно
сохранены в памяти; входной сигнал, указывающий готовность принять данные и выходной сигнал, подтверждающий действительность
выставленных данных.
38
Порядок выполнения работы:
1. Выполнить описание объекта моделирования на языке VHDL.
2. Разработать тестовое окружение для объекта моделирования.
3. Выполнить тестирование правильности функционирования
объекта моделирования.
4. Подготовить отчет.
Содержание отчета:
1. Постановка задачи, вариант задания.
2. Алгоритмы реализуемых операций.
3. Текст программы на языке VHDL.
4. Результаты моделирования.
5. Выводы.
5.4. Лабораторная работа 4 «Разработка
элементарного вычислителя»
Задание:
Разработать арифметико-логическое устройство (АЛУ), которое
в зависимости от кода команды должно выполнять заданный набор
действий над операндами. Набор действий определяется вариантом. В зависимости от кода операции может использоваться один
или два операнда. Разрядность данных совпадает с разрядностью
слова памяти в лабораторной работе 3.
Для каждого варианта АЛУ может выполнять 5 различных операций: 4 бинарных операции и одна унарная. Код операции и операнды на вход АЛУ для четных вариантов поступают параллельно,
для нечетных - последовательно.
Унарная операция выбирается в соответствии с номером варианта из следующего набора:
1. NOT
2. Увеличение на 1
3. Уменьшение на 1
Бинарные операции выбираются в соответствии с номером варианта из следующего набора:
1. Сложение (реализовать двумя способами)
2. Вычитание (реализовать двумя способами)
3. Смена знака на противоположный
4. Операция кругового сдвига (первого на количество бит, указанном во втором или наоборот)
5. Операция «Сложения по модулю 2»
6. Операция умножения
39
Варианты задания:
N
варианта
Унарная
операция
(0)
Бинарная
операция
(1)
Бинарная
операция
(2)
Бинарная
операция
(3)
Бинарная
операция
(4)
1
1
2
3
6
2
1
2
4
6
3
1
2
5
6
4
1
3
4
6
5
1
3
5
6
6
1
4
5
6
2
3
4
6
2
3
5
6
9
2
4
5
6
10
3
4
5
6
11
1
2
5
6
12
1
3
4
6
13
3
4
5
6
14
2
3
4
6
15
1
3
5
6
7
8
(N mod 3)+1
Порядок выполнения работы:
1. Выполнить описание объекта моделирования на VHDL.
2. Разработать тестовое окружение для объекта моделирования.
3. Выполнить тестирование правильности функционирования
объекта моделирования.
4. Подготовить отчет.
Содержание отчета:
1. Постановка задачи, вариант задания.
2. Алгоритмы реализуемых операций.
3. Текст программы на языке VHDL.
4. Результаты моделирования.
5. Выводы.
5.5. Лабораторная работа 5 «Разработка
вычислительной системы»
Задание:
Разработка вычислительной системы на базе компонентов, разработанных в лабораторной работе 3 и 4. Вычислительная система
40
включает в себя процессор, построенный на базе элементарного вычислителя (в соответствии с вариантом), компонент памяти и блок
управления. Блок управления считывает из файла и записывает
в память программу. После выполнения программы проверяет результат ее выполнения. Процессор включает в себя элементарный
вычислитель и блок взаимодействия с памятью. Блок взаимодействия с памятью прочитывает из памяти команды и записывает
в память результаты.
Формат команды:
Код операции, адрес первого операнда, адрес второго операнда,
адрес результата. Размеры полей определяются разработчиком, суммарная длина команды должна быть равна целому количеству слов
памяти. Адрес первой команды в памяти задается параметрически.
Блок управления подключается к отдельному порту памяти.
Варианты задания:
N варианта
Количество процессоров
1
4
2
3
3
4
4
5
5
5
6
3
Порядок выполнения работы:
1. Выполнить описание объекта моделирования на VHDL.
2. Разработать тестовое окружение для объекта моделирования.
3. Выполнить тестирование правильности функционирования
объекта моделирования.
4. Подготовить отчет.
Содержание отчета:
1. Постановка задачи, вариант задания.
2. Алгоритмы реализуемых операций.
3. Текст программы на языке VHDL.
4. Результаты моделирования.
5. Выводы.
41
6. ЗАДАНИЯ ДЛЯ ДОМАШНЕЙ РАБОТЫ
В соответствии с указанным вариантом задания реализовать фрагмент кода в указанном базисе PLA, CLB FPGA и библиотеки ASIC.
Фрагмент кода
A)
Signal a1: std_logic_vector(2 downto 0);
Signal a2: std_logic_vector(2 downto 0);
Signal a,b,c, sum: integer range 0 to 5;
If (a1 <= a2) then
Sum<=a+b;
Else
Sum<=a+c;
End if;
Б)
Signal a1: std_logic_vector(1 downto 0);
Signal a2: std_logic_vector(1 downto 0);
Signal a,b,c, d, sum: integer range 0 to 5;
If (a1 > a2) then
Sum<=a-b;
Else
Sum<=a-c;
End if;
В)
Signal a1: std_logic_vector(1 downto 0);
Signal a,b,c, d: integer range 0 to 3;
Case a1 is
When “00” => a<=b;
When “01” => a<=c;
When “10” => a<=d;
When others =>a<=0;
End case;
Г)
Signal a1: std_logic_vector(2 downto 0);
Signal a,b,c, d: integer range 0 to 3;
Case a1 is
When “000” => a<=a+b;
When “001” | ”010” => a<=c;
When “010” | “011” | “110” => a<=d;
When others =>a<=0;
End case;
42
Д)
Signal a1: std_logic_vector(3 downto 0);
Signal a2: std_logic_vector(3 downto 0);
Signal a,b,c, sum: integer range 0 to 5;
If (a1 = a2) then
Sum<=a+b;
Else
Sum<=a+c;
End if;
Варианты характеристик PLA:
А) 8 входов, 3 линии дизъюнкции
Б) 6 входов, 4 линии дизъюнкции
В) 10 входов, 3 линии дизъюнкции
Варианты CLB FPGA:
А) 8 входов, 4 выхода
Б) 6 входов, 2 выхода
В) 4 входа, 1 выход
Варианты библиотеки ASIC:
А) «И»:2 входа, «И»:4 входа, «ИЛИ»:3 входа, «НЕ»
Б) «И»:3 входа, «ИЛИ»:2 входа, «ИЛИ»-3 входа, «НЕ»
В) «И-ИЛИ»: 2 группы «И» по 2 входа, «И»:4 входа, «НЕ»
Г) «И-ИЛИ»: 2 группы «И» по 3 входа, «НЕ»
Д) «И-ИЛИ»: 3 группы «И» по 2 входа, «НЕ»
Варианты задания:
N варианта
Фрагмент кода
Вариант
PLA
Вариант CLB
FPGA
Вариант библиотеки ASIC
1
А
А
А
А
2
3
4
Б
В
Г
Б
В
А
В
Б
А
Б
В
Г
5
6
Д
А
Б
В
В
Б
Д
А
7
8
9
10
11
12
13
14
15
Б
В
Г
Д
А
Б
В
Г
Д
А
Б
В
А
Б
В
А
Б
В
А
В
Б
А
В
Б
А
В
Б
Б
В
Г
Д
А
Б
В
Г
Д
43
7. СПЕЦИАЛИЗИРОВАННОЕ ПРОГРАММНОЕ
ОБЕСПЕЧЕНИЕ ДЛЯ УДАЛЕННОГО ДОСТУПА
К СЕРВЕРУ С ОС LINUX CENTOS С РАБОЧИХ СТАНЦИЙ
WINDOWS
Для выполнения лабораторных работ потребуется использовать
следующее программное обеспечение для работы с высокопроизводительным сервером приложений , на котором установлена система автоматизированного проектирования компании Cadence:
1. WinSCP
2. Xming
3. Xming-portable-PuTTY
7.1. WinSCP
WinSCP – это графический клиент SFTP (SSH File Transfer
Protocol) для Windows с открытым исходным кодом. Он также поддерживает протокол SCP (Secure Copy Protocol). Предназначен для
защищённого копирования файлов между компьютером и серверами, поддерживающими эти протоколы.
При помощи WinSCP можно соединиться с сервером SSH
(Secure Shell) по протоколу SFTP (SSH File Transfer Protocol) или
SCP (Secure Copy Protocol), как правило, с машинами под ОС UNIX.
SFTP стандартно входит в реализацию протокола SSH-2. SCP точно
так же стандартно входит в реализацию протокола SSH-1. Оба этих
протокола поддерживаются даже самыми свежими версиями SSHсерверов. WinSCP поддерживает как SSH-1, так и SSH-2.
WinSCP выполняет все основные операции с файлами, такие как
загрузка и выгрузка файлов. Он также позволяет переименовывать
файлы и папки, создавать папки, изменять свойства файлов и папок, а также создавать символические ссылки и ярлыки. Один из
двух интерфейсов программы позволяет также управлять файлами
на локальном компьютере пользователя. Пример графического интерфейса представлен на рис. 39.
7.2. Xming
Xming – порт сервера X Window System для операционной системы Microsoft Windows. Сервер Xming основан на сервере Xorg
(X11R6.9) и создан посредством кросскомпиляции при помощи
MinGW и Pthreads-Win32. Не требует установки добавочных библиотек для использования его под Windows. Xming можно использовать вместе с приложениями, работающими по SSH (таки44
Рис. 39. Графический интерфейс WinSCP
ми, как PuTTY) для обеспечения шифрованной передачи сессии
X11 с Unix. Это позволяет его использовать для безопасной работы
с графическими приложениями удаленного компьютера.
7.3. Xming-portable-PuTTY
Xming-portable-PuTTY представляет собой клиентское программное обеспечение для реализации X11 Forwarding. X11
Forwarding - это перенаправление графического вывода удаленной
подсистемы, что позволяет работать напрямую с графическими
приложениями без использования рабочего стола Linux.
Xming-portable-PuTTY поддерживает графический интерфейс
для установки настроек. Пример представлен на рис. 40.
7.4. Правила использования программного обеспечения
Преподаватель для каждого студента создает отдельную учетную запись на сервере. Через нее будет осуществляться работа
45
Рис. 40. Графический интерфейс Xming-portable-PuTTY
с программным обеспечением Cadence на сервере. В ней же будут
храниться все файлы лабораторных работ.
Для надежности исходные коды настоятельно рекомендуется
сохранять и на флеш-память. Это необходимо на случай сбоя, временного выхода из строя серверного оборудования.
Чтобы работать на сервере нужно:
1. Запустить Xming. Никаких окошек не откроется. Просто на
панели задач появиться иконка
.
2. Запустить WinSCP.
3. В поле Host name ввести: имя_учетной_записи@ip_адресс_
сервера (рис. 41)
4. Для того, чтобы не вводить каждый раз Host name, можно нажать на кнопку Save.
5. Нажать на кнопку Login.
6. В появившемся окне ввести пароль и нажать на кнопку OK
(рис. 42).
7. Запустить PuTTY
8. В поле Host name ввести: имя_учетной_записи@ip_адресс_
сервера (рис. 43).
46
9. В секции Connection->SSH->X11 установить флажок напротив Enable X11 forwarding и в поле напротив X display location указать :0. Как показано на рис. 44.
10. Вернуться в секцию Session и сохранить настройки учетной
записи.
Рис. 41. Настройка WinSCP
Рис. 42. Ввод пароля при использовании WinSCP
47
Рис. 43. Настройка PuTTY
Рис. 44. Настройка X11 для PuTTY
48
11. Далее нажать на кнопку Open.
12. В появившемся окне ввести пароль от учетной записи и нажать Enter (рис. 45).
13. Ввести команду mc. Эта команда запускает Midnight
Commander (рис. 46).
14. В результате появится окно, в котором можно увидеть и
управлять директориями и файлами своей учетной записи.
15. Вы получили доступ к своей учетной записи на сервере. Здесь
будут располагаться ваши проекты, их настройки и еще много специализированной информации, нужной для выполнения моделирования на сервере (рис. 47).
16. Рекомендуется каждый проект с лабораторной работой размещать в отдельной директории.
17. Открыть директорию, где будет размещен проект и в командной строке набрать команду nclaunch (рис. 48).
Рис. 45. Ввод пароля при использовании PuTTY
Рис. 46. Запуск Midnight Commander
49
Рис. 47. Окно Midnight Commander
Рис. 48. Запуск утилиты nclaunch
18. Появится окно программного обеспечения Cadence, которое
используется для проектирования и отладки разрабатываемых
устройств.
50
РЕКОМЕНДУЕМАЯ ЛИТЕРАТУРА
1. International technology roadmap for semiconductors (ITRS),
2013 edition, executive summary.
2. Игорь Шагурин, Системы на кристалле. Особенности реализации и перспективы применения. Электронные компоненты №1
2009, С. 37–39.
3. Проектирование цифровых систем на VHDL. Суворова Е. А.,
Шейнин Ю.Е. БХВ-Петербург, 2003, 576 с.
4. Немудров В., Мартин Г. Системы-на-кристалле. Проектирование и развитие. М.: Техносфера, 2004. 216 с.
5. Проектирование БИС класса «система на кристалле»: учеб.
пособие/Ю. И. Бочаров, А. С. Гуменюк, А. Б. Симаков, П. А. Шевченко. М.: МИФИ, 2008. 188 с.
6. http://www.cadence.com/products/pages/default.aspx
7. NCLaunch User Guide Product Version 14.1, June 2014, 220 с.
8. Incisive Metrics Center User Guide. Product Version 14.1, June
2014, 380 с.
9. Автоматизация проектирования ЭВМ, С. А. Байрак, М. М. Татур, Минск: БГУИР, 2008, 44 с.
10. Таненбаум Э. Архитектура компьютера. 5-е изд. СПб.: Питер,
2007, 844 с.
СОДЕРЖАНИЕ
Введение...................................................................................
3
1. Профессиональный поток проектирования СБИС фирмы Cadence
Design Systems...........................................................................
5
2. Создание проекта и запуск на моделирование в системе
автоматизированного проектирования Cadence ..............................
11
3. Использование IMC (Incisive Metrics Center)
для оценки полноты тестирования................................................
24
4. Тестирование блоков, написанных на языке VHDL......................
31
5. Лабораторные работы..............................................................
33
6. Задания для домашней работы.................................................
42
7. Специализированное программное обеспечение
для удаленного доступа к серверу с ОС Linux CentOS
с рабочих станций Windows.........................................................
44
Рекомендуемая литература.........................................................
51
51
Учебное издание
Матвеева Надежда Александровна,
Суворова Елена Александровна,
Шейнин Юрий Евгеньевич
ПРОЕКТИРОВАНИЕ СБИС
И СИСТЕМ-НА-КРИСТАЛЛЕ
Учебно-методическое пособие
Публикуется в авторской редакции.
Компьютерная верстка М. И. Дударевой
Подписано к печати 11.05.2016. Формат 60 × 84 1/16.
Бумага офсетная. Усл. печ. л. 2,96. Уч.-изд. л. 3,18.
Тираж 50 экз. Заказ № 220.
Редакционно-издательский центр ГУАП
190000, Санкт-Петербург, Б. Морская ул., 67
Документ
Категория
Без категории
Просмотров
2
Размер файла
1 985 Кб
Теги
matveev
1/--страниц
Пожаловаться на содержимое документа