Исследование методов и разработка устройств обработки информации в системах на кристалле тема диссертации и автореферата по ВАК РФ 05.13.05, кандидат наук Зинкевич, Алексей Владимирович

  • Зинкевич, Алексей Владимирович
  • кандидат науккандидат наук
  • 2013, Хабаровск
  • Специальность ВАК РФ05.13.05
  • Количество страниц 150
Зинкевич, Алексей Владимирович. Исследование методов и разработка устройств обработки информации в системах на кристалле: дис. кандидат наук: 05.13.05 - Элементы и устройства вычислительной техники и систем управления. Хабаровск. 2013. 150 с.

Оглавление диссертации кандидат наук Зинкевич, Алексей Владимирович

СОДЕРЖАНИЕ

ВВЕДЕНИЕ

1 ПРОБЛЕМА СОВМЕСТНОГО ПРОЕКТИРОВАНИЯ АППАРАТНОГО И ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ В СИСТЕМАХ НА КРИСТАЛЛЕ И ПУТИ ЕЕ РЕШЕНИЯ

12

1 1 Этапы системного уровня проектирования СБИС класса "система на кристалле"

1 2 Системная сложность решения декомпозиции задачи на аппаратную и программную составляющие

1 3 Анализ подходов к совместному аппаратно-программному проектированию систем на кристалле

1 4 Формализация модели потока совместного проектирования аппаратного и программного обеспечения

Выводы

2 РАЗРАБОТКА МЕТОДИКИ ДЕКОМПОЗИЦИИ СИСТЕМЫ НА АППАРАТНЫЕ И ПРОГРАММНЫЕ СОСТАВЛЯЮЩИЕ НА ПРИМЕРЕ ДИСКРЕТНОГО ВЕЙВЛЕТ ПРЕОБРАЗОВАНИЯ

2 1 Дискретное вейвлет преобразование в стандарте сжатия 1РЕ02000

2 2 Оценка ресурсов вариантов аппаратных и программных реализаций дискретного вейвлет преобразования

2 3 Анализ задачи целочисленного линейного программирования как прототипа разрабатываемого метода

2 4 Метод аппаратно-программного разделения на основе оценки ресурсов

Выводы

3 ИССЛЕДОВАНИЕ И РАЗРАБОТКА ЭФФЕКТИВНЫХ МЕТОДОВ ИСПОЛЬЗОВАНИЯ ПАМЯТИ ПРИ ПРОЕКТИРОВАНИИ СИСТЕМ НА КРИСТАЛЛЕ

3 1 Анализ многоуровневой организации памяти в составе систем на кристалле

3 2 Анализ характеристик аппаратного и программного доступа к памяти

3 3 Исследование возможностей использование внешней энергонезависимой памяти конфигурации ПЛИС для хранения пользовательских данных

3 4 Разработка и исследование сложно-функционального блока доступа к внешней конфигурационной памяти

Выводы

4 ЭКСПЕРИМЕНТАЛЬНЫЕ ИССЛЕДОВАНИЯ И РЕАЛИЗАЦИИ АППАРАТНО-ПРОГРАММНЫХ УСТРОЙСТВ НА БАЗЕ СБИС КЛАССА СИСТЕМА НА КРИСТАЛЛЕ

4 1 Исследование и совершенствование системы прерываний процессора на базе ПЛИС

4 2 Проектирование системы обработки видеосигнала с использованием

специализированного кодера изображений

4 3 Рациональное распределение ресурсов ПЛИС при использовании высокоскоростных

интерфейсов

Выводы

ЗАКЛЮЧЕНИЕ

СПИСОК ОБОЗНАЧЕНЙ И СОКРАЩЕНИЙ

ПУБЛИКАЦИИ

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

ПРИЛОЖЕНИЕ 1 Описание контроллера доступа к флеш памяти ЕРС8

ПРИЛОЖЕНИЕ 2 Акты внедрения

Рекомендованный список диссертаций по специальности «Элементы и устройства вычислительной техники и систем управления», 05.13.05 шифр ВАК

Введение диссертации (часть автореферата) на тему «Исследование методов и разработка устройств обработки информации в системах на кристалле»

ВВЕДЕНИЕ

Актуальность темы. Развитие современных электронных систем управления, сбора и обработки данных, их постоянно растущие сложность и ресурсоемкость, а также необходимость сокращения сроков разработки требуют создания новых классов функционально сложных изделий микроэлектроники и внедрения принципиально новых технологических принципов разработки микроэлектронных устройств. При этом сокращение временных затрат на изготовление, верификацию и вывод изделия на рынок не должно влиять на качество разрабатываемых интегральных схем и их надежность.

Принципиально новой стала методология проектирования СБИС класса «система на кристалле» (СнК), допускающая многократное использование готовых, предварительно протестированных сложнофункциональных блоков. Методология позволяет на одном кристалле размещать аппаратные и программные (на базе софт-процессоров) реализации, которые могут взаимодействовать между собой и в итоге позволяют создавать достаточно гибкие системы. В качестве технологической платформы для реализации цифровых СнК могут использоваться программируемые логические интегральные схемы, позволяющие оперативно модифицировать систему. В 2011 г. одна из крупнейших компаний производителей ПЛИС фирма ALTERA в сотрудничестве с известными ARM и Intel назвала переход от специализированных заказных ИС к СнК на базе ПЛИС новым этапом развития микроэлектронной техники. При этом одним из ключевых вопросов стала задача повышения эффективности использования ресурсов и обеспечения требуемого быстродействия.

Научно-исследовательские работы в области БИС/СБИС, программируемой логики и систем на кристалле принадлежат как отечественным (Немудров В.Г., Грушвицкий Р.И., Мурсаев А.Х., Бухтеев A.B., Угрюмов Е.П., Адамов Ю.Ф., Палташев Т.Т., Шалыто А. А., Шейнин Ю.Е. и др.), так и зарубежным (S.S. Bhattachaiyya, S. Saha, Е. Lee, W. Wolf, S. J. Wei и др.) ученым.

Одна из главнейших проблем проектирования - задача разложения на аппаратную и программную части существующих алгоритмов цифровой обработки. Специфичность, многогранность и отсутствие единых подходов к решению проблемы декомпозиции делают эту задачу весьма актуальной.

Представленная диссертационная работа является самостоятельно выполненной, законченной научно-исследовательской работой, посвященной разработке и исследованию алгоритмов оптимизации обработки информации в системах на кристалле, позволяющих реализовывать быстродействующие системы, отличающиеся минимальными габаритами.

Объектом исследования диссертационной работы являются программные и аппаратные блоки двумерного вейвлет-преобразования, реализованные в виде СБИС класса «система на кристалле».

Предметом исследования являются методы, алгоритмы и методики сопряженного проектирования аппаратных и программных средств как задачи линейного программирования в гетерогенных телевизионно-компьютерных системах на кристалле.

Цель работы и задачи исследования

Целью диссертации является повышение качества проектирования средств вычислительной техники в части разработки методов, алгоритмов и сложно-функциональных блоков двумерного вейвлет преобразования с учетом их декомпозиции на аппаратную и программную составляющие в условиях массогабаритных и коммутационных ограничений.

Достижение поставленной цели обеспечивается постановкой и решением в диссертационной работе следующих задач:

1. Исследование и разработка методики сопряженного синтеза аппаратного и программного обеспечения сложно-функциональных блоков вейвлет-кодирования изображений для устройств класса «система на кристалле».

2. Исследование и разработка эффективных методов использования и расширения функциональных возможностей подсистемы памяти при реализации устройств вейвлет кодирования изображений.

3. Совершенствование механизмов и алгоритмов многоуровневой обработки прерываний в системе на кристалле.

4. Разработка методики распределения программного кода в многоуровневой подсистеме памяти.

