Проектирование компьютерного технического устройства

 

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ УКРАИНЫ

ХАРЬКОВСКИЙ НАЦИОНАЛЬНЫЙ УНИВЕРСИТЕТ РАДИОЭЛЕКТРОНИКИ










Методические указания

к комплексному курсовому проекту

Для студентов дневной формы обучения специальности 7.091503 «Специализированные компьютерные системы»











Харьков 2009


ВВЕДЕНИЕ


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

Аналогично древнему философскому спору: «что первичнее (главнее, старше), курица или яйцо» позволителен вопрос «что первичнее, вычислительная структура ЭВМ или алгоритм решения прикладной задачи». Универсальные ЭВМ общего назначения первоначально имеет избыточную архитектуру, которая в состоянии с той или иной (почти одинаковой) эффективностью реализовать и не оптимизированные, и оптимизированные программы для решения широкого круга задач. Принцип построения специализированных ЭВМ (далее СЭВМ) иной: их архитектура приспосабливается под один заданный алгоритм или класс алгоритмов, которые реализуются в течении длительного времени. При этом добиваются оптимально минимальной архитектуры для уменьшения стоимости, веса, увеличения быстродействия и др. будущих ЭВМ.

В настоящее время продукция, поставляемая на рынок электронных технологий, используется во всех областях человеческой деятельности. Компании (Intel, Motorola, Advanced Micro Devices, IBM, Sun Microsystems и Hewlett-Packard) затрачивают миллионы долларов на разработку мощных процессоров, оперирующих уже 64- и 128-битовыми данными.. У микропроцессоров, как и у других типов микросхем, наблюдается экспоненциальный рост возможностей: согласно закону Мура каждые 18 месяцев число транзисторов в современных микросхемах удваивается без увеличения стоимости чипа. Микропроцессоры с такой же периодичностью увеличивают свою производительность на 100%. Это превратило разработку универсальных компьютеров в мощную лидирующую индустрию на рынке электронных технологий. Однако ситуация в настоящее время изменяется в связи с ростом производительности средних и малых микропроцессоров. Очевидна рыночная тенденция - в течение ближайших 15 лет возможности, предлагаемые техническим прогрессом и рынком, превысят потребности пользователя. Поэтому корпорации, нацеленные только на выпуск мощных универсальных процессоров, рискуют потерять свою долю прибыли на рынке микроэлектроники. Чтобы этого не случилось, они уже сейчас реорганизуют часть своего производства на быстрый выпуск специализированных заказных микросхем.

Также развивается модульность устройств в которых сохраняется стандартизация интерфейсов между подсистемами. Такой подход уже реализован в нижних уровнях проектирования микропроцессора в виде системы-на-кристалле (System-on-chip или SoC) и практики многократного использования модулей (IP-ядер) для встраивания. Последние имеют различные размеры и функции, от простых, реализующих интерфейсы до сложных 64-битовых микропроцессоров, имеющих несколько миллионов транзисторов.

Прогресс в микроэлектронике диктует компаниям:

) придерживаться стратегии модульности проектов, состоящих из многократно используемых и реконфигурируемых IP блоков;

) предоставлять возможность реализации системы на одном кристалле, создавая заказные системы SoC;

) сокращать время проектирования и внедрения в производство микропроцессоров и систем SoC;

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


1 ЦЕЛИ И ЗАДАЧИ КУРСОВОГО ПРОЕКТИРОВАНИЯ. ТЕМАТИКА КУРСОВЫХ ПРОЕКТОВ. ОБЩИЕ ВОПРОСЫ ОРГАНИЗАЦИИ КОМПЛЕКСНОГО КУРСОВОГО ПРОЕКТИРОВАНИЯ


Цели

Целью комплексного курсового проектирования является расширение и закрепление знаний, полученных в процессе изучения курсов Специализированная архитектура ЭВМ, ПСМС, других специальных дисциплин в соответствии с учебным планом специальности СКС, а также приобретение практических навыков по составлению специализированных прикладных алгоритмов и программ на внутреннем языке используемых технических модулей, а также.

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

Выполнение курсового проекта прививает навыки самостоятельной разработки необходимых структурных схем ядра и устройств сопряжения с объектом (УСО), умение пользоваться технической литературой и руководящими техническими материалами (РТМ) на БИС и другие технические модули (изделия).

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

Тематика

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

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

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

В этих условиях проектной реализации подлежат следующие типы прикладных задач.

  1. Задачи программного управления (регулирования) техническими объектами. При этом проектированию подлежат:
  2. устройства цифрового управления промышленными установками;
  3. бортовые системы управления различными видами транспорта;
  4. специализированные ЭВМ (СЭВМ) для узлов и устройств средств связи;
  5. встроенные средства цифрового управления игральными автоматами;
  6. встроенные микропроцессорные средства для электрических инструментов, бытовых приборов и др.;
  7. различные цифровые регуляторы на базе микроконтроллеров.

Спектр применения СЭВМ настолько широк, что перечислять все приложения здесь неуместно.

  1. Задачи вычисления (генерации) функций в стационарном и динамическом режимах. Здесь необходимо спроектировать функционально-ориентированные процессоры для:
  2. инкрементной генерации алгебраических целых рациональных, дробно-рациональных, иррациональных функций;
  3. инкрементной генерации трансцендентных функций (тригонометрических, показательных, логарифмических, гиперболических и др.).

Задания на проектирование выдаются индивидуально по решению преподавателя.

Реализация заданий происходит на следующей элементной базе: PIC 452/4520 (микроконтроллер фирмы Microchip), ATMEGA 128 (микроконтроллер фирмы ATMEL), CoolRunner II (СБИС типа CPLD фирмы Xilinx).

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

В отдельных случаях допускает выполнение проекта только до эмуляции (моделирования) в САПР, если проект предоставленная элементная база недостаточна.

В том числе допускается выполнение части проекта, касающейся разработки программного обеспечения системного уровня.

Данные правила распространяются на комплексные курсовые проекты в 8-м семестре (квалификационный уровень бакалавр) и в 9-м семестре (квалификационные уровни специалист и магистр).

Задание на комплексный курсовой проект

Задание на комплексный курсовой проект (ККП) разрабатывается руководителем ККП с привлечением, при необходимости, консультантов по соответствующим разделам. В качестве консультантов ККП в 9-м семестре выступают руководители дипломных проектов соответствующих студентов. Задание выдается руководителем ККП на первой неделе 8 семестра, или консультантом на 4-й (5-й) неделе 9-го семестра.

В задании на ККП указываются :

  • объект проектирования и все необходимые для проектирования параметры в форме пожелания заказчика (руководителя проекта);
  • глубина проработки проекта (техническое предложение, эскизный проект, технический проект);
  • тип элементной базы для схемотехнического проекта;
  • количество чертежей (плакатов) графической части и электронная или бумажная их форма;
  • график выполнения и срок сдачи проекта.

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

