СОВРЕМЕННАЯ ЭЛЕКТРОНИКА №3/2013
В ВЕДЕНИЕ Язык VHDL давно утвердился в ка честве одного из двух основных язы ков проектирования цифровых сис тем (наряду с Verilog). Потребнос ти практики и развитие систем ав томатизированного проектирования постепенно дополняли и усложняли конструкции языка VHDL, который из начально предназначался для специ фикации и моделирования цифровых систем и схем. Стандарты VHDL’87, VHDL’93 были ориентированы на мо делирование, а затемприспособленыи для синтеза логических схем по VHDL описаниям проектируемых систем. Для потребностей синтеза пришлось ограничить число конструкций, т.е. выделить синтезируемое подмножест во конструкций языка (IEEE Std 1076.6 1999). Ведущие фирмы – производи тели САПР разработали средства, поз воляющие от исходного описания цифровой системы на синтезируемом подмножестве VHDL получать описа ния топологии кристаллов заказных СБИС либо конфигураций ПЛИС. В настоящее время одной из важней ших является проблема получения правильной (безошибочной) исход ной VHDL модели, по которой автома тически синтезируются логические схемы, размещаемые на кристал ле. Чтобы убедиться в правильности спецификации, VHDL моделирования оказывается недостаточно в силу боль шой размерности задачи и невозмож ПРОЕКТИРОВАНИЕ И МОДЕЛИРОВАНИЕ 74 WWW.SOEL.RU СОВРЕМЕННАЯ ЭЛЕКТРОНИКА ◆ № 3 2013 ности перебора всех последователь ностей входных тестовых векторов. Важность моделирования при этом возрастает, поскольку цена ошибки становится неприемлемо большой из за повторения технологического цик ла выпуска кристалла. Технологии верификации исходных описаний проектов бурно развивают ся. Предпринимаются попытки разра ботки языков более высокого уровня абстракции по сравнению с VHDL и Verilog. Но эти языки прочно занимают центральное место в проектировании, и производители САПР вынуждены учитывать данное обстоятельство. Для целей верификации в язык VHDL были добавленыновые средства и конструк ции, появились стандартыVHDL’2002 и VHDL’2008. Например, в VHDL’2008 [1] было добавлено 14 ключевых слов из языка PSL (Property Specification Lan guage), предназначенных для верифи кации с помощью аппарата утвержде ний (Assertion Based Verification). Проблема верификации вызвала по явление методологии OS VVM (Open Source VHDL Verification Methodolo gy) [2], предназначенной для написа ния «интеллектуальных» тестирующих программ. Методология OS VVM поз воляет реализовать функциональное покрытие и управляемую генерацию псевдослучайных тестов, используе мых при верификации функциональ ных блоков. В отличие от понятия по крытия VHDL кода ( code coverage ) или покрытия свойств ( property coverage ), в методологии OS VVM под функцио нальным покрытием понимается сбор значений переменных и сигналов VHDL проекта при выполнении моде лирования. Важное место в пакетах RandomPkg и CoveragePkg [3], специально создан ных для поддержки OS VVM, занимает тип protected (см. рисунок), появив шийся в стандарте VHDL’2002 и облег чающий написание тестирующих программ для функциональной вери фикации. Описание типа protected (за щищённого) и его использование при написании программ VHDL приводит ся ниже, при этом предполагается, что читатели знакомы с основами языка VHDL. О ПИСАНИЕ ТИПА PROTECTED Тип protected [1, 4, 5] базируется на концепции, похожей на классы в объектно ориентированном подходе, применяемом в других языках про граммирования. Тип protected упроща ет инкапсуляцию в VHDL коде, по скольку для него осуществляется: ● объединение элементов данных и операций, которые могут выпол няться над данными, в один объект; ● сокрытие деталей реализации типов данных от пользователей. Пользователи VHDL, которые нико гда не работали с защищёнными типа ми, могут легко представить их как спе циальнуюверсию типа record (запись), который позволяет включать процеду ры и функции дополнительно к обыч ным полям данных. Полное опреде ление типа protected состоит из двух частей: ● декларации типа protected ; ● тела (body) типа protected . Объявления в декларативной части типа могут включать декларации под программ (процедур и функций), спе цификации атрибутов и конструкции подключения, использующие ключе вое слово use . Тела подпрограмм объяв ляются в теле типа protected . В стандар те VHDL’2008 [1] подпрограммы, опи санные при декларации типа protected , названы методами. Ниже приведён пример декларации защищённого ти па COUNTER_TYPE: декларация типа type COUNTER_TYPE is protected procedure Set ( num : integer); procedure Inc; impure function get return integer; end protected COUNTER_TYPE; Элементы, объявленные внутри те ла типа protected , недоступны для ис пользования вне этого типа. Таким об Тип CovPType Пакет CoveragePkg Тип RandomPType Защищённый тип Protected Пакет RandomPkg OS-VVM Тип protected используется в методологии OS VVM Средства VHDL для функциональной верификации цифровых систем Николай Авдеев, Пётр Бибило (г. Минск, Белоруссия) В статье описан тип protected, облегчающий написание тестирующих программ, и приведены примеры его использования в языке VHDL.
RkJQdWJsaXNoZXIy MTQ4NjUy