5. Экспериментальная проверка разработанных методов, алгоритмов и методик в практике проектирования устройств обработки изображений для устройств класса «система на кристалле».

Методы исследования

На пути решения поставленных задач имеются определенные трудности, которые разделяются на три группы в соответствии с методами их преодоления:

1. Теоретические методы, в первую очередь аппарата теории графов, теории вычислительных устройств, NP-полных задач и задач линейного программирования, а также генерация специальных способов обработки информации, опирающихся на свободу проектировщика в выборе не только процедур и параметров обработки сигналов, но и в выборе структуры системы;

2. Методы разработки, основанные на широком применении программ (Verilog HDL, VHDL, С) и систем автоматизированного проектирования (С^ПР), призванные сократить время создания системы на кристалле;

3. Экспериментальные методы, призванные подтвердить полезность и реализуемость решений, полученных методами, относящимися к первым двум группам.

Основные положения, выносимые на защиту

1. Математическая модель распределения аппаратно-программных частей системы на кристалле, основанная на выделении вариантов реализации на следующих ступенях представления: алгоритм, преобразование, ресурсы.

2. Разработанная методика распределения проектирования на аппаратную и программную составляющие, базирующаяся на применении модифицированной задачи о ранце с мультивыбором (Multiple-choice Knapsack Problem).

3. Разработанная методика использования последовательной флеш памяти в качестве памяти программ для встроенного микропроцессора.

4. Разработанный алгоритм, позволяющий уменьшить время реакции на прерывание для встроенного микропроцессора при программном поиске возникшего прерывания.

5. Рациональное распределение программного кода между различными типами памяти в составе системы на кристалле.

Научная новизна диссертационной работы состоит в том, что:

1. Применение разработанной методики сопряженного синтеза аппаратного и программного обеспечения для двумерного вейвлет кодера изображения позволило получить новый научный результат - зависимости занимаемых ресурсов ПЛИС для различных сочетаний программной и аппаратной обработки от времени преобразования.

2. Показано, что сложность при декомпозиции системы на аппаратную и программную составляющие определяется количеством возможных вариантов реализаций отдельных задач.

3. Предложен и разработан сложно-функциональный блок управления последовательной памятью, позволяющий расширить ее функции в системе на кристалле.

4. Предложен модифицированный алгоритм, позволяющий на основе программного поиска источника прерывания, сократить время реакции системы на кристалле на обслуживание запросов прерывания.

Практическая ценность диссертации состоит в том, что:

1. Методика совместного аппаратно-программного разделения при проектировании в системах на кристалле позволяет оптимизировать используемые ресурсы и распределить их в соответствии с требуемыми ограничениями.

2. Использование последовательной флеш памяти в качестве памяти программ позволяет сократить коммуникационные и энергетические издержки, вызванные использованием дополнительной внешней памяти.

3. Выбор внутреннего или внешнего контроллера обработки прерываний, а также процедуры повышения его быстродействия позволяет в условиях ограниченности ресурсов систем на кристалле делать выбор между аппаратной и программной реализацией.

4. Отсутствие дополнительной внешней памяти позволяет минимизировать массогабаритные показатели системы обработки изображения на базе специализированного кодера изображения.

Практическая значимость диссертации:

1. Методика совместного аппаратно-программного разделения при проектировании в системах на кристалле позволяет оптимизировать используемые ресурсы и распределить их в соответствии с требуемыми ограничениями.

2. Использование последовательной флеш памяти в качестве памяти программ позволяет сократить возможные энергозатраты и габариты на дополнительную внешнюю память.

3. Выбор внутреннего или внешнего контроллера обработки прерываний, а также процедуры повышения его быстродействия позволяет в условиях ограниченности ресурсов систем на кристалле делать выбор между аппаратной и программной реализацией.

4. Отсутствие дополнительной внешней памяти позволяет минимизировать массогабаритные показатели системы обработки изображения на базе кодека ADV 202.

Реализация и внедрение результатов исследования.

Полученные результаты используются в деятельности ООО "Дальневосточный специализированный центр безопасности информации "МАСКОМ" (г. Хабаровск) при разработке и проектировании аудиовизуальных систем обеспечения безопасности.

Результаты работы используются в ХИИК ФГОБУ ВПО СибГУТИ (г. Хабаровск) при изучении дисциплин «Цифровые устройства и спецпроцессоры» и

«Цифровая обработка сигналов», в курсовом и дипломном проектировании студентов факультета «Инфокоммуникации и системы связи».

Результаты работы использовались в ОКР «Оптрон-1», выполненной в 2011-2013 гг. ОАО «Научно-исследовательский институт телевидения» по заказу Минпромторга России.

Апробация работы.

Основные положения и отдельные результаты работы докладывались и обсуждались на:

- Межрегиональной научно-практической конференции «Информационные и коммуникационные технологии в образовании и научной деятельности», Хабаровск, 2008 г.;

- Конференции-конкурсе научных работ молодых ученых ТОГУ, Хабаровск, 2009 г.;

- Одиннадцатом краевом конкурсе-конференции молодых ученых и аспирантов, Хабаровск, 2009 г.;

- Всероссийской конференции с элементами научной школы для молодежи «Проведение научных исследований в области обработки, хранения, передачи и защиты информации», Ульяновск, 2009 г.;

- 8-я Международной конференции "Телевидение: передача и обработка изображений", Санкт-Петербург, 2011 г.;

а также на научно-технических семинарах кафедры «Вычислительная техника» ТОГУ.

Публикации.

Основные результаты диссертационной работы опубликованы в 8 научных работах, в том числе в 3 статьях в рецензируемых научных изданиях, входящих в Перечень ВАК. Получены 2 свидетельства о государственной регистрации программы для ЭВМ

Структура диссертации.

Диссертация общим объемом 150 с. состоит из введения, четырех глав и заключения, содержит 137 с. основного текста, перечень используемой литературы из 77 наименования на 9 с.

Содержание работы.

В первой главе проведен анализ проблемы сопряженного проектирования аппаратного и программного обеспечения в системах на кристалле. Приведены подходы к аппаратно-программному разделению задач, формализация модели потока совместного проектирования аппаратного и программного обеспечения.

Во второй главе проведена разработка методики разбиения системы на аппаратные и программные части на примере дискретного вейвлет преобразования. Показано, что одним из важных аспектов проектирования на системном уровне является разнообразие вариантов реализации, доступных для каждого узла в спецификации уровня задачи. При этом каждый узел может быть реализован несколькими способами в аппаратных и в программных отображениях.

В третьей главе проведен анализ многоуровневой организации памяти в системах на кристалле, приведены результаты сравнительного анализа различных видов памяти и доступа к ней для рационального выбора вариантов хранения данных и кода программы. Описана разработка сложно-функционального блока контроллера доступа к последовательной флеш памяти для систем на кристалле, работа которых основана на шинной архитектуре Altera Avalon. С практической точки зрения, использование разработанного контроллера предпочтительно в случаях работы кода, некритичного ко времени выполнения.

Четвертая глава посвящена практической реализации проектов на базе СБИС класса система на кристалле. Проведено исследование времени реакции на прерывание в СнК с soft-процессором NIOSII. Определены возможности soft-процессора NIOSII в процессе обработки прерываний в зависимости от его конфигурации, проведена оценка занимаемых ресурсов ПЛИС, а также

разработаны алгоритмы повышения производительности. Приведена структура системы видеообработки на базе ПЛИС фирмы Altera Cyclonelll EP3C16F484C6N и кодека фирмы Analog Devices ADV202 и использование интерфейса HDMI на базе HDMI/DVI Transmitters AD9889B фирмы Analog Devices

В заключении приводятся основные результаты диссертационной работы.

