Участник:ANA/Библиотека — различия между версиями
Материал из Wiki
ANA (обсуждение | вклад) м |
ANA (обсуждение | вклад) м (→Ссылки) |
||
| Строка 51: | Строка 51: | ||
=== Ссылки === | === Ссылки === | ||
* [http://blogs.mentor.com/verificationhorizons/blog/2013/08/19/part-10-the-2012-wilson-research-group-functional-verification-study/ Обзор популярности HDL для верификации]. | * [http://blogs.mentor.com/verificationhorizons/blog/2013/08/19/part-10-the-2012-wilson-research-group-functional-verification-study/ Обзор популярности HDL для верификации]. | ||
| + | |||
| + | == План стажировки == | ||
| + | |||
| + | === FPGA === | ||
| + | |||
| + | * Введение: | ||
| + | ** Что такое ПЛИС? Области применения. | ||
| + | ** Обзор САПР ( Quartus ). | ||
| + | *Базовые цифровые узлы: | ||
| + | ** Узлы комбинаторного типа: | ||
| + | *** Базовые логические элементы. | ||
| + | *** Шифраторы/Дешифраторы. | ||
| + | *** Мультиплексоры/Демультиплексоры. | ||
| + | *** Компараторы. | ||
| + | *** Сумматоры. | ||
| + | *** Умножители. | ||
| + | ** Узлы последовательного типа: | ||
| + | *** Триггеры. | ||
| + | *** Сдвиговые регистры. | ||
| + | *** Двоичные/недвоичные счетчики. | ||
| + | *** Конечные автоматы. | ||
| + | * Запоминающие устройства/память ПЛИС: | ||
| + | ** Статическая и динамическая память. | ||
| + | ** Однопортовая/двухпортовая память. | ||
| + | ** FIFO / стек. | ||
| + | *Изучение языка Verilog: | ||
| + | ** Отличительне черты языков описания аппаратуры ( HDL ). | ||
| + | ** Синтезируемые/несинтезируемые конструкции языка. | ||
| + | ** Изучение синтезируемых конструкций языка: | ||
| + | *** Типы данных и способы их представления. | ||
| + | *** Операции, блокирующие/неблокирующие операции присваивания | ||
| + | *** Управляющие конструкции. | ||
| + | *** Блоки описания узлов комбинационного типа. | ||
| + | *** Блоки описания узлов последовательного типа. | ||
| + | *** Структурное/поведенческое описание проекта. | ||
| + | *** Параметризация. | ||
| + | *** Реализация на Verilog базовых цифровых узлов. | ||
| + | ** Изучение несинтезируемых конструкций языка ( +SystemVerilog ): | ||
| + | *** Применение несинтезируемых конструкций языка. Верификация. Testbench. Основные принципы создания testbench. | ||
| + | *** Основные функциональные блоки testbench'ей. | ||
| + | *** Типы данных. Блоки процедурного типа. | ||
| + | *** Структуры данных для верификации ( массивы, очереди и т.д. ). | ||
| + | *** Функции и tasks. | ||
| + | *** Временная модель симуляции. | ||
| + | *** Использование базовых принципов ООП для верификации. | ||
| + | *** SystemVerilog Assertions. | ||
| + | *** Создание testbench для базовых цифровых узлов. | ||
| + | *** Обзор существующих методологий ( библиотек ) верификации. | ||
| + | |||
| + | === MCU === | ||
| + | '''Теория:''' | ||
| + | 1. Микроконтроллеры. Сущность, классификация, область применения. | ||
| + | 2. Управление микроконтроллером: регистры. Шина памяти, организация памяти. | ||
| + | 3. GPIO. Сущность, область применения, способы подключения. | ||
| + | 4. Шина SPI. Принцип работы, область применения. | ||
| + | 5. Шина I2C. Принцип работы, область применения. | ||
| + | 6. UART/USART. Принцип работы, область применения. | ||
| + | 7. Прерывания. Принцип работы, преимущества, недостатки, область применения. | ||
| + | Вектор прерываний. | ||
| + | 8. Системный таймер. | ||
| + | 9. Таймеры. Широтно-импульсная модуляция. | ||
| + | 10. АЦП. | ||
| + | 11. ЦАП. | ||
| + | 12. DMA-контроллер. | ||
| + | 13. USB. Общие принципы работы, классификация режимов работы. | ||
| + | USB-дескрипторы. Описание транзакций. | ||
| + | |||
| + | |||
| + | '''Практика:''' | ||
| + | 1. Язык программирования C. Основы. | ||
| + | 2. Знакомство с платой Steamer. | ||
| + | 3. Чтение схем. | ||
| + | 4. Простейшая программа на Steamer. ( Работа со светодиодом ) | ||
| + | 5. Заливка программы в микроконтроллер. ( при помощи JTAG, USB ) | ||
| + | 6. Отладка программ при помощи JTAG. | ||
| + | 7. Сборка проекта: gcc, ld, make. | ||
| + | 8. Использование внешних библиотек. Приложение, реализующее интерфейс с USB. | ||
| + | 9. Использование операционных систем. (на примере NutOS). Потоки выполнения | ||
| + | (threads). Пример многопоточного приложения. | ||
| + | 10. Семафоры, mutex'ы. Доступ к разделяемым ресурсам микроконтроллера. | ||
| + | |||
| + | |||
| + | '''Про курсовую в двух словах:''' | ||
| + | Устройство на базе Steamer ( + плата расширения с FPGA и PHY ), | ||
| + | которое имеет следующую функциональность: | ||
| + | 1) Может отправлять любые данные от PC через USB в Ethernet. | ||
| + | 2) Может принимать данные из Ethernet, применять простейшие фильтры и | ||
| + | отправлять отфильтрованные данные на PC. | ||
| + | 3) На STM имеется простейший сетевой стек ( может пинговать/пинговаться ). | ||
| + | 4) Всякая обвязка по мелочи. Типа собирать статистику, | ||
| + | моргать статусными диодами. | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | == NEW == | ||
Версия 00:25, 8 декабря 2013
Содержание |
Функциональная верификация
Книги
- Bruce Wile, John Goss, Wolfgang Roesner Comprehensive Functional Verification. The Complete Industry Cycle (Systems on Silicon) — USA: Elsevier, 2005. — 676 с. — ISBN 0-12-751803-7.
- В книге описан процесс верификации. Даны примеры верификации калькулятора от тестового плана до тестбенча. Описан язык PSL.
- Ilya Wagner, Valeria Bertacco Post-Silicon and Runtime Verification for Modern Processors — 2010.
Статья
Ссылки
План стажировки
FPGA
- Введение:
- Что такое ПЛИС? Области применения.
- Обзор САПР ( Quartus ).
- Базовые цифровые узлы:
- Узлы комбинаторного типа:
- Базовые логические элементы.
- Шифраторы/Дешифраторы.
- Мультиплексоры/Демультиплексоры.
- Компараторы.
- Сумматоры.
- Умножители.
- Узлы последовательного типа:
- Триггеры.
- Сдвиговые регистры.
- Двоичные/недвоичные счетчики.
- Конечные автоматы.
- Узлы комбинаторного типа:
- Запоминающие устройства/память ПЛИС:
- Статическая и динамическая память.
- Однопортовая/двухпортовая память.
- FIFO / стек.
- Изучение языка Verilog:
- Отличительне черты языков описания аппаратуры ( HDL ).
- Синтезируемые/несинтезируемые конструкции языка.
- Изучение синтезируемых конструкций языка:
- Типы данных и способы их представления.
- Операции, блокирующие/неблокирующие операции присваивания
- Управляющие конструкции.
- Блоки описания узлов комбинационного типа.
- Блоки описания узлов последовательного типа.
- Структурное/поведенческое описание проекта.
- Параметризация.
- Реализация на Verilog базовых цифровых узлов.
- Изучение несинтезируемых конструкций языка ( +SystemVerilog ):
- Применение несинтезируемых конструкций языка. Верификация. Testbench. Основные принципы создания testbench.
- Основные функциональные блоки testbench'ей.
- Типы данных. Блоки процедурного типа.
- Структуры данных для верификации ( массивы, очереди и т.д. ).
- Функции и tasks.
- Временная модель симуляции.
- Использование базовых принципов ООП для верификации.
- SystemVerilog Assertions.
- Создание testbench для базовых цифровых узлов.
- Обзор существующих методологий ( библиотек ) верификации.
MCU
Теория:
1. Микроконтроллеры. Сущность, классификация, область применения.
2. Управление микроконтроллером: регистры. Шина памяти, организация памяти.
3. GPIO. Сущность, область применения, способы подключения.
4. Шина SPI. Принцип работы, область применения.
5. Шина I2C. Принцип работы, область применения.
6. UART/USART. Принцип работы, область применения.
7. Прерывания. Принцип работы, преимущества, недостатки, область применения.
Вектор прерываний.
8. Системный таймер.
9. Таймеры. Широтно-импульсная модуляция.
10. АЦП.
11. ЦАП.
12. DMA-контроллер.
13. USB. Общие принципы работы, классификация режимов работы.
USB-дескрипторы. Описание транзакций.
Практика:
1. Язык программирования C. Основы.
2. Знакомство с платой Steamer.
3. Чтение схем.
4. Простейшая программа на Steamer. ( Работа со светодиодом )
5. Заливка программы в микроконтроллер. ( при помощи JTAG, USB )
6. Отладка программ при помощи JTAG.
7. Сборка проекта: gcc, ld, make.
8. Использование внешних библиотек. Приложение, реализующее интерфейс с USB.
9. Использование операционных систем. (на примере NutOS). Потоки выполнения
(threads). Пример многопоточного приложения.
10. Семафоры, mutex'ы. Доступ к разделяемым ресурсам микроконтроллера.
Про курсовую в двух словах:
Устройство на базе Steamer ( + плата расширения с FPGA и PHY ),
которое имеет следующую функциональность:
1) Может отправлять любые данные от PC через USB в Ethernet.
2) Может принимать данные из Ethernet, применять простейшие фильтры и
отправлять отфильтрованные данные на PC.
3) На STM имеется простейший сетевой стек ( может пинговать/пинговаться ).
4) Всякая обвязка по мелочи. Типа собирать статистику,
моргать статусными диодами.