Проведение защиты комплексного курсового проекта

Выполненный комплексный курсовой проект в соответствии с календарным планом подается на проверку руководителю проекта (консультанту).

Пояснительная записка к ККП в 9-ом семестре должна быть проверена и подписана консультантом проекта за 3 дня до защиты.

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

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

На доклад каждому студенту выделяется до 10 минут, в течение которых он должен осветить следующие вопросы:

·актуальность тематики, анализ состояния проблемы и постановку задачи;

·содержание выполненных разработок, эффективность принятых технических решений, полученные теоретические и практические результаты;

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

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

Если защита ККП выполняется без использования компьютера, то графическая часть выполняется в форме плакатов, форматом не менее А3, и раздаточного материала для членов комиссии формата А4.

После доклада студента и ответов на вопросы комиссия принимает решение об оценке ККП по 4-балльной системе («отлично», «хорошо», «удовлетворительно», «неудовлетворительно») или по 100-бальной системе.

Принцип оценивания

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

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


2ЭТАПЫ ПРОЦЕССА ПРОЕКТИРОВАНИЯ


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

Проектирование делится на стадии, этапы и процедуры. Выделяют стадии научно-исследовательских работ (НИР), опытно-конструкторских работ (ОКР), эскизного проекта, технического проекта, рабочего проекта, испытаний опытного образца.

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

На этапе эскизного проектирования производится детальная проработка возможности построения системы, его результатом является эскизный проект.

На этапе технического проектирования выполняется укрупненное представление всех конструкторских и технологических решений; результатом этого этапа является технический проект.

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

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

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

Исторически сложилось так, что на данный момент существует две методики проектирования:

·традиционная, т.е. «ручная» методика проектирования, нормативная база которой была представлена в советских ГОСТах;

·методика проектирования с использованием современной элементной базы.

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

Традиционная методика проектирования. Пожелания заказчика

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

Техническое задание на проектирование

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

·основание для разработки системы управления значение и область применения;

·условия эксплуатации: общий срок эксплуатации, режимы эксплуатации, продолжительность непрерывной работы; климатические условия (температура, влажность, давление и т.п.); механические нагрузки (ускорения, вибрации и т.п.); другие объективные условия эксплуатации (радиационные воздействия, биологические воздействия, условия транспортировки и хранения и т.д.); субъективные условия эксплуатации (требования к обслуживанию, ремонту и т.д.);

·технические данные системы управления: требования к габаритам и массе, точности и стабильности выходных характеристик, надежности работы, конструктивно-компоновочные требования и др.;

·сроки проектирования;

·затраты на проектирование;

·условия и объемы производства системы управления;

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

После проведенного анализа ТЗ уточняются, окончательно редактируют, согласовывают с исполнителем (разработчиком) и утверждают у заказчика.

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

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

Техническое предложение

Техническое предложение является частью предварительного проектирования. На этапе предварительного проектирования обычно решаются следующие задачи:

1)изыскание и разработка принципов построения системы, отвечающих заданным или предполагаемым требованиям;

)разработка и оптимизация структуры системы по основным (определяющим) критериям или их совокупности;

)изыскание и разработка; принципов построения технических средств, обеспечивающих создание - системы с лучшими характеристиками;

)изыскание (разработка) методов оптимизации характеристик систем и их составляющих;

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

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

Для предварительной оценки основных характеристик и оптимизации системы по этим характеристикам обычно широко используются методы математического моделирования на цифровых и аналоговых ЭВМ.

Чрезвычайно ответственный момент предварительного проектирования - выбор технических средств проектируемой системы, и прежде всего элементной базы (системы элементов) - той технической основы, на которой строится система.

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

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

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

Эскизное проектирование

На этапе эскизного проектирования производится дальнейшее уточнение и конкретизация структурной схемы системы.

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

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

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

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

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

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

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

Обычно на этапе эскизного проектирования выполняются габаритно-массовые макеты аппаратуры системы с заданным расположением центра масс (тяжести), которые используются для макетирования размещения системы управления на объекте.

Этап эскизного проектирования завершается выпуском и защитой эскизного проекта.

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

Техническое проектирование

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

) электрические схемы;

2) графические документы;

) программные документы: спецификация, текст программы, описание программы, формуляр, описание применения, руководство оператора, руководство системного программиста и т.д.;

) текстовые документы: общие технические условия на систему; различные инструкции.

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

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

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

Рабочий проект

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

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

Результатом работ на этой стадии являются документ «Рабочий проект» и комплект эксплуатационных документов.

Анализ методики проектирования с использованием современной элементной базы

Рассмотрим общие методы проектирования на основе ПЛИС

Методика проектирования на основе ПЛИС включает в себя пять основных последовательно выполняемых этапов:

·исходное задание;

·техническое задание;

·техническое предложение;

·эскизный проект;

·технический проект;

·макетирование.

Данные этапы имеют тоже само название, что и этапы проектирования традиционной методики, но в связи с ростом проектирования цифровых устройств на ПЛИС, эти этапы немного видоизменились по набору выполняемых действий. Ниже приведены новые действие выполняемые при проектировании:

·ввод исходных данных проекта;

·функциональное моделирование;

·выполнение синтеза отдельных частей проекта и всего проекта в целом;

·временное моделирование проекта;

·программирование и тестирование ПЛИС.

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

Ввод проекта

Ввод проекта заключается в описании одним из способов машинного представления всех частей проекта. Различные пакеты имеют разные способы ввода, но наиболее распространенными являются следующие:

·текстовый;

·схемный;

·в виде временных диаграмм;

·задание графа переходов.

Текстовый ввод предполагает описание проекта (или его части) на некотором исходном языке используемого программного средства в виде текстового файла. Наибольшее распространение получили языки описания аппаратуры VHDL и Verilog. Текстовый файл исходного описания проекта, как правило, включает заголовок, определение переменных и назначение им соответствующих выводов ПЛИС, а также описание функционирования устройства в виде логических уравнений, алгоритма функционирования, таблицы истинности или конечного автомата. Более детально данный процесс ввода проекта будет рассмотрен ниже.

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

Ввод проекта в виде временной диаграммы осуществляется с помощью графического редактора. Вначале определяются переменные (сигналы) проекта, а затем описывается поведение устройства в виде временной диаграммы.

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

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

Синтез проекта

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

Моделирование проекта

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

·определение выходных значений по заданным входным воздействиям;

·сравнение вычисленных выходных значений с эталонными;

·моделирование неисправностей устройства.