1 ПРОБЛЕМА СОВМЕСТНОГО ПРОЕКТИРОВАНИЯ АППАРАТНОГО И ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ В СИСТЕМАХ НА КРИСТАЛЛЕ И ПУТИ

ЕЕ РЕШЕНИЯ

1.1 Этапы системного уровня проектирования СБИС класса "система на кристалле".

Эволюция вычислительных структур существенно зависит от развития производственных технологий. Можно выделить следующие основные направления развития технологий: увеличение степени интеграции, увеличение размеров кристаллов и количества слоев металлизации, увеличение количества выводов микросхем, увеличение быстродействия элементов и скорости распространения сигнала в линиях связи, снижение потребляемой и рассеиваемой мощности [1]. В соответствии с этим происходит увеличение количества функциональной логики и объема памяти на кристалле. Улучшение характеристик схем по этим направлениям происходит с различной скоростью, которая определяется особенностями совершенствования процесса литографии.

Современные технологии изготовления полупроводников позволяют интегрировать более чем миллиард транзисторов на одном кристалле. При этом сложность системы резко возрастает. По более точным аналитическим прогнозам (Рисунок 1.1), при переходе на технологии 0,18 мкм и менее применение существующей методологии проектирования СБИС влечет увеличение трудоемкости проектов до 250 человеко-лет, что совершенно неприемлемо. Кроме того, растет доля затрат на разработку программного обеспечения. В целом, если вести разработку программного обеспечения и СБИС раздельно, то увеличивается вероятность выявления ошибок на этапах тестирования или эксплуатации всего комплекса аппаратуры, что приводит к дополнительным трудо- и времязатратам.

Минимальный технологический розмеэ

Рисунок 1.1- Зависимость стоимости разработки СБИС от технологии

изготовления

Выходом из сложившейся ситуации стало изменение методологии проектирования СБИС, и наиболее перспективным направлением представляется методология проектирования СБИС типа "система на кристалле" (СнК) [2].

Научно-исследовательские работы в области БИС/СБИС, программируемой логики и систем на кристалле принадлежат как отечественным (Немудров В.Г., Грушвицкий Р.И., Мурсаев А.Х., Бухтеев A.B., Угрюмов Е.П., Адамов Ю.Ф., Палташев Т.Т., Шейнин Ю.Е. и др.), так и зарубежным (S.S. Bhattacharyya, S. Saha, Е. Lee, W. Wolf, S. J. Wei и др.) ученым.

В общем виде СнК представляет собой сложно-функциональную, высоко-интегрированную схему, в состав могут входить различные компоненты (Рисунок 1.2):

ßhCI няя

ИОМЯТа

CPU Помртъ Контроллер

вводо/аыводо