Временное моделирование выполняется на временных моделях ПЛИС и заключается в определении времени прохождения и формирования различных сигналов. Результаты временного моделирования могут также представляться в виде временных диаграмм.

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

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

ПЛИС, поддерживающие JTAG-стандарт, могут тестироваться непосредственно на плате методом граничного сканирования (Boundary Scan). Для этого программным обеспечением на основании тестовых векторов создаются тестовые последовательности в JTAG-стандарте. При этом допускается тестирование:

·одного ПЛИС;

·цепочки ПЛИС;

·всех устройств проекта (в том числе и цепочки ПЛИС), поддерживающих JTAG-стандарт.

Программирование ПЛИС

Программирование ПЛИС заключается в его настройке на заданный алгоритм функционирования. Стандартные ПЛИС программируются с помощью программаторов. Технологии программирования (последовательности подаваемых сигналов, уровни напряжений и др.) могут существенно отличаться даже для одних и тех же ПЛИС, но производимых различными фирмами. Поэтому большое значение имеет использование только сертифицированных программаторов, рекомендуемых фирмами-изготовителями ПЛИС. ПЛИС типа FPGA, в которых настраиваемым элементом является SRAM, конфигурируются всякий раз при включении питания. Процесс конфигурирования состоит из двух фаз: загрузки данных и обнуления всех регистров. Данные о настройке ПЛИС типа CPLD могут поступать от управляющего компьютера, микропроцессора, ПЗУ, ОЗУ, других PLD. Форма передаваемых данных может быть как последовательная, так и параллельная. Имеется также ряд режимов программирования, когда PLD выступает в качестве активного устройства (само управляет процессом загрузки данных) и в качестве пассивного устройства (другое устройство управляет процессом загрузки данных).

Современные ПЛИС поддерживают JTAG-стандарт и могут программироваться на плате, используя сигналы JTAG-стандарта. Для этого на границе платы устанавливается специальный разъем для передачи сигналов управления процессом программирования. Несколько ПЛИС на одной плате могут объединяться в цепочки, но в каждый момент времени допускается программирование только одного ПЛИС.


3. ОБЩАЯ СТРУКТУРА ПРОЕКТА


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

Более детальные этапы проработки проекта показаны на рис.1.

Системное

проектирование



1






Техническое

проектирование



Рисунок 3.1 - Этапы проектирования


Таким образом, пояснительная записка включает основные разделы согласно рис. и другие необходимые пункты по Госстандарту Украины [11]. Объем пояснительной записки - 35…40 страниц формата А4 без приложений. Графическая часть выполняется с помощью компьютерных технологий и включается в состав пояснительной записки.

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

) практическую реализацию задания;

) пояснительную записку;

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


Сравнительная таблица

ЭтапыУровниДокументы, изготавливаемые на данном этапе (уровне)Разрабатываемые (задаваемые) параметрыВыполняемые работыВыполняемые работы применительно к ПЛИСИсходное задание (разработка технического задания (ТЗ))Концептуальный (предпроектная подготовка)Вход: пожелание заказчика Выход: техническое задание (ТЗ)Решаемая задача, время решения, точность, напряжение, мощность, конструктивная реализация, стоимостьПреобразование пожеланий заказчика (исходного задания) в ТЗПринятие решения об использовании ПЛИСТехническое предложение (ТП)СистемотехническийВход: ТЗ Выход: спецификация, общая структурная схема устройстваТЗ: диапазон изменения переменных, интенсивность заявок, выходной диапазон значений ТП: разрядность, частота, тип интерфейсаВыбор математического обеспечения, оптимального решения и сравнение, разбиение алгоритмов на подсистемы, выбор типа элементной базыПоиск готовых решений, математическое моделирование, выбор вида схемотехнического решения, спецификация всего устройстваЭскизный проект (ЭП)Структурно-блочный (техническо-блочный, алгоритмический, командный)Вход: спецификация Выход: подробная структурно-блочная схема устройстваРазрядность интерфейсов между блоками, задержки, синхронизацияОписание блоков и их взаимосвязь, выбор вариантов, верификация, тесты временных динамических характеристик, подтверждение элементной базы, выбор типа элементной базы в САПР, связь с конструктивном, способ подключения, разработка модулей другим разработчиком (по необходимости)Составление спецификаций отдельных блоков, выбор типа кристалла (выходной формат спецификации)Технический проект (рабочий проект)Функционально-блочный (структурно-функциональный)Вход: структурно-блочная схема устройства Выход: структурно-функциональные схемы отдельных блоковВыбор сигналов, переменных, шин, элементов памятиОписание и моделирование функций ЯОА, установка цены чипа и поиск аналогов, анализ верификационного покрытия (по необходимости его отладка), организация проекта и принцип построения моделиСоставление моделей на ЯОА и ее отладка (TestBench)МакетированиеСхемотехническийВход: структурно- функциональные схемы отдельных блоков Выход: электрические принципиальные схемы разработанных блоковРазработка электрических принципиальных схем устройства (синтез)Выбор типа микросхемы для синтеза, синтез и оптимизация, постсинтезное моделирование, имплементация, программирование


4. МЕТОДИЧЕСКИЕ УКАЗАНИЯ К ВЫПОЛНЕНИЮ КУРСОВОГО ПРОЕКТА


При работе над техническим заданием (ТЗ) рекомендуется поэтапное, последовательное во времени выполнение разделов. Оформлению соответствующих разделов должно предшествовать детальное изучение вопросов по рекомендованным литературным источникам.

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

В разделе «Выводы» подводится итог выполненной работы в виде поэтапного перечисления всех полученных результатов.

Рекомендации по реализации основных разделов проекта следуют ниже.

Пример цикла проектирования устройства на ПЛИС

Проектирование технического устройства начинается с пожелания заказчика. Пожелание заказчика для проектирования данного устройства звучит так: разработать кодоуправляемое устройство для формирования произвольных импульсных последовательностей с частотой f, равной 65 МГц. В результате анализа технического предложения заказчика мы получаем техническое задание. Данное устройство будет спроектировано на ПЛИС, этот момент объясняется тем, что в настоящее время данная техническая база является наиболее дешевой по сравнению с другими. На сегодняшний день наиболее развитыми являются два типа устройств программируемой логики - FPGA и CPLD. CPLD (комплексные программируемые логические устройства), потому что не содержат матриц «И» и «ИЛИ». FPGA включают в себя специальные логические блоки для реализации требуемых функций и сеть конфигурируемых межсоединений.

Техническое задание. Назначение устройства

Кодоуправляемое устройство для формирования произвольных импульсных последовательностей с частотой f, равной 65 МГц.

Входные/выходные параметры

На вход устройства подаются 2 одноразрядных числа, которые являются управляющими для данного устройства, а также 9-ти разрядное двоичное число, являющееся информацией для настройки. Результатом работы устройства является произвольная импульсная последовательность. В таблице 4.1 и таблице 4.2 представлены входные и выходные параметры для проектирования устройства соответственно.


Таблица 4.1 Входные параметры

ВходыРазрядностьОписаниеReset1 битУстановка в начальное состояние устройстваStr1 битСтроб вводаData9 битИнформационные данные

Таблица 4.2 Выходные параметры

ВыходыРазрядностьОписаниеReady1 битГотовность устройства к приему новых информационных данныхDataOut1 битПроизвольная импульсная последовательность

Выбор типа кристалла

Программируемые пользователем вентильные матрицы (Field Programmable Gate Arrays - FPGA) впервые были разработаны фирмой Xilinx в 1985г. Настраиваемыми элементами в FPGA являются программируемые мультиплексоры. Настройка FPGA на заданное функционирование выполняется каждый раз перед началом ее работы. Необходимая для этого программа настройки предварительно записывается в ПЗУ (ОЗУ). Сразу после включения питания производится загрузка информации из ПЗУ и осуществляется автоматическая инициализация FPGA (для этого FPGA содержит необходимые логические схемы). Возможно также выполнение настройки FPGA под управлением микропроцессора или микроконтроллера.

Микросхемы типа CPLD применяются в проектах с большим количеством вентилей. Но по современным меркам схема даже с 20000 вентилями не является большой. Для реализации крупных проектов удобно использовать чипы, обладающие еще большей логической вместимостью. Такими чипами являются программируемые пользователем вентильные матрицы. По своей структуре FPGA отличаются от SPLD и CPLD, потому что не содержат матриц И и ИЛИ. Вместо этого FPGA включают в себя специальные логические блоки для реализации требуемых функций.

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

Техническое предложение

В результате анализа технического задания мы получаем техническое предложение, которое состоит из следующих этапов:

·поиск готовых решений;

·выбор семейства кристалла;

·математическое моделирование;

·выбор схемотехнического решения;

·спецификация всего устройства.

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

Спецификация всего устройства

В таблице 4.3 приведены данные для определения коэффициента деления частоты при помощи старших четырех бит информационной последовательности.

компьютерный кристалл схемотехнический моделирование

Таблица 4.3 - Коэффициенты деления частоты

NKiNki110110001299900103820010047330101564510006551100174831010

Формат слова - CNkiNj, где С - бит четности, Nki - старшие четыре разряда слова, Nj - младшие четыре разряда слова.

Ki - коэффициент деления частоты.1 - число бит, необходимых для представления коэффициента деления частоты в двоичной системе исчисления.2 - разрядность выходной импульсной последовательности.- число одноразрядных коммутирующих импульсов.1=10; n2=7;m=8.

В таблице 4.4 представлены данные для коммутатора импульсов, где Код - m-разрядная последовательность.


Таблица 4.4 - Данные для коммутатора импульсов

NNjКод101101000111201110111000301011100110410001110011510010101100611001111000700110001111800101010101

Интерфейс данного проектируемого устройства приведен ниже, на рисунке 4.1.

Рисунок 4.1 - Интерфейс проектируемого устройства


Выбор семейства кристаллаимеет типичную структуру вентильной матрицы. На рис. 4.2 представлен FPGA фирмы Xilinx - Spartan II (модель XC2S15).

ПЛИС типа FPGA фирмы Xilinx выполнены по SRAM КМОП технологии. Характеризуются высокой гибкостью структуры и изобилием на кристалле триггеров. При этом логика реализуется посредством матрицы так называемых LUT - таблиц (Look Up Table), а внутренние межсоединения - посредством разветвлённой иерархии металлических линий, коммутируемых специальными быстродействующими транзисторами.

Большая стоимость микросхем FPGA с встроенной RAM по сравнению со стоимостью заказных микросхем ограничивает использование FPGA для изготовления опытных образцов или мелкосерийной продукции. Этот недостаток FPGA устранен фирмой Xilinx выпуском новой серии микросхем FPGA - серий Spartan и Spartan-II, параметры которых приведены в таблице 4.3.

Таблица включает шесть устройств серии Spartan-II и их основные характеристики (логические ячейки, число системных вентилей, размерность массива CLB, кол-во CLB и др.).


Таблица 4.5 - Параметры семейства FPGA Spartan2

DeviceLogic CellsSystem Gates (Logic and RAM)CLB Array (C*R)Total CLBsMaximum Available User I/OTotal Distributed RAM BitsTotal Block RAM BitsXC2S15432150008*129686614416KXC2S309723000012*182161321382424KXC2S5017285000016*243841762457632KXC2S100270010000020*306001963840040KXC2S150388815000024*368642605529648KXC2S200529220000028*4211762847526456K

Семейство FPGA Spartan-II имеет рекордно низкую стоимость в расчете на один вентиль при плотности упаковки до 200 тысяч вентилей. В кристалле имеется несколько блоков ОЗУ каждый по 4КБита, также возможна реализация 16 бит памяти на каждом 4-х входовом функциональном генераторе.

Устройства Spartan-II сочетают черты гибкой, регулярной архитектуры, которая охватывает матрицу конфигурируемых логических блоков (CLB), окруженную программируемыми блоками ввода - вывода, связанных между собой богатой иерархией быстрых, многосторонних ресурсов межсоединений.

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

Устройства Spartan-II имеют более высокую производительность по сравнению с предыдущими семействами FPGA. Проекты могут работать с системной частотой синхронизации до 200 МГц, включая блоки ввода/вывода (Input/Output - I/O).

Кроме этого чипы Spartan-II отличает целый ряд достоинств:

-низкая стоимость разрабатываемых устройств

высокая скорость проектирования

большая размерность чипа (до 200,000 системных вентилей).

высокое быстродействие

Рисунок 4.2 - Структура кристалла Spartan-II.


Программируемая пользователем вентильная матрица Spartan-II, показанная на рисунке 4.2, охватывает: конфигурируемые логические блоки (configurable logic blocks - CLBs) и блоки ввода - вывода (IOBs). CLB блоки служат для создания функциональных логических элементов, а блоки I/O создают интерфейс между контактами микросхемы и CLB блоками.

Архитектура Spartan-II также включает следующие цепи:

-специальные блоки памяти размером 4096 бит каждый;

схемы автоподстройки задержек (DLL) для выравнивания задержек стробирующих сигналов, а также внутреннего управления стробированием.

Базовым строительным элементом CLB блока является логическая ячейка. Логическая ячейка включает 4-х входовой функциональный генератор, логику ускоренного переноса и запоминающий элемент. Выход каждого функционального генератора в каждой логической ячейке подсоединен к выходной линии CLB-блока и к D-входу триггера.