t 4 1 [ (ом-ролькой пию 1

£

{ ♦ I t 1

Контроллер памяти Вид ее декодер DSP Контоопгер иины

п еоифсоииняя t JJH40 t

i Í А 1 1 4 I

Тсймер Об алий интерфейс UART Контроллер мреоыааний

3

Рисунок 1.2 - Пример структуры системы на кристалле

- микропроцессор (или микропроцессоры) и подсистема памяти (статической и/или динамической). Тип процессора может варьироваться от простейшего 8-разрядного до высокоскоростного 64-разрядного RISC-процессора;

- шины - центральная (высокоскоростная) и периферийная - для обмена данными между блоками;

- контроллер внешней памяти (например, DRAM, SRAM или Flash);

- контроллер ввода/вывода информации: PCI, Ethernet, USB и т.п.;

- таймер и контроллер прерываний;

- общий интерфейс ввода/вывода;

- интерфейс UART (universal asynchronous receiver/transmitter) и т.п.

Ключевой особенностью является то, что любой блок в этой структуре

может быть представлен в виде кода на языке описания аппаратуры (HDL -Hardware Description Language). Готовые, отлаженные блоки формируют некоторую библиотеку IP-блоков (блоков интеллектуальной собственности) позволяющих в целом сократить время разработки. Единственным недостатком является то, что IP-блоки различных производителей СнК (Altera, Xilinx и пр.) ориентированы на собственную внутреннюю архитектуру и чаще всего несовместимы.

Естественно, что проектирование таких систем требует не только знания принципов работы отдельных блоков, но и диктует особые требования к самим принципам проектирования. Если на ранних стадиях при проектировании использовалась модель ниспадающего ("waterfall") типа, то в настоящее время почти все программные продукты разработки ориентированы на спиралевидную модель. Таким образом, происходит переход от последовательного поэтапного проектирования до параллельного выполнения, как правило, по четырем направлениям: разработка программного обеспечения, разработка кода на уровне регистровых передач (RTL), логический и физический синтез (Рисунок 1.3). При этом существенно сокращается время проектирования, появляется возможность

более гибко производить оценку и модификацию отдельных блоков, а также производить быстрое прототипирование системы [3].

Фактически весь процесс разработки СнК делится на четыре этапа: разработка архитектуры СнК на системном уровне, выбор имеющихся 1Р-блоков из базы данных (внутри фирмы, других фирм или поставщиков 1Р-блоков), проектирование оставшихся блоков и интеграция всех блоков на кристалле.

Системное проектирований и попификгщке

t t t 1 i t 1

Типология Cnvtccx цнней. RT1. ПО

Площадь, ДА Гонтовая Спецификация /—ч Спецификация

мощность. W честто, W но разработку W не рпзраоотку

clock 1; ее I/O limine 6до.<ак ПО

i » 1 ♦ t t ♦

Прр.дЕТфитнлмюе размещение Спецификация временных огрс.-жчекий л,а W Розрабока бпокс:в А-А \-v Разработка и т{:::т.'ропонис; iipoiCHHC ПО

Кооректирозки розмещени? V-v' Синтез блоков, размещение Ч-/ Верификации ОПОКСВ Д-А ч-v Рйзрабока прикг.одного ПО

Кооректоозк a А—\ Сознание HDL /—Л Тесг^эсестие

размещение W т~/ перхнего урср.чя v-v приходного Г1С

Пробкое рпзл-ещкнче Л-К ч -V Синтез верхнего уровни д-\ W Верификация HDL sepx-tero уровня АЛ W Tficri-рс.нпние прикпеаншо ГЮ

I 1 11

Физический синтез Окончательное размещении п траехштнхл

Рисунок 1.3 - Спиралевидная модель процесса проектирования

Начальный этап проектирования на системном уровне заключается в рекурсивной разработке, верификации и уточнении набора спецификаций до такой степени детализации, чтобы на их основе можно было начать создавать ЯТЬ-код. Быстрая разработка четких, полных и последовательных спецификаций - сложная, трудоемкая и ответственная задача.

Спецификации описывают поведение системы, точнее - как управлять системой, чтобы добиться от нее нужного поведения. В этом смысле понятие спецификации в значительной мере связано с понятием интерфейса. Функциональная спецификация описывает интерфейс системы или блока так, как его видит внешний пользователь. Она содержит информацию о контактах, шинах, регистрах и о том, как с ними обращаться. Архитектурная спецификация

описывает взаимодействия между частями блока и поведение на системном уровне.

Спецификации разрабатываются как для аппаратной, так и для программной части проекта. Для аппаратной части спецификации должны включать список выполняемых функций, внешний интерфейс к другим блокам (контакты, шины, протоколы), временные параметры, быстродействие, особенности физического уровня (площадь кристалла, потребляемая мощность). Для программной части в спецификации необходимо описать выполняемые функции, временные параметры, быстродействие, интерфейс к аппаратной части, структуру и ядро.

Если функции проектируемого устройства определены, то условно можно разбить весь процесс проектирования на следующие этапы:

1. Анализ схемотехнической реализации;

2. Составление функциональной схемы разрабатываемого устройства;

3. Создание функционально-математической модели разрабатываемого устройства, программного обеспечения для тестирования данной модели и проведение моделирования;

4. Проведение анализа моделирования разработанной функционально-математической модели и принятие решения о ее реализации;

5. Разделение устройства на аппаратную и программную части;

6. Выбор программного обеспечения для разработки и моделирования системы;

7. Разработка аппаратной части и ее моделирование;

8. Разработка программной части аппаратно-программной системы;

9. Моделирование аппаратно-программной системы в целом;

10. Анализ полученных результатов и принятие решения о производстве разработанного устройства.

Рисунок 1.4 - Этапы системного проектирования СнК

Процесс проектирования СнК на системном уровне (Рисунок 1.4) начинается с формулирования целей и задач, выполняемых СнК. На начальном этапе следует определить основные эксплуатационно-технические свойства: требуемое быстродействие, допустимую потребляемую мощность и т.п. На основании этих свойств создается системная спецификация, которая может выступать частью технического задания на разработку системы. Как правило, этот этап не требует средств САПР.

Затем создается высокоуровневая поведенческая модель всей разрабатываемой системы. Она, как правило, строится в виде блок-схемы. Для верификации разработанной поведенческой модели создается тестовое окружение системы, которое включает в себя генераторы входных сигналов, тестовые последовательности и блоки отображения выходной информации. Тестовое окружение должно максимально полно проверять работу системы. Впоследствии на основе этого тестового окружения будут разрабатываться тестовые векторы для верификации проекта на нижних уровнях проектирования и для тестирования опытных образцов.

Поскольку СнК включает одно или несколько программируемых процессорных ядер, на следующем этапе разработчик должен принять решение о том, какие части поведенческой модели будут впоследствии реализованы на аппаратном уровне, а какие - на программном в виде встроенного в СБИС программного обеспечения. Также необходимо определить, каким образом будут взаимодействовать программная и аппаратная части, т.е. следует разработать интерфейс между ними. Здесь же определяется общая архитектура СнК: тип процессора, тип памяти и ее объем, аппаратные блоки, интерфейс между аппаратной и программной частью, тип используемой шины, описание программной части и т.п. В итоге формируется набор спецификаций на разработку программного обеспечения и на разработку каждого аппаратно реализуемого блока. Потребность в моделировании и анализе сложных устройств на системном уровне тем выше, чем сложнее эти устройства. На этом этапе должна быть решена задача аппаратно-программной декомпозиции. Также здесь необходимо создать поведенческую модель и проанализировать ее на предмет соблюдения требований функционирования, производительности и нефункциональных атрибутов планируемой системы. Наконец, должны быть идентифицированы все используемые блоки интеллектуальной собственности [4], как разрабатываемые заново, так и используемые повторно.

Завершающим этапом является аппаратно-программная верификация, являющаяся одной из трудоемких и ресурсоёмких задач. Чтобы верификация была эффективной необходимо использовать результаты по разработке тестового окружения, полученные на предыдущих этапах («золотой прототип»). Кроме этого важно, чтобы средства верификации были с поддержкой нескольких языков описания и с поддержкой смешанного моделирования.

В настоящее время существует широкий спектр средств программно-аппаратной верификации: от чисто программных симуляторов, до эмуляторов и акселераторов аппаратной части, а также прототипов на ПЛИС (ИРвА). В последнее время все чаще используют средства верификации на основе формальной верификации (без моделирования), например, контроль свойств

моделей. Существует целый ряд подходов для выполнения совместной верификации аппаратного и программного обеспечения одновременно. Одним из подходов к выполнению аппаратно-программной верификации является создание смешанного прототипа, где вновь разрабатываемые блоки могут либо эмулироваться, либо моделироваться на рабочей станции, а программное обеспечение исполняется на реальном процессоре, установленном на печатную плату, которая через специальный интерфейс подключена к рабочей станции. Дополнительно к этому, IP-блоки, которые уже были реализованы в виде электронных компонентов, также могут устанавливаться на печатную плату вместе с процессором [2,5].

1.2 Системная сложность решения декомпозиции задачи на аппаратную и программную составляющие.

Продвижения в компьютерном проектировании, разработке СБИС и уменьшение технологических размеров кристаллов привело к взрывному росту и интересу в разработке встраиваемых систем (embedded systems). В реальной жизни мы сталкиваемся с большим количеством таких систем, выполняющих множество сложных задач. Эти задачи могут быть выполнены на программной или аппаратной платформе, каждая из которых имеет различную денежную стоимость. Например, кодек изображения стандарта JPEG может быть выполнен на универсальном процессоре (программное обеспечение) или на специализированной интегральной схеме (аппаратное обеспечение). Кроме того, существует большое количество разнообразных интерфейсов для передачи данных (UART, USB, Ethernet, и т.д.), каждый из которых имеет временную задержку, физические размеры и потребляемую мощность. Таким образом, перед разработчиком ставится задача выбора решения более выгодного как с технической, так и с экономической точки зрения, которая обычно определяется моделированием или данными, полученными из предыдущих проектов.

Похожие диссертационные работы по специальности «Элементы и устройства вычислительной техники и систем управления», 05.13.05 шифр ВАК

Список литературы диссертационного исследования кандидат наук Зинкевич, Алексей Владимирович, 2013 год

СПИСОК ИСПОЛЬЗОВАННЫХ источников

1. International Technology Roadmap for Semiconductors [Электронный ресурс] / ITRS, 2002. Режим доступа: http://www.itrs.net/Links/2002Update/2002Update_Litho.pdf. -Загл. с экрана.

2. Немудров, В. Системы-на-кристалле. Проектирование и развитие [Текст] / В. Немудров, Г. Мартин. - М.: Техносфера. - 2004. - 216 с.

3. Clement, В. Fast Prototyping: A System Design Flow Applied to a Complex System-On-Chip Multiprocessor Design [Text] / B. Clement, R. Hersemeule // 36th Annual Conference on Design Automation. - 1999. - P. 420 -424.

4. Герасимов, И.В. Основания технологии комплементарного проектирования наукоёмких изделий [Текст] : монография / И.В. Герасимов, С.А. Кузьмин, Л.Н. Лозовой, А.В. Никитин. - СПб.: СПбГЭТУ «ЛЭТИ», 2010. - 206 с.

5. Герасимов, И. В. Сложно-функциональные блоки смешанных систем на кристалле: автоматизация функционального проектирования [Текст] монография / И.В. Герасимов, Н.М. Сафьянников, Д.О. Якимовский. - СПб. : Элмор, 2012. - 236 с. : ил.

6. Зинкевич, А.В. Микроконтроллеры AVR фирмы Atmel [Электронный ресурс]. - Мультимедийное обучающее электронное издание. / В.В. Березин, А.В Зинкевич // Хабаровск: ТОГУ, 2007. - 1 электрон, опт. диск (CD-ROM). - Систем, требования: Pentium 166, 100 Mhz; 16 Mb; Win XP; видеосистема SVGA; CD-ROM. - Загл. с этикетки диска.

7. Gupta R. Hardware-software Co-synthesis for Digital Systems [Text] / R. Gupta, G. Micheli // IEEE Design and Test. - 1993. - Vol. 10. - No. 3. - P. 2941.

8. Wolf W.H. Hardware-Software Codesign of Embedded Systems [Text] / W.H. Wolf// Proceedings of the IEEE. - 1994. - No.(82) 7 - P. 967-989.

9. Prakash, S. SOS: synthesis of application-specific heterogeneous multiprocessor system [Text] / S. Prakash, A.C. Parker // Journal of Parallel and Distributed Computing. - 1992. - Vol. 16. - P. 338-351.

10. Ernst, R. Hardware-software co-synthesis for microcontrollers [Text] / R. Ernst, J. Henkel, T. Benner // IEEE Design&Test of Computers. - 1993. - Vol. 10. - No. 4. - P. 64-75.

11. Hou, J. Process partitioning for distributed embedded systems [Text] / J. Hou, W.Wolf // Proc. Int. Wkshp. Hardware/Software Codesign. - 1996. - P. 7076.

12. Yen, T.-Y. Performance estimation for real-time distributed embedded systems [Text] / T.-Y. Yen, W. Wolf// Proc. Int. Conf. Computer Design. - 1995. -P. 64-69.

13. Yen, T.-Y. Communication synthesis for distributed embedded systems [Text] / T.-Y. Yen, W. Wolf // Proc. Int. Conf. Computer-Aided Design. -1995.-P. 288-294.

14. Srinivasan, S. Hardware-software co-synthesis of fault-tolerant realtime distributed embedded systems [Text] / S. Srinivasan, N.K. Jha // Proc. European Design Automation Conf. - 1995. - P. 334-339.

15. Adams, D.A. A Computation Model with Data Flow Sequencing [Text] / PhD thesis / D.A. Adams // Stanford University. - 1968.

16. Bhattacharyya, S.S. Software synthesis and code generation for signal processing systems [Text] /S.S. Bhattacharyya, R. Leupers, P. Marwedel // IEEE Transactions on Circuits and Systems II: Analog and Digital Signal Processing. -2000. - Vol. 47. - No. 9. - P. 849-875.

17. Lee, E.A. Static scheduling of synchronous dataflow programs for digital signal processing [Text] / E.A. Lee, D.G. Messerschmitt // IEEE Transactions on Computers. - 1987. - Vol. 36. - No. 2. - P. 24-35.

18. Bilsen, G. Cyclo-Static dataflow [Text] / G. Bilsen, M. Engels, R. Lauwereins, J. Peperstraete // IEEE Transactions on Signal Processing. - 1996. -Vol. 44.-No. 2.-P. 397-408.

19. Sankalita, S. Design methodology for embedded computer vision systems [Text] / S. Sankalita, Shuvra S. Bhattacharyya // In: Embedded Computer Vision. - 2009. - P. 27-47.

20. Panda, P.R. Data and memory optimization techniques for embedded systems [Text] / P.R. Panda, F. Catthoor, N.D. Dutt, K. Danckaert // ACM Trans, on Design Automaton of Electronic Systems. - 2001. - Vol. 6. - No. 2. - P. 149 -206.

21. Jerraya, A.A. Hardware/Software Interface Codesign for Embedded Systems [Text] / A.A. Jerraya, W. Wolf// Computer. - 2005. - Vol. 38. - No. 2. -P. 63 - 69.

22. Edwards, S. Design of Embedded Systems: Formal Models, Validation, and Synthesis [Text] / S. Edwards, L. Lavagno, E. Lee // Proceedings of the IEEE. - 1997. - Vol. 85. - No. 3. - P. 366-390.

23. Lee, H.G. Design space exploration and prototyping [Text] / H.G. Lee, U.Y. Ogras, R. Marculescu, N. Chang // Proc. of Design Automation Conference. - 2006. - P. 137-142.

24. Bilsen, G. Static scheduling of multi-rate and cyclostatic DSP applications [Text] / G. Bilsen, M. Engels, R. Lauwereins, J. Peperstraete // Workshop on VLSI Signal Processing. - 1994. - P. 137 - 146.

25. Bhattacharya, B. Parameterized dataflow modeling of DSP systems [Text] / B. Bhattacharya, S.S. Bhattacharyya // IEEE Transactions on Signal Processing. - 2001. - Vol. 49. - No. 10. - P. 2408-2421.

26. Ko, D. Modeling of block-based DSP systems [Text] / D. Ko, S.S. Bhattacharyya // Journal of VLSI Signal Processing Systems for Signal, Image, and Video Technology. - 2005. - Vol. 40. - No. 3. - P. 289-299.

27. Murthy, P.K. Multidimensional synchronous dataflow [Text] / P.K. Murthy, E.A. Lee // IEEE Transactions on Signal Processing. - 2002. - Vol. 50. -No. 8. - P. 2064-2079.

28. Keinert, J. Modeling and Analysis of Windowed Synchronous Algorithms [Text] / J. Keinert, C. Haubelt, J. Teich // Proc. of the Intl. Conf. on Acoustics, Speech, and Signal Processing. - 2006. - P. 892-895

29. Franke, B. Array recovery and high-level transformations for DSP applications [Text] / B. Franke, M.O. Boyle // ACM TECS. - 2003. - Vol. 2. - P. 132-162.

30. Kalavade, A. The extended partitioning problem: hardware/software mapping and implementation-bin selection [Text] / A. Kalavade, E. Lee // Intl. Workshop on Rapid System Prototyping. - 1995. - P. 125-163.

31. Auguin, M. Partitioning conditional data flow graphs for embedded system design [Text] / M. Auguin, L. Bianco, L. Capeila, E. Gresset // IEEE Intl. Conf. on Application-Specific Systems, Architectures, and Processors. - 2000. - P. 339-348.

32. Bhattacharyya, S.S. Software Synthesis from Dataflow Graphs [Text] / S.S. Bhattacharyya, P.K. Murthy, E.A. Lee // Kluwer Academic Publishers, Norwell Ma. - 1996.

33. Parks, T.M. A comparison of synchronous and cyclo-static dataflow [Text] / T.M. Parks, J.L. Pino, E.A. Lee // Proc. of IEEE Asilomar Conf. on Signals, Systems, and Computers. - 1995.

34. Bhattacharya B. Quasi-static scheduling of reconfigurable dataflow graphs for DSP systems [Text] / B. Bhattacharya, S.S. Bhattacharyya // Proc. of the International Workshop on Rapid System Prototyping. - 2000. - P. 84-89.

35. Lee, C. Static global scheduling for optimal computer vision and image processing operations on distributed-memory multiprocessors [Text] / C. Lee, Y. Wang, T. Yang // Computer Analysis of Images and Patterns. - 1994. - P. 920-925.

36. Ziegenbein, D. Combining multiple models of computation for scheduling and allocation [Text] / D. Ziegenbein, R. Ernest, K. Richter, J. Teich, L. Thiele // Proc. of Codes/CASHE. 1998. - P. 9-13.

37. Auguin, M. CODEF: a system level design space exploration [Text] / M. Auguin, L. Capella, F. Cuesta, E. Gresset // Proc. of IEEE International Conference on Acoustics, Speech, and Signal Processing. - 2001. - Vol. 2. - P. 1145-1148.

38. Ho, W.H. High Level Data Flow Programming for Digital Signal Processing [Text] / W.H. Ho, E.A. Lee, D.G. Messerschmitt // Proc. of the International Workshop on VLSI Signal Processing. - 1988.

39. Neuendorffer, S. Automatic Specialization of Actor-Oriented Models in Ptolemy II [Text] / S. Neuendorffer // Department of Electrical Engineering and Computer Sciences. - 2002. - № UCB/ERL M02/41.

40. Oh, H. Efficient code synthesis from extended dataflow graphs for multimedia applications [Text] / H. Oh, S. Ha // Proc. of 39th Design Automation Conference. - 2002. - P. 275-280.

41. Oh, H. Fractional rate dataflow model for efficient code synthesis [Text] / H. Oh, S. Ha // Jnl. of VLSI Signal Processing Systems for Signal, Image, and Video Technology. 2004. Vol. 37. - P. 41-51.

42. Hsu, C. Porting DSP applications across design tools using the dataflow interchange format [Text] / C. Hsu, S.S. Bhattacharyya // Proc. of the Intl.Wkshp on Rapid System Prototyping. - 2005. - P. 40-46.

43. Березин, B.B. Твердотельная революция в телевидении: Телевизионные системы на основе приборов с зарядовой связью, систем на кристалле и видеосистем на кристалле [Текст] / В.В. Березин, А.А. Умбиталиев. - М.: Радио и связь. - 2006. - 316 с.

44. Shoukourian, S. SoC yield optimization via an embedded-memory test and repair infrastructure [Text] / S. Shoukourian, V. Vardanian, Y. Zorian // IEEE Des. Test Comput. - 2004. - Vol. 21. - No. 3. - P. 200 - 207.

45. Холинин, И.В. Разработка встроенного ядра на ПЛИС [Текст] / И.В. Холинин // Электронные компоненты. - 2012. - № 3. - С. 32-36.

46. Acharya, Т. JPEG2000 standard for image compression: concepts, algorithms and VLSI architectures [Text] / T. Acharya, P. Tsai. - John Wiley & Sons, Inc. - 2005. - 296 p.

47. Jpeg 2000 Core coding system (Part 1) [Электронный ресурс]. Режим доступа: http://www.jpeg.org/jpeg2000/j2kpartl.html. -Загл. с экрана.

48. Mallat, S. A theory for multiresolution signal decomposition: The Wavelet representation [Text] / S. Mallat // IEEE Trans. Pattern Analysis And Machine Intelligence. - 1989. - Vol. 11. - No. 7. - P. 674-693.

49. Тропченко, А.Ю. Методы сжатия изображений, аудиосигналов и видео [Текст]: Учебное пособие / А.Ю. Тропченко, А.А. Тропченко. - СПб: СПбГУ ИТМО. - 2009. - 108 с.

50. Свидетельство о государственной регистрации программы для ЭВМ № 2009612327. Аппаратно - программное обеспечение вейвлет -кодирования ТВ - изображения // В.В. Березин, А.В. Зинкевич, Ш.С. Фахми; заявл. 18.03.2009; опубл. 07.05.2009.

51. Зинкевич, А.В. Метод распределения задач на аппаратные и программные ресурсы [Текст] / В.В. Березин, Ш.С. Фахми, А.В. Зинкевич // Вопросы радиоэлектроники. Сер., Техника телевидения. - 2011. - № 2. - С. 4350.

52. Левин, М.Ш. Эвристический алгоритм для многокритериальной блочной задачи о рюкзаке [Текст] / М.Ш. Левин, А.В. Сафонов // Искусственный интеллект и принятие решений. - 2009. - № 4. - С. 53-64.

53. Cyclone III Device Handbook [Электронный ресурс] / Altera Corporation, 2009. Режим доступа: http://www.altera.com/literature/hb/cyc3/cyclone3_handbook.pdf. - Загл. с экрана.

54. Li, Y-T.S. Performance analysis of real-time embedded software [Text] / Y-T.S. Li, S. Malik. - Princeton University: Kluwer Academic Publishers. - 1999.

55. Зинкевич, А.В. Метод распределения задач на аппаратные и программные ресурсы на примере дискретного вейвлет преобразования [Текст] / В.В. Березин, А.В. Зинкевич // Телевидение: передача и обработка изображений. Тез. докл. Международной конференции. Санкт-Петербург, 2011.

56. Гэри М. Вычислительные машины и трудноразрешимые задачи [Текст] / М. Гэри, Д. Джонсон. - М.: Мир. - 1982. - 416 с.

57. Dasgupta, S. Algorithms [Text] / S. Dasgupta, С. Papadimitriou, U. Vazirani. - McGraw-Hill Higher Education. - 2006. - 336 p.

58. Dave, B. COSYN:Hardware-software cosynthesis of embedded systems [Text] / B. Dave, G. Lakshminarayana, N. K. Jha. // Proc. 34th DAC. -1997. - P. 703-708.

59. Chatha, K. An Iterative Algorithm for Hardware-Software Partitioning, Hardware Design Space Exploration and Scheduling [Text] / K. Chatha, R. Vemuri // Design Automation for Embedded Systems. Kluwer Academic Publishers - 2000. vol. 5,- P. 281-293.

60. Зинкевич, А.В. Оптимальное распределение аппаратно-программных ресурсов при проектировании систем на кристалле [Текст] / В.В. Березин, А.В. Зинкевич // Электронное научное издание «Ученые заметки ТОГУ». - 2011. - № 2. - С. 21 - 25.

61. Фахми, Ш. С. Функционал взаимообмена сложности и точности систем кодирования непрерывного сигнала [Текст] / Ш.С. Фахми, А.К. Цыцулин, Е.И. Колесников, С.В. Очкур // Информационные технологии. -2011. -№ 4. - С.71-77.

62. Pasricha, S. On-chip communication architectures: system on chip interconnect. [Text] / S. Pasricha, N. Dutt. - Morgan Kaufinann Publishers. - 2008. -536 p.

63. Avalon Interface Specification [Электронный ресурс] / Altera Corporation, 2012. Режим доступа: http://www.altera.com/literature/manual/ mnl_avalon_spec.pdf. - Загл. с экрана.

64. M5M5256CP-55LL [Электронный ресурс]. Режим доступа: http://pdfl.alldatasheet.com/datasheet-pdf / view / 1174 / MITSUBISHI / М5М5256СР - 55LL.html. - Загл. с экрана.

65. Serial Configuration Devices [Электронный ресурс] / Altera Corporation, 2010. Режим доступа: http://www.altera.com/literature/hb/cfg/ cyc_c51014.pdf. - Загл. с экрана.

66. Зинкевич, А.В. Эффективные способы использования последовательной памяти в системах на кристалле [Текст] / В.В. Березин, А.В. Зинкевич, Ш.С. Фахми // Вопросы радиоэлектроники. Сер., Техника телевидения. - 2013. - № 1. - С. 94-104.

67. Грушвицкий, Р. И. Проектирование систем на микросхемах с программируемой структурой [Текст] / Р.И. Грушвицкий, А.Х. Мурсаев, Е.П. Угрюмов. - 2-е изд. -СПб: БХВ- Петербург. - 2006. - 736 с.

68. Nios II Processor Reference Handbook [Электронный ресурс] / Altera Corporation, 2011. Режим доступа: http://www.altera.com/literature/hb/ nios2/n2cpu_nii5vl.pdf. - Загл. с экрана.

69. Nios II Software Developer's Handbook [Электронный ресурс] / Altera Corporation, 2010. Режим доступа: http://www.altera.com/literature/hb/ nios2/n2sw_nii5v2.pdf. - Загл. с экрана.

70. Зинкевич, А.В. Исследование времени реакции на прерывание системы на кристалле с soft-процессором NIOSII [Текст] / В.В. Березин, А.В. Зинкевич // Вестник ТОГУ. - 2010. № 2 - С. 67-74.

71. Vectored Interrupt Controller Core [Электронный ресурс] / Altera Corporation, 2012. Режим доступа: http://www.altera.com/literature/ an/AN595.pdf. - Загл. с экрана.

72. JPEG2000 Video Codec ADV202 [Электронный ресурс] / AnalogDevices, - 2010. Режим доступа: http://www.analog.com/static/imported-files/data_sheets/ADV202.pdf. - Загл. с экрана.

73. Зинкевич, А.В. Проектирование системы обработки видеосигнала с использованием видеокодека ADV202 [Текст] / А.В. Зинкевич // Материалы

11 краевого конкурса - конференции молодых ученых и аспирантов. Хабаровск: Изд-во Тихоокеанского гос. университета, 2009.

74. Свидетельство о государственной регистрации программы для ЭВМ № 2010615985. Аппаратно - программное обеспечение системы на кристалле для быстродействующей передачи изображений // В.В. Березин, В.В. Бородулин, А.В. Зинкевич, Ш.С. Фахми, А.Г. Шоберг; заявл. 19.07.2010; опубл. 13.09.2010.

75. Зинкевич, А.В. Исследование мультимедийного интерфейса высокой четкости [Текст] / В.В. Березин, А.В. Зинкевич // Информационные и коммуникационные технологии в образовании и научной деятельности: Материалы межрегиональной научно-практической конференции (Хабаровск, 21-23 мая 2008 г.) / под научн. ред. А.И. Мазура. - Хабаровск: Изд-во Тихоокеанского гос. университета, 2008. - С. 256-264.

76. Зинкевич, А.В. Мультимедийный интерфейс высокой четкости [Текст] / В.В. Березин, А.В. Зинкевич // Телевидение: передача и обработка изображений. Тез. докл. Международной конференции. Санкт-Петербург, 2008.

77. AD9889B High Performance HDMI/DVI Transmitter [Электронный ресурс] / AnalogDevices, 2011. Режим доступа: http://www.analog.com/static/ imported-files/data sheets/ AD9889B.pdf. - Загл. с экрана.

ПРИЛОЖЕНИЕ 1 Описание контроллера доступа к флеш памяти EPCS

Описание контроллера доступа к флеш памяти EPCS для использования ее в качестве памяти программ только для чтения на языке VHDL (с кэш памятью прямого отображения размером 256 однобайтовых ячеек, располагаемых в on-chip memory).

LIBRARY ieee, USE ieee stdlogic 1 164 all, LIBRARY work, ENTITY epcsasmi IS PORT( RST

CLK

ASMICLK ASMI CS ASMI MOSI ASMI MISO

EPCSCS EPCSRD EPCSWR EPCSERASE EPCSADDR EPCS DATA EM

EPCS DATA OUT OUT std_logic_vector(7 DOWNTO 0), EPCS WAITREQ OUTstdlogic

),

END ENTITY epcs_asmi,

ARCHITECTURE behaviour OF epcs asmi IS

—synthesis readcommentsasHDL on -COMPONENT cycloneasmiblock is -PORT(

- signal dataOout OUT STD LOGIC, signal oe IN STD_LOGIC, signal seem IN STDLOGIC, signal dclkin IN STDLOGIC, signal sdoin IN STD LOGIC -- ),

-END COMPONENT cyclone asmiblock, —synthesis read comments as HDL off

IN std logic, IN std logic,

OUT std logic, OUTstdlogic, OUTstdlogic, IN stdlogic,

IN std logic,

IN std logic, IN std logic, IN std logic,

IN std_logic_vector(23 DOWNTO 0), IN std_logic_vector(7 DOWNTO 0),

TYPE statetype IS (

idle,

read,readloop,

write, wnteenableloop, wntecmd, wntecmdloop, writedata, wntedataloop, wntestatus, wntestatusloop. writecheckstatus, release

),

SIGNAL current state, next state state type,

CONSTANT zeros_3bytes

CONSTANT readbytescmd

CONSTANT readstatuscmd

CONSTANT wntebytescmd

CONSTANT vvnteenablecmd

CONSTANT erasesectorcmd

—synthesis read comments as HDL on

—SIGNAL asmi clk, asmi cs, asmi mosi, asmi miso

-synthesis read comments as HDL off

SIGNAL asmi clk int std logic,

SIGNAL asmicsint stdlogic,

SIGNAL counter, counter data

SIGNAL counter load, counter zero

SIGNAL shift register, shifl register data

SIGNAL shift register load, shift register run std logic,

SIGNAL delaycounter

SIGNAL avalonclkdivided

SIGNAL asmi elk enable

std logic vector(23 DOWNTO 0) = x"000000" std_logic_vector(7 DOWNTO 0) = "00000011" std_logic_vector(7 DOWNTO 0) = "00000101" std_logic_vector(7 DOWNTO 0) = "00000010" std logic vector(7 DOWNTO 0) = "00000110" std_logic_vector(7 DOWNTO 0) = "11011000"

stdlogic.

INTEGER RANGE 0 TO 64, stdlogic, std _logic_vector(31 DOWNTO 0),

INTEGER RANGE 0 TO 15, stdlogic, stdlogic

BEGIN

EPCSDATAOUT <= shift_register(7 DOWNTO 0),

PROCESS(CLK, RST, delaycounter) BEGIN

IF RST = '1'THEN

avalonclkdivided <= '0', delaycounter <= 0, ELSIF (CLK'event AND CLK = '1') THEN

IF delay counter = 0 THEN

delaycounter <= 1, avalonclkdivided <= '1',

ELSE

delay counter <= delay counter - 1, avalonclkdivided <= '0',

END IF,

END IF,

END PROCESS,

PROCESS(RST, CLK) BEGIN

IF RST = T THEN

currentstate <= idle, ELSIF (CLK'event AND CLK = '1') THEN

current state <= nextstate AFTER 2 ns,

END IF, END PROCESS,

PROCESS(current state, EPCSCS, EPCSWR, EPCSRD, EPCSERASE, EPCS ADDR, EPCS DATAJN, counterzero, shiftregister) BEGIN

EPCSWAITREQ <= '0',

shift register data <= (others => '0'),

shiftregisterload <= '0',

shrftregisterrun <= '0',

counterdata <= 0,

counterload <= '0',

CASE current state IS

WHEN idle =>

IF EPCS CS = T THEN

IF EPCS RD = '1' THEN

EPCSWAITREQ <='1', next state <= read, ELSIF (EPCS WR = T OR EPCS ERASE =' 1') THEN EPCSWAITREQ <=' 1', next state <= write,

ELSE

next state <= idle,

END IF,

ELSE

next state <= idle,

END IF,

WHEN read =>

EPCSWAITREQ <='1',

shift register data <= read bytes cmd & EPCS ADDR, shiftregisterload <='1', counterdata <= 38,

counter load <= '1',

nextstate <= readloop,

WHEN read loop =>

EPCSWAITREQ <= '1', shiftregisterrun <= T,

IF counter zero = '1' THEN

next state <= release,

ELSE

next state <= read loop,

END IF,

WHEN write «>

EPCSWAITREQ <=T,

shift register data <== write enable cmd & zeros_3bytes,

shiftregisterload <= T,

counterdata <= 6,

counterload <= T',

nextstate <= wnte enable loop.

WHEN wnteenableloop => EPCSWAITREQ shift register run

<=T,

IF counterzero = '1' THEN

next state <= write cmd,

ELSE

next state <= wnte enable loop,

END IF,

WHEN write cmd =>

EPCS WAITREQ

<= 'I',

IF EPCS ERASE = '1' THEN

shift register data <= erasesectorcmd & EPCSADDR,

<=30,

ELSE

END IF,

counterdata

shiftregisterdata counter data

<= wnte bytes cmd & EPCS ADDR,

<=29,

shiftregisterload <=T',

counterload

next_state

WHEN writecmdloop =>

EPCSWAITREQ <= T, shift register run

<='1',

<= wntecmdloop,

IF counter zero = '1' THEN

IF EPCS ERASE = '1' THEN

next state <= write status,

ELSE

next state <= wnte data,

END IF,

ELSE

next state <= wnte cmd loop,

END IF,

WHEN wnte data =>

EPCSWAITREQ <= '1',

shift register data <= EPCS DATA IN & zeros_3bytes, shiftregisterload <='1', counterdata <= 6,

counterload <='1',

shiftregisterrun <= '1',

next state <= wnte data loop,

WHEN wnte data loop =>

EPCSWAITREQ <= '1', shiftregisterrun

<=T

IF counter zero = 'I' THEN

next state <= wnte status,

ELSE

next state <= wnte data loop,

END IF,

WHEN wnte status =>

EPCSWAITREQ

<= T,

shift register data <= read status cmd & zeros_3bYtes,

shiftregisterload <= T,

counterdata <= 14.

counterload <='1',

next state <= wnte status loop,

WHEN wnte status loop => EPCSWAITREQ shiftregisterrun

<=T.

IF counter zero = '1' THEN

nextstate <= wnte check status,

nextstate <= wnte statusloop,

END IF,

WHEN wnte check status =>

EPCS WAITREQ <='1',

IF shift register(0) = '0' THEN next state <= release,

ELSE

next state <= vvnte status,

END IF,

WHEN release =>

EPCSWAITREQ <= '0',

nextstate <= idle,

WHEN others =>

nextstate <= idle,

END CASE, END PROCESS,

PROCESS(RST, CLK, shiftregisterload, shiftregisterrun, asmi clk enable, asmicsint) BEGIN

IFRST = T THEN

shiflregister <= (others => '0'), ELSIF (CLK'event AND CLK = '1') THEN IF shift register load = '1' THEN

shiflregister <= shiftregisterdata, ELSIF shift register run = '1' THEN

IF asmiclkenable = '1' THEN

IF asmicsint = '0' THEN

shifl register <= shift_register((shift_register'high - 1) DOWNTO 0) & asmimiso,

END IF,

END IF,

END IF,

END IF, END PROCESS,

PROCESS(RST, asmi clk int, shift register run) BEGIN

IF RST = T THEN

asmimosi <= '0', asmi cs int <='1', ELSIF (asmi clk int'event AND asmi clk int = '0') THEN

asmi mosi <= shift_register(shift register'high), IF shift register run = '1' THEN asmi cs int <= '0',

ELSE

asmi_cs_int <=' 1',

END IF,

END IF, END PROCESS, asmi cs <= asmi cs inl,

PROCESS(RST, CLK, counter load, asmi clk enable, asmi cs int) BEGIN

IF RST ='1'THEN

counter <= 0, counter zero <= '0'. ELSIF (CLK'event AND CLK = '1') THEN IF counter load =' 1' THEN

counter <= counterdata, counter zero <= '0',

ELSE

IF asmi clk enable = '1' THEN

IF asmi cs int = '0' THEN

IF counter = 0 THEN

counter zero <= '1',

ELSE

counter <= counter - 1, counter zero <= '0',

END IF,

END IF,

END IF

END IF.

END IF.

END PROCESS,

-synthesis read comments as HDL on —asmiblock cyclone asmiblock — port map(

dataOout => ASMIMISO,

oe => '0',

scein => asmics,

dclkin => asmi elk,

sdoin => ASMI MOSI

),

—synthesis readcommentsasHDL off

END ARCHITECTURE behaviour,

LIBRARY leee, USE leee std logic l 164 all, USE leee std logic anth all, LIBRARY work, ENTITY epesJo avalon IS

PORT( RST IN std logic,

CLK IN std logic,

FLASHERASED OUT std logic,

FLASH ERASE REQUEST IN std logic,

— Avalon Slave Interface

AVALON CS IN std logic,

AVALON RD IN std logic,

AVALON WR IN std logic,

AVALON ADDR IN stdlogic_vector( 15 DOWNTO 0),

AVALONDATAJN IN std logic _vector(7 DOWNTO 0),

AVALON DATA OUT OUT std logic vector(7 DOWNTO 0),

AVALON WAITREQ OUT std logic,

— Local Interface

EPCS CS OUT std logic,

EPCS RD OUT std logic,

EPCS WR OUT std logic,

EPCS ERASE OUT std logic,

EPCS ADDR OUT std_logic_vector(23 DOWNTO 0),

EPCS DATA IN IN std_logic_vector(7 DOWNTO 0),

EPCS DATA OUT OUT std_logic_vector(7 DOWNTO 0),

EPCS WAITREQ IN std logic

)■

END ENTITY epcs to avalon,

ARCHITECTURE behaviour OF epes to avalon IS

COMPONENT epcsblockcache PORT

( data IN STD LOGIC VECTOR (17 DOWNTO 0),

wren IN STD LOGIC ='1',

wraddress IN STD LOGIC VECTOR (7 DOWNTO 0), rdaddress IN STD LOGIC VECTOR (7 DOWNTO 0), clock IN STD LOGIC,

aclr IN STD LOGIC = '0'.

q OUT STD LOGIC VECTOR (17 DOWNTO 0)

),

END COMPONENT,

TYPE state type IS

( mit, mit loop, idle,

read, read emd, read loop, read store, read_store2. write, write cmd, wnte loop, erase, erase cmd, erase loop, release

),

SIGNAL current state. next state SIGNAL cache rdaddress

SIGNAL cache wraddress SIGNAL cachedatain SIGN AL cachedataout SIGNAL cachewr ALIAS cache tag ALIAS cache data ALIAS cache data valid

statetype.

std_logic_vector(7 DOWNTO 0),

std_logic_vector(7 DOWNTO 0), std_logic_vector( 17 DOWNTO 0), std_logic_vector<17 DOWNTO 0), stdlogic,

std_logic_vector(7 DOWNTO 0) IS cache_data_out(15 DOWNTO 8), std_logic_vector(7 DOWNTO 0) IS cache_data_out(7 DOWNTO 0), std logic IS cache_data_out(16),

SIGNAL addrcounter INTEGER RANGE 0 TO 256,

SIGNAL addr counter data INTEGER RANGE 0 TO 256,

SIGNAL addr counter load stdlogic,

SIGNAL addrcounterzero stdlogic,

SIGNAL flash erased flag std logic,

SIGNAL setflasherased stdlogic,

BEGIN

AVALON DATA OUT <= cache data out(7 DOWNTO 0),

cache epcsblockcache PORT MAP

( data => cache dala in,

wren => cache wr,

wraddress => cachewraddress, rdaddress => cacherdaddress, clock => CLK,

aclr => RST,

q => cachedataout

PROCESS(RST, CLK) BEGIN

IF RST = T THEN

currentstate <= rnit, ELSIF (CLK'event AND CLK = T) THEN

current state <= nextstate AFTER 2 ns,

END IF, END PROCESS,

PROCESS

( currentstate,

EPCS WAITREQ, EPCS DATA IN,

AVALONCS, AVALON WR, AVALON RD, AVALON ADDR, AVALONDATAIN, addr counter, addr counter zero, cache data out, flash erase request

)

BEGIN

EPCSCS

EPCSWR

EPCSRD

EPCSERASE

EPCSADDR

EPCS DATA OUT

AVALONWAITREQ

cachewraddress

cacherdaddress

cachedatain

cachewr

addrcounterdata

addrcounterload

set flash erased

<= '0', <= '0', <= '0',

<= (others => '0'), <= AVALON DATA IN, <= '0', <= (others => '0'),

<= AVALON_ADDR(7 DOWNTO 0), <= (others => '0'),

<=0,

<= '0',

CASE (current state) IS WHEN rnit =>

AVALONWAITREQ addrcounterdata addrcounterload nextstate WHEN untjoop =>

AVALONWAITREQ cachewraddress cachewr cache data in

<= 255,

= llllt loop,

<= conv_std_logic_vector(addr_counter, 8). <='1',

<= (others => '0'),

IF addr counter zero =' 1' THEN next state <= idle,

ELSE

next state <= mit loop,

END IF, WHEN idle =>

IF flash erase request = '1' THEN

Обратите внимание, представленные выше научные тексты размещены для ознакомления и получены посредством распознавания оригинальных текстов диссертаций (OCR). В связи с чем, в них могут содержаться ошибки, связанные с несовершенством алгоритмов распознавания. В PDF файлах диссертаций и авторефератов, которые мы доставляем, подобных ошибок нет.