Каждый CLB-блок в серии Spartan-II содержит четыре логические ячейки, организованные в виде двух одинаковых секторов (Slice). На рис. 4.3 один сектор изображен более детально.

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


Рисунок 4.3 - Сектор (Slice) FPGA Spartan-II.


Функциональные генераторы реализованы в виде 4-х входовых функциональных таблиц (LUT). Кроме использования в качестве функциональных генераторов, каждый LUT-элемент может быть также использован как синхронная память типа RAM размерностью 16x1 бит. Более того, из двух LUT-элементов в рамках одного сектора (Slice) можно реализовать синхронную RAM-память размерностью 16х2 бита или 32х1 бит, либо двухпортовую синхронную RAM-память размерностью 16х1 бит.

На LUT-элементе микросхемы Spartan-II может быть реализован 16-битный сдвиговый регистр, который идеально подходит для захвата высокоскоростных или пакетных потоков данных. Этот режим может также использоваться для запоминания данных в таких приложениях, как цифровая обработка сигналов (Digital Signal Processing - DSP).

Запоминающие элементы в каждом секторе CLB-блока Spartan-II могут конфигурироваться как динамические триггеры (чувствительные к фронту сигнала) D-типа, либо как защелки, чувствительные к уровню сигнала. D-вход триггера может управляться либо от функционального генератора в рамках того же сектора CLB-блока, либо непосредственно от входов данного сектора.

Мультиплексор F5 в каждом секторе объединяет выходы преобразователя. Эта комбинация позволяет реализовать любую функцию 5-ти переменных или некоторые функции до девяти переменных. Точно так же мультиплексор F6 объединяет выходы изо всех четырех LUTов в CLB. Это позволяет реализацию любой функции 6-ти переменных или некоторые функции до 19 переменных. У каждого CLB имеется четыре, прямых пути. Эти пути обеспечивают дополнительные линии ввода данных или дополнительную маршрутизацию, которая позволяет сэкономить логические ресурсы.

Специальная логика переноса обеспечивает возможность быстрого переноса при реализации арифметических функций. CLB-блок Spartan-II поддерживает две отдельные цепочки переноса, одна на каждый сектор (Slice) CLB. Размерность цепочек переноса - два бита на CLB-блок.

В FPGA Spartan-II встроена особая блочная память. Она создана в дополнение к распределенной памяти небольшой емкости (Select RAM), реализованной на функциональных таблицах (Look Up Table RAM - LUTRAM).

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

Для реализации выбирается кристалл типа FPGA семейства Spartan-II серии XC2S100-6 фирмы Xilinx.

Эскизный проект

После анализа технического предложения переходим к следующему этапу проектирования, а именно эскизному проекту. Данные, размером 9 бит, заносятся в регистр (RG), после чего они оттуда поступают на блок проверки на нечетность (mod). Если последовательность четная, то сигналу "ОК" присваивается "1", который запускает генератор импульсов (ГИ). Он, в свою очередь, вырабатывает частоту, равную 65 МГц, которая поступает на управляемый делитель частоты (УДЧ). Старшие 4 разряда слова Nki поступают на шифратор (ШФ), который преобразует поступающие на него данные в последовательность, разрядностью n1, которая и будет являться делителем частоты для УДЧ. С УДЧ частота, деленная на делитель, поступает на распределитель импульсов (РИ). Он служит для последовательной передачи n2 импульсов на формирователь выходных последовательностей, а также сигнала готовности "ГТ". Эти импульсы поступают на блок дизъюнкторов (БД), который предназначен для формирования m выходных последовательностей, которые поступают на коммутатор импульсов (КИ). Он производит коммутацию импульсных последовательностей, поступающих с БД. Выбор той или иной последовательности осуществляется с помощью младших 4 разрядов данных Nj, приходящих от входного регистра (RG).


Рисунок 4.4 - Подробная структурно-блочная схема устройства


Спецификация блоков

Блок «Шифратор». Данный блок выполняет шифрование данных, т.е. на вход поступают старшие разряды слова, с помощью которых определяется коэффициент деления частоты, уменьшенный на единицу. Входные параметры и данные для данного блока представлены в таблицах 4.6 и 4.7 соответственно.


Таблица 4.6 - Входные параметры для блока «Шифратор»

Data4- разрядный входной сигнал, предназначенный для определения коэффициента частотыDataOut9 - разрядный выходной сигнал, который и является двоичным представлением коэффициента частоты уменьшенным на единицу

Таблица 4.7 - Данные для блока «Шифратор»

NKiNki110110001299900103820010047330101564510006551100174831010

Интерфейс данного блока приведен ниже.


Рисунок 4.5 - Интерфейс блока «Шифратор»


Блок «Проверки на нечетность». Данный блок предназначен для проверки на четность данные разрядностью девять бит. Формат данных выглядит следующим образом: формат слова - CNkiNj, где С - бит четности, Nki - старшие четыре разряда слова, Nj - младшие четыре разряда слова. Входные параметры написаны в таблице 4.8.


Таблица 4.8 - Входные параметры для блока «проверки на нечетность»

Data9-разрядный сигнал данных, формат которого описан вышеErrorбитовый сигнал, сигнализирующий о том, что существует ошибкаOKбитовый сигнал, сигнализирующий о том, что ошибки нет

Принцип работы данного устройства определяется формулой



Интерфейс данного устройства приведен ниже.


Рисунок 4.6 - Интерфейс блока «Проверка на четность»


Технический проект

Осуществив, все выше изложенные этапы проектирования и проанализировав эскизный проект, мы переходим к следующей стадии проектирования - технический проект, а именно к описанию проекта для ввода в САПР.

Существует несколько способов ввода описания проекта: структурный (в виде схемы из функциональных блоков), автоматный (в виде графа переходов, ГСА и т.д.), кодовый (использую языки описания аппаратуры типа VHDL или Verilog), в виде списка соединений и т.д.

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

Для синтеза проекта выбран программный продукт фирмы Synplicity Synplify 7.0.2, так как он имеет следующие преимущества по сравнению с программами синтеза других производителей:

высокая скорость синтеза (основное);

визуальное представление результатов синтеза (нетлиста);

-наличие библиотек под современную элементную базу крупнейших мировых производителей.

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

Описание блоков проекта на ЯОА

В качестве ЯОА для описания выбран VHDL. Это обусловлено высокой адаптацией средств языка для нужд проектировщика, наличием эффективной среды моделирования (Active-HDL), а также среды синтеза, использующей VHDL (Synplify).

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


Рисунок 4.7 - Файловая иерархия проекта


Файловая структура содержит: BlackPack.vhdl, gi.vhdl, UDC.vhdl, rasp_imp.vhdl, kod.vhdl, mod2.vhdl, RG.vhdl, kom_imp.vhdl, BlockD.vhdl.

Блок проверки на нечетность. В заголовке объекта проектирования (entity) указаны входные и выходные сигналы данных блока:

Data: std_logic_vector (8 downto 0);: std_logic;: std_logic.

В архитектуре (architecture) реализуется выражение (4.1), а также инверсия выхода Error:


OK<= not (Error) (4.2)


Входные данные описаны, как вектор типа std_logic_vector разрядностью 9 бит.

Старший бит входных данных - бит четности.

Если Error равен 1, то входные данные нечетны, что остановит действие всего проекта.

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


Рисунок 4.8 - Результаты моделирования блока проверки на нечетность


Блок шифратор. В заголовке объекта проектирования (entity) указаны входные и выходные сигналы данных блока:


Data: std_logic_vector (3 downto 0);: std_logic_vector (9 downto 0).

Входные данные Data имеют разрядность 4 бит, так как нам минимально необходимо всего лишь они, с помощью которых мы определяем коэффициент деления частоты. Выходной сигнал К имеет разрядность 10 бит, так как это минимальное число бит необходимое для представления коэффициента деления частоты в двоичной форме.

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


when "0001" => K <= "1111110010";"0010" => K <= "1111100110";"0100" => K <= "1100110011";"0101" => K <= "1011011100";

when "1000" => K <= "1010000100";

when "1001" => K <= "1000100110";"1010" => K <= "0111100010";others => null;


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


Рисунок 4.9 - Результаты моделирования блока «Шифратор»

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

Описание проекта на ЯОА

Весь проект состоит из множества файлов, которые мы объединяем при помощи одного, BlackPack.vhdl, он то и является верхней частью иерархии. Данный файл состоит из компонентов, которые мы объединяем в один файл с помощью операторов port map, которые и являются связывающими файлы нижней иерархии. Вышеуказанный файл является реализацией на языке описания аппаратуры спецификации всего устройства. Он состоит из entity, в котором описаны все входные и выходные сигналы данного продукта:

: in STD_LOGIC;: in STD_LOGIC;: in STD_LOGIC_VECTOR (8 downto 0);: out STD_Logic;: out STD_LOGIC.


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

Далее идет соединение блоков:

m1: rg port map (Str=>Str, DataRG=>Data, DataOut_RG=>Data_in, Reset=>Reset);

m2: mod2 port map (Str=>Str, Data_mod => Data_in, OK => OK);: GI port map (OK => OK, F => Clk);_k1 <= Data_in(7)& Data_in(6)& Data_in(5)& Data_in(4);_k2 <= Data_in(3)& Data_in(2)& Data_in(1)& Data_in(0);: Kod port map (Data_Kod => N_k1, K =>D_K);: UDC port map(Clk_in => Clk, K_in => D_K, Clk_out => Clk_out);: Rasp_imp port map(Clk=>Clk_out, Ready=>Ready, DataOut_R =>Data_n2);: BlockD port map(Data_B => Data_n2, DataOut_B => Data_m);: Kom_imp port map(Data_N=>N_k2, Data_BD=>Data_m, DataOut_K=>OutData);

Сигналы N_k1 и N_k2 являются промежуточными, которые приобретают значения старших четырех бит информации и младших соответственно.

Пример моделирования одного из наборов представлен на рис. 4.10. На вход поступает такой набор - Str (строб ввода), на который поступает сигнал тактовой частоты 65 МГц, Reset (сброс) устанавливает данное устройство в начальное состояния, когда он равен 1, а потом при установлении в 0 данное устройство начинает свою работу, и Data, которые и являются информационными данными, которые заносятся в регистр, после которого данные присваиваются переменной Data_in. Информационные данные поступают на блок проверки на нечетность, и если входные данные являются нечетным числом, то сигнал ОК равен 1, иначе 0. Этот сигнал дает старт для работы генератора импульсов clk с частотой 65 МГц. Импульсы с данной частотой поступают на управляемый делитель частоты. А параллельно с этим информационные данные разделяются на два полубита N_k1 и N_k2.


N_k1 <= Data_in(7)& Data_in(6)& Data_in(5)& Data_in(4);_k2 <= Data_in(3)& Data_in(2)& Data_in(1)& Data_in(0);


С помощью сигнала N_k1, который поступает на шифратор, определяется коэффициент деления частоты, D_K. Значение D_K поступает на управляемый делитель частоты, на выходе которого имеем сигнал clk_out, который представляет собой clk/D_K. Теперь с этого момента синхроимпульсом для распределителя является clk_out. После того, как сигнал Ready стал равен 1, это означает то, что распределитель импульсов готов к формированию сигнала Data_n2. Этот сигнал поступает на блок дизъюнкторов, где собственно и формируются импульсные последовательности, результатом его работы является сигнал Data_m. Он поступает на коммутатор импульсов, где при помощи сигнала N_k2 и определяется какой импульсной последовательности и будет равен выходной сигнал OutData.


Рисунок 4.10 - Пример моделирования


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

Полный текст (в теле пояснительной записки приводить полный текст не надо - его выносят в приложения).

BlackPack.vhdlIEEE;IEEE.std_logic_1164.all;osn is(Reset: in STD_LOGIC;: in STD_LOGIC;: in STD_LOGIC_VECTOR (8 downto 0);: out STD_Logic;: out STD_LOGIC);osn;osn of osn isMod2 is(Data_Mod: in STD_LOGIC_VECTOR (8 downto 0);: in std_logic;: out Std_logic;: out Std_logic);component Mod2;Kod is(_Kod: in STD_LOGIC_VECTOR (3 downto 0);: out STD_LOGIC_VECTOR (9 downto 0));component Kod;UDC is(K_in : in std_logic_vector(9 downto 0);_in: in std_logic;_out: inout std_logic := '0');component UDC;RG is(Reset:in std_logic;:in Std_logic;: in STD_LOGIC_VECTOR (8 downto 0);_RG: out STD_LOGIC_VECTOR (8 downto 0));component RG;GI is( Ok: in Std_logic;: buffer Std_logic);component GI;Rasp_imp is(Clk : in STD_LOGIC;: out STD_LOGIC;_R : out STD_LOGIC_VECTOR(6 downto 0));component Rasp_imp;BlockD is(Data_B: in STD_LOGIC_VECTOR (6 downto 0);_B: out STD_LOGIC_VECTOR (7 downto 0));component BlockD;Kom_imp is(Data_N: in STD_LOGIC_VECTOR (3 downto 0);_BD: in STD_LOGIC_VECTOR (7 downto 0);_K: out STD_LOGIC);component Kom_imp;Clk, OK, Clk_out : std_logic;Data_in : std_logic_vector (8 downto 0);N_k1, N_k2 : std_logic_vector (3 downto 0);Data_n2 : std_logic_vector (6 downto 0);Data_m : std_logic_vector (7 downto 0);D_K : STD_LOGIC_VECTOR (9 downto 0);: rg port map (Str=>Str, DataRG => Data, DataOut_RG => Data_in, Reset => Reset);: mod2 port map (Str=>Str, Data_mod => Data_in, OK => OK);: GI port map (OK => OK, F => Clk);_k1 <= Data_in(7)& Data_in(6)& Data_in(5)& Data_in(4);_k2 <= Data_in(3)& Data_in(2)& Data_in(1)& Data_in(0);: Kod port map (Data_Kod => N_k1, K =>D_K);: UDC port map(Clk_in => Clk, K_in => D_K, Clk_out => Clk_out);: Rasp_imp port map ( Clk => Clk_out, Ready => Ready, DataOut_R =>Data_n2);: BlockD port map(Data_B => Data_n2, DataOut_B => Data_m);: Kom_imp port map(Data_N => N_k2, Data_BD => Data_m, DataOut_K=> OutData);osn;.vhdlIEEE;IEEE.std_logic_1164.all;GI is(Delay : Time := 7.69 ns);( Ok: in Std_logic;: buffer Std_logic);GI;arch_GI of GI isClk : Std_logic :='0';_1: process: while (Ok='1')loop<= Clk;for Delay;<= not F;for Delay;loop L1;on Ok;process Clk_1;arch_GI;.vhdlIEEE;IEEE.std_logic_1164.all;Mod2 is(Str: in STD_logic;_Mod: in STD_LOGIC_VECTOR (8 downto 0);: out Std_logic;: out Std_logic);Mod2;arch_mod2 of Mod2 isNError : std_logic;(Str, Data_Mod)(Str'Event and Str='1') then<= not( Data_Mod(0) xor Data_Mod(1) xor Data_Mod(2) xor Data_Mod(3) xor Data_Mod(4) xor Data_Mod(5) xor Data_Mod(6) xor Data_Mod(7) xor Data_Mod(8));if;process;<= NError;<= not NError;arch_mod2;.vhdlIEEE;IEEE.std_logic_1164.all;RG is(Reset: in std_logic;:in Std_logic;: in STD_LOGIC_VECTOR (8 downto 0);_RG: out STD_LOGIC_VECTOR (8 downto 0));RG;arch_RG of RG isData : std_logic_vector (8 downto 0);(Str, Reset, DataRG)Reset='1' then Data <= "000000000";(Str'event and Str='1') then<= DataRG;if;process;_RG <= Data;arch_RG;.vhdlIEEE;IEEE.std_logic_1164.all;Kod is(Data_Kod: in STD_LOGIC_VECTOR (3 downto 0);: out STD_LOGIC_VECTOR (9 downto 0));Kod;arch_kod of Kod is(Data_Kod)Data_Kod is"0001" => K <= "1111110010";"0010" => K <= "1111100110";"0100" => K <= "1100110011";"0101" => K <= "1011011100";"1000" => K <= "1010000100";"1001" => K <= "1000100110";"1010" => K <= "0111100010";others => null;case;process;arch_kod;.vhdlIEEE;IEEE.STD_LOGIC_1164.all;ieee.std_logic_unsigned.all;UDC is(K_in : in std_logic_vector(9 downto 0);_in: in std_logic;_out: inout std_logic := '0');UDC;arch_UDC of UDC is(clk_in, K_in)rise_count:std_logic_vector(9 downto 0):="0000000001";rising_edge(clk_in)then_count:=rise_count+'1';rise_count=(K_in+'1') then_count:="0000000001";_out<=not clk_out;if;if;process;arch_UDC;_imp.vhdlIEEE;IEEE.STD_LOGIC_1164.all;ieee.std_logic_unsigned.all;Rasp_imp is(Clk : in STD_LOGIC;: out STD_LOGIC;_R : out STD_LOGIC_VECTOR(6 downto 0));Rasp_imp;arch_imp of Rasp_imp isData : std_logic_vector (7 downto 0):= "00000000";(Clk)d: integer:=7;(Clk'event and Clk = '1') thend is0 => Data <= "10000000";1 => Data <= "01000000";2 => Data <= "00100000";3 => Data <= "00010000";4 => Data <= "00001000";5 => Data <= "00000100";6 => Data <= "00000010";7 => Data <= "00000001";others => Data <= "00000000";case;<= Data(0);_R <= Data(7) & Data(6) & Data(5) & Data(4) & Data(3) & Data(2) & Data(1);:= d - 1;d=-1 then d:=7;if;if;process;arch_imp;.vhdlIEEE;IEEE.std_logic_1164.all;BlockD is(Data_B: in STD_LOGIC_VECTOR (6 downto 0);_B: out STD_LOGIC_VECTOR (7 downto 0));BlockD;arch_bd of BlockD is_B(0) <= Data_B(6) or Data_B(2) or Data_B(1) or Data_B(0);_B(1) <= Data_B(5) or Data_B(4) or Data_B(3);_B(2) <= Data_B(6) or Data_B(5) or Data_B(2) or Data_B(1);_B(3) <= Data_B(6) or Data_B(5) or Data_B(4) or Data_B(1) or Data_B(0);_B(4) <= Data_B(5) or Data_B(3) or Data_B(2);_B(5) <= Data_B(6) or Data_B(5) or Data_B(4) or Data_B(3);_B(6) <= Data_B(3) or Data_B(2) or Data_B(1) or Data_B(0);_B(7) <= Data_B(6) or Data_B(4) or Data_B(2) or Data_B(0);arch_bd;

Kom_imp.vhdlIEEE;

use IEEE.std_logic_1164.all;Kom_imp is(Data_N: in STD_LOGIC_VECTOR (3 downto 0);_BD: in STD_LOGIC_VECTOR (7 downto 0);_K: out STD_LOGIC);Kom_imp;arch_kom of Kom_imp is(Data_N, Data_BD)Data_N is"0110" => DataOut_K <= Data_BD(0);"0111" => DataOut_K <= Data_BD(1);"0101" => DataOut_K <= Data_BD(2);"1000" => DataOut_K <= Data_BD(3);"1001" => DataOut_K <= Data_BD(4);"1100" => DataOut_K <= Data_BD(5);"0011" => DataOut_K <= Data_BD(6);"0010" => DataOut_K <= Data_BD(7);others => null;case;process;arch_kom;

Отладка описания

Для проведения моделирования целесообразно воспользоваться утилитой, предоставляемой системой Active-HDL, а именно средой TestBench, которую схематично можно представить следующим образом:


Рисунок 4.11 - Система тестирования VHDL-моделей


Структура тестовой программы при этом описывается на VHDL так, как если бы она сама была цифровой системой. Верификация выполняется в соответствии с планом верификации. Он представляет собой некую таблицу, которая описывает режимы работы действия устройства. В данном проекте существует 3 режима работы: «Старт», «Стоп», «Генерация». Рассмотрим верификацию этих режимов более подробно.

Режим «Старт». Данный режим представлен в таблице 4.9, а результаты, которые были получены в процессе моделирования, представлены на рисунках 4.12 и 4.13.


Таблица 4.9 - Таблица верификации режима «Старт»

ResetDataOKStrClk_outReadyДействие1XXXXXXXXXUXUUобщий сброс000010011010-10-11устройство готово к генерации импульсов

Рисунок 4.12 - Временная диаграмма верификации режима «Общий сброс»


Рисунок 4.13 - Временная диаграмма верификации режима «Устройство готово к генерации импульсов»


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

Режим «Стоп». Данный режим представлен в таблице 4.10, а результаты, которые были получены в процессе моделирования, представлены на рисунках 4.14 и 4.15.


Таблица 4.10 - Таблица верификации режима «Стоп»

DataOKClkДействие1001001100constостановка работы генератора импульсов0001001101clockвозобновление работы генератора импульсов

Рисунок 4.14 - Временная диаграмма верификации режима «Остановка работы генератора импульсов»


Рисунок 4.15 - Временная диаграмма верификации режима «Возобновление работы генератора импульсов»


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

Режим «Генерация». Данный режим представлен в таблице 4.11, а результаты, которые были получены в процессе моделирования, представлены на рисунках 4.16 и 4.17.


Таблица 4.11 - Таблица верификации режима «Генерации»

DataD_KClk_outResetClkDataOut00010011099865,13 kHz065 MHz1110001110100101482134,85 kHz065 MHz0110011

Рисунок 4.16 - Временная диаграмма верификации результата моделирования входного набора 110100101


Рисунок 4.17 - Временная диаграмма верификации результата моделирования входного набора 000100110


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

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

Схемная реализация

Синтез и оптимизация проекта

Синтез проводился с использованием системы синтеза Synplify 7.0 Pro фирмы Synplicity. Результатом синтеза является RTL схема вентильного уровня, схема Technology View и файл отчета. RTL - схема и отчет приведены в приложениях.


RTL - схема блока проверки на нечетность


RTL - схема блока «Шифратор»

RTL - схема устройства


Постсинтезное моделирование

Для проведения постсинтезного моделирования необходимо сгенерировать файл с расширением *.vhm, содержащий описания списка соединений на VHDL. (по умолчанию после выполнения синтеза генерируется файл в формате edif, однако данный формат недостаточно изучен и менее нагляден. Поэтому в Synplify предусмотрена возможность генерировать файлы со списками соединений либо в формате VHDL, либо в формате Verilog.).

Далее в Active-HDL выбирается режим поддержки множественных интерфейсов (Multiple-Unit) и соответствующая архитектура верхнего уровня. Результаты моделирования блоков проверки на нечетность и «шифратора» приведены на рис.4.18 и рис.4.19 соответственно.


Рисунок 4.18 - Временная диаграмма постсинтезного моделирования блока проверки на четность

Рисунок 4.19 - Временная диаграмма постсинтезного моделирования блока «Шифратор»


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

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


Рисунок 4.20 - Временная диаграмма постсинтезного моделирования всего устройства


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

Реализация и программирование

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


ПЕРЕЧЕНЬ ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ


1.Перспективы развития вычислительной техники: В 11 кн.: справ. пособие / Под ред. Ю.М. Смирнова. Кн.6: специализированные ЭВМ. - М.: Высш. шк.; 1989. - 144 с.

2.Лямец В.И., Тевяшев А.Д. Системный анализ: Учеб. пособие. - Харьков: ХТУРЭ, 1998. - 252 с.

3.Лобода В.Г. и др. Проектирование встроенных устройств на микропроцессорах: Учеб. пособие. - К.: УМК ВО, 1988. - 128 с.

4.Методы автоматизированного проектирования специализированных микропроцессорных устройств: Учеб. пособие / В.А. Гулиус, В.Г. Лобода и др. - Харьков: ХТУРЭ, 2001. - 228 с.

5.Коровин Б.Г. и др. Системы программного управления промышленными установками и робототехническими комплексами: Учеб. пособие. - Л.: Энергоатомиздат, 1990. - 352 с.

6.Применение управляющих вычислительных машин : / А.Н. Морозевич и др. - Мн.: Выш.шк., 1988. - 238 с.

7.Каляев А. В. Многопроцессорные системы с программируемой архитектурой. - М.: Радио и связь, 1984. - 240 с.

8.Неслуховский К.С. Цифровые дифференциальные анализаторы. - М. : Машиностроение, 1968. - 260 с.

9.Цифровые аналоги для систем автоматического управления / Под.ред. А.А. Воронова. - М.:,Л.: АН СССР, 1960. - 196 с.

10.Рабинович З.Л., Раманаускас В.А. Типовые операции в вычислительных машинах. - К. : Техніка, 1980. - 264 с.

11.ГСТУ 3008 - 95. Документация. Отчёты в сфере науки и техники. Структура и правила оформления. Госстандарт Украины. Киев, 1995.

12.Балашов Е.П. и др. Микро- и мини ЭВМ: Учеб. пособие. - Л.: Энергоатомиздат, 1984. - 376 с.

13.Бибило П.Н. Основы языка VHDL. - М.: Солон-Р, 2000. - 200 с.

14.Ткаченко С. Н., Лобода В.Г., Блогадарный Н.П. Основы построения микропроцессорных систем. - МО СССР, 1987. - 240 с.

15.Гуртовцев А.Л., Гудыменко С.В. Программы для микропроцессоров: Справочное пособие. - Мн.: вш, 1989. - 352 с.

16.Майоров В.Г., Гаврилов А.И. Практический курс программирования микропроцессорных систем. - М.: Машиностроение, 1989. - 272 с.

.Спец ЦВМ: Учебник для вузов/ Смолов В.Б. и др.; Под редакцией В. Б. Смолова. - М.: Высшая школа 1981. - 280 с.

.IEEE VHDL STD 1076-1993 Language Reference Guide

.Белоус А.И. и др. Микропроцессорный комплект БИС серии К1815 для ЦОС: справочник. - М.: Радио и связь, 1992. - 256 с.


МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ УКРАИНЫ ХАРЬКОВСКИЙ НАЦИОНАЛЬНЫЙ УНИВЕРСИТЕТ РАДИОЭЛЕКТРОНИКИ Методические указания

Больше работ по теме:

КОНТАКТНЫЙ EMAIL: [email protected]

Скачать реферат © 2018 | Пользовательское соглашение

Скачать      Реферат

ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