Skip to main content
UDHTU

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

Проектирование компьютерных систем. Типы данных. Методы проектирования.

Тенденции развития цифровых устройств

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

1) непрерывемое повышение числа логических элементов

2) одновременное снижение удельной стоимости одного логического элемента

Увеличение числа ЛЭ непрерывно открывает возможности создания всё более сложных цифровых устройств, размещаемых на одном кристалле.
 
К основным положительным результатам этой тенденции можно отнести: - постоянное расширение функциональных возможностей и улучшение потребительских свойств конечных изделий;
 
-уменьшение габаритов и потребляемой мощности;
 
-повышение надежности.
 
Закон Мура
 
Количество элементов на кристаллах электронных микросхем удваивается каждый год Корпус 1760-pin FBGA D = 42,50;
 
E= 42,50;
 
А = 3,50;
 
e = 1,00;
 
Следствие закона Мура
Стоимость одного транзистора на кристаллах массовых микросхем уменьшается по экспоненциальному закону Изменения в составе элементной базы Отражением тенденции развития цифровых устройств явились:
-переход от интегральных микросхем (ИМС) малой и средней степени интеграции к большим (БИС) и сверхбольшим (СБИС) интегральным микросхемам;
-появление микропроцессоров, что дало мощный толчок к внедрению цифровых технологий обработки информации во всех сферах человеческой деятельности.
 
Однако применение микропроцессоров имеет существенный недостаток, связанный с тем, что решение любой задачи микропроцессором всегда состоит из последовательности шагов конечной длительности, в то время как для решения многих задач (в том числе связанных и с обеспечением работы самих микропроцессоров) требуются устройства с минимальной задержкой выполнения логических функций.
 
Способы создания быстродействующих устройств
Выделяют три способа:
1) использование наборов стандартной цифровой логики общего применения и типовых периферийных СБИС;
 
2) применение заказных СБИС;
 
3) использование полузаказных СБИС (базовых матричных кристаллов (БМК) и СБИС программируемых логических интегральных микросхем (ПЛИС)).
 
Преимущества ПЛИС:
-меньшая стоимость и сложность цикла допроектирования и специализации ПЛИС;
 
-возможность внесения изменений в проект на любой стадии проектирования и изготовления специализированной ПЛИС;
 
-возможность перепрограммирования ПЛИС после ее распайки на плате;
 
-отсутствие необходимости в сложном технологическом оборудовании.
 
Традиционные методы
 
Традиционные методы подразделяют на:
-проектирование с помощью булевых функций;
 
-схемотехническое проектирование.
 
Проектирование с помощью булевых функций требует наличия логической функции для каждого входа триггера и блока логических вентилей.
 
Теоретически любая цифровая схема может быть представлена с помощью системы логических функций.
 
Разработано много методов для автоматизации этого процесса.
 
Недостатком является большая сложность работы с тысячами булевых уравнений, которые требуются для современных проектов.
 
Схемотехнические методы проектирования упрощают, по сравнению с применением булевых функций, создание цифровых схем, поскольку позволяют более ясно представить связи между различными компонентами и блоками.
 
Недостатком традиционного схемотехнического проектирования является повышенная трудоемкость создания принципиальных схем всех компонентов проекта.
 
Анализ устройств, описание которых содержит тысячи компонентов или логических функций, практически невозможен.
 
По утверждениям американских специалистов для нормального восприятия описания устройства количество компонентов или логических функций не должно превышать 6000.
 
Однако современные интегральные схемы содержат миллионы логических элементов и их количество продолжает расти;- значительная трудоемкость проектирования цифровых устройств.
 
Новые методы проектирования Новые методы подразделяют на: схемотехническое проектирование с использованием САПР;
 
-применение языков описания аппаратных средств;
 
-описание устройства с использованием временных диаграмм его работы;
 
-применение диаграмм состояний для описания работы последовательных устройств.
 
Схемотехническое проектирование с использованием САПР 
 
В настоящее время в САПР можно выделить восемь видов компонентов: - примитивы;
 
- макрофункции;
 
- мегафункции;
 
- параметризированные модули;
 
- компоненты MegaWizard;
 
- компоненты пользователя;
 
- компоненты MegaCore;
 
- компоненты IP (Intellectual Property).
 
 
Для решения этой проблемы были созданы языки описания аппаратуры (ЯОА, HDL), помогающие при проектировании цифровых систем.
 
ЯОА находят свое потенциальное применение при использовании ПЛИС (цифровых, аналоговых).
 
На сегодняшний день используется десятки HDL-языков: VHDL, AHDL, Verilog, Abel и др.
 
VHDL предназначен для описания проектов различной степени сложности – от простейшего вентиля до целой системы.
 
С его помощью можно строить модели на различных уровнях иерархии, выполнять имитационное моделирование и генерировать временные диаграммы, вести строгое документирование проекта, осуществлять синтез структуры по поведенческому описанию, верифицировать проект формальными методами.
 
Описание устройства с использованием временных диаграмм его работы Применяют, когда синтез устройства или описание принципа его работы затруднено.
 
Суть метода состоит в том, что вводят определенные комбинации входных сигналов и сопоставляют им по определенным правилам соответствующие комбинации выходных.
 
В результате компиляции получают на выходе законченный функциональный узел, который может использоваться в качестве примитива в других проектах.
 
Применение этого метода целесообразно для синтеза устройств, имеющих небольшое количество входных и выходных сигналов, так как при большом количестве описание устройства становится очень сложным и их синтез требует значительных затрат времени.
 
Если описание векторов воздействия не помещается на один экран, то следует перейти к описанию модели на ЯОА.
 
Описание устройства с использованием временных диаграмм его работы Применение диаграмм состояний для описания работы устройств Любое цифровое последовательное устройство может быть представлено в виде конечного цифрового автомата.
 
Описание работы такого устройства сводится к указанию с учетом строгих правил всех состояний автомата и дуг переходов.
 
В результате работы САПР формируется HDL описание, которое в дальнейшем используется обычными методами.
 
Типы данных
 
Тип - это множество значений с общим признаком.
 
VHDL - строго типизированный язык.
 
Каждый объект объявляется со своим типом и может присваивать значение только данного типа.
 
Благодаря этой особенности, программы VHDL имеют высокую надежность и обеспечивают экономию времени при отладке.
 
Подтип - подмножество значений данного типа.
 
Выделяют следующие типы данных языка VHDL:
 
- скалярные (scalar_type);
 
- составные (composite_ type);
 
- указатели (access_type);
 
- файлы (file_type);
 
- защишенные (рrotected_type).
 
В лекции рассматриваются только те данных, которые поддерживаются средствами синтеза ПЛИС.
 
Скалярные типы
 
Скалярные типы создают значения, которые нельзя разбить на отдельные элементы или поля.
 
scalar_type_definition ::= enumeration_type_definition - перечисления;
 
| integer_type_definition-- целые значения;
 
| floating_type_definition -- действительные значения;
 
| physical_type_definition-- значения, имеющие размерность.
 
Все скалярные типы и их подтипы определяются через диапазон своих значений.
 
Перечисления
 
Перечисления состоят из списка значений, которые могут быть символами или идентификаторами.
 
enumeration_type_definition ::= (enumeration _literal { , enumeration _literal } ) enumeration _literal ::= identifier | character_literal В САПР Quartus перечисления описывают по шаблону: TYPE <name> IS (<enum_literal>, <enum_literal>, ...);
 
Например: TYPE LOGIC_VOLTIS ('0', '5', 'z', 'x');
 
TYPE MULTI_LEVEL_LOGICis (LOW, HIGH, RISING, FALLING);
 
Вводимые имена перечислений не должны совпадать с предопределенными в языке именами перечислимых типов.
 
Значения перечислений не должны совпадать.
 
Перечисления
 
Весь список значений пронумерован слева направо, начиная с нуля, то есть каждое значение имеет соответствующую позицию в списке: Значения в разных перечислениях могут совпадать.
 
TYPE LIGHT IS (active, off, flashing);
 
Позиция: 012 Предопределенные перечисления Предопределенными перечислениями являются CHARACTER, BIT, BOOLEAN, SEVERITY_LEVEL, FILE_OPEN_KIND, и FILE_OPEN_STATUS, специфицированные в пакете "standard": TYРЕ CHАRАCTЕR IS (NUL, SОH, ...);
 
TYРЕ BIT IS ('0', 'l');
 
TYРЕ BООLЕАN IS (FАLSЕ, TRUЕ);
 
TYРЕ SЕVЕRITY_LЕVЕL IS (NОTЕ, WARNING, ERROR, FAILURE);
 
TYPE FILE_OPEN_KINDis (READ_MODE, WRITE_MODE, APPEND_MODE);
 
TYPE FILE_OPEN_STATUSis (OPEN_OK, STATUS_ERROR, NAME_ERROR, MODE_ERROR);
 
Примечание - Значения bооlеаn (ложный и истинный) не идентичны логическим '0' и '1'.
 
Перечисления для цифровой техники В пакете «std1164» предопределены перечисления std_ulogic (неразрешимый логический тип с девятизначным алфавитом) и разрешимый подтип std_logic.
 
Перечисления STD_ULOGIC и STD_LOGIC TYРЕ STD_ULОGIC IS ( 'U', -- неинициализированное значение;
 
'X',-- неопределенное значение источника с малым выходным сопротивлением;
 
'0',-- уровень «0» источника с малым выходным сопротивлением;
 
'1',-- уровень «1» источника с малым выходным сопротивлением;
 
'Z‘,-- высокоимпедансное состояние;
 
'W',-- неопределенное значение источника с большим выходным сопротивлением;
 
'L',-- уровень «0» источника с большим выходным сопротивлением;
 
'H',-- уровень «1» источника с малым выходным сопротивлением;'-'-- произвольное);
 
Подтип STD_LOGIC определен как: SUBTYPE STD_LOGIC IS RESOLVED STD_ULOGIC.
 
Целые числа
 
Тип целого задается через диапазон целых чисел.
 
integer_type_definition ::= range_constraint Обычно этот диапазон находится между- 2.147.483.648 и+ 2.147.483.647 (диапазон 32- разрядного целого).
 
В САПР QUARTUS целые числа описывают по шаблону: TYPE <name> IS RANGE <low> TO <high>;
 
Пример описания целых чисел: TYPE GROUP_INTEGER IS RANGE - 1025 TO 1025;
 
Предопределенным целым типом является integer, который специфицирован в пакете "standard" как: TYРЕ INTEGER IS RANGE - 2147483648TO 2147483647.
 
Целые числа В пакете "standard» специфицированы и предопределенные подтипы natural и positive по шаблону: SUBTYPE __subtype name IS __type_name RANGE __low_value TO __high_value;
 
SUBTYPE NATURAL IS INTEGER RANGE0TO INTEGER' HIGH;
 
SUBTYPE POSITIVE IS INTEGER RANGE1TO INTEGER' HIGH.
 
Нельзя использовать имена предопределенных типов и подтипов для собственных определений.
 
Числа с плавающей запятой
 
Числа с плавающей запятой обеспечивают приближения к вещественным числам.
 
Числа с плавающей запятой применяют для моделей, в которых погрешность вычисления значений не важна или не определена.
 
floating_type_definition ::= range_constraint Примеры описания чисел с плавающей точкой: TYРЕ RESULT IS RANGE0.0 TO 11063.5;
 
SUBTYРЕ Р_RЕSULT IS RESULT RANGE 2765.88 TO 8297.63.
 
Предопределенным типом с плавающей точкой является real, который специфицирован в пакете "standard" как: TYРЕ RЕАL IS RANGE- 1.0Е38 TO 1.0Е38.
 
Тип real обеспечивает 64- разрядное представление чисел с плавающей точкой (1 разряд - знак числа, 11 разрядов - порядок, 52 разряда - мантисса).
 
Физические типы
 
Физические типы создают числа с реальными размерностями, кратными некоторой базовой единице.
 
Множество допустимых значений задается как диапазон целых чисел (базовых единиц).
 
Формат описания физических типов.
 
physical_type_definition ::= range_constraint units bаsе_unit_dеclаrаtiоn { sеcоndаry_unit_dеclаrаtiоn } еnd units;
 
bаsе_unit_dеclаrаtiоn ::= idеntifiеr ;
 
sеcоndаry_unit_dеclаrаtiоn ::= idеntifiеr = рhysicаl_litеrаl;
 
рhysicаl_litеrаl ::= [ аbstrаct_litеrаl ] unit_nаmе.
 
При объявлении физического типа сначала указывают базовую единицу размерности, а затем последующие единицы размерности как кратные базовой или предшествующим единицам.Физические типы при описании устройств на ПЛИС обычно не применяются из- за сложности конструктивной реализации. Применяются при создании векторов входных воздействий.
 
Предопределенным физическим типом является time, который специфицирован в пакете "standard".
 
Предопределенный тип TIME TYРЕ TIME IS RANGE - 9223372036854775808 TO 9223372036854775807 UNITS fs;-- femtosecond ps= 1000 fs;
 
-- picosecond ns= 1000 ps;-- nаnоsеcоnd us= 1000 ns;-- microsecond ms= 1000 us;-- millisecond sеc= 1000 ms;-- second min= 60 sеc;-- minute hr= 60 min;-- hour END UNITS;
 
Составные типы
 
Составной тип- это группа значений под одним именем.
 
composite_type_definition ::= array_type_definition-- массивы;
 
record_type_definition-- записи.
 
Массивы
 
Массивы объединяют элементы одного типа.Массивы могут иметь любую размерность.Тип элемента массива не может быть file.
 
Можно задать тип массива как с неопределенными, так и с определенными границами.Задание типа с неопределенными границами дает возможность создавать массивы, имеющие один и тот же тип, но различные границы индексов.
 
array_type_definition ::= unconstrained_array_definition| constrained_array_definition Описание массивов Массивы рекомендуется описывать по шаблону: TYPE __array_type_name IS ARRAY (INTEGER RANGE<>)ОF __type_name;
 
TYPE __array_type_name IS АRRАY (__integer DOWNTO __integer)ОF __type_name;
 
Пример двух эквивалентных описаний двумерного массива 3*4: TYPE ARRAY_M IS ARRAY (l TO3,7 DOWNTO4)OF POSITIVE;
 
TYPE ARRAY_M IS ARRAY (INTEGER RANGE1 TO3, INTEGER RANGE7 DOWNTO4)OF POSITIVE;
 
Каждая пара границ массива должна иметь одинаковый тип.
 
Элемент массива в свою очередь может быть массивом.
 
Описание массивов Задание типа с неопределенными границами - очень удобная возможность для описания аппаратуры.
 
Это дает как полную совместимость объектов данного типа, так и большую гибкость в параметризации описания.
 
Примерами таких типов могут служить предопределенные типы bit_vector и string, специфицированные в пакете "standard»: TYPE BIT_VECTORIS ARRAY (NATURAL RANGE<>)OF BIT;
 
TYPE STRING IS ARRAY (POSITIVE RANGE<>)OF CHARACTER;
 
Направление и границы диапазона индексов не содержатся в определении указанных типов и должны быть указаны непосредственно при объявлении объектов данных типов.
 
Записи
 
Записи - это составной тип данных, элементы которых могут иметь различные типы.
 
record_type_definition ::= record element_declaration { element_declaration } end record Все имена элементов (полей) записи должны быть различными.
 
Пример описания данных составного типа: TYPE rec_typeIS RECORD hour : INTEGER RANGE 0 TO24;
 
min: INTEGER RANGE 0 TO60;
 
per: day;
 
END RECORD;
 
Тип данных day описан как: TYPE day IS (morn, din, evn, night);
 
Функции преобразования типов данных Пакет arith содержит четыре функции для преобразования типов данных signed, unsigned, integer и std_ulogic.
 
Функция conv_integer преобразует типы данных integer, unsigned, signed или std_ulogic к типу integer.
 
Значения операндов функции conv_integer ограничивается диапазоном от- 2147483647 до 2147483647, т.е.
 
31- битное представление значения unsigned или 32- битное представление значения signed.
 
Функция conv_unsigned преобразует типы данных integer, unsigned, signed или std_ulogic в тип unsigned с указанием разрядности.
 
Функция conv_signed преобразует типы данных integer, unsigned, signed или std_ulogic в тип signed с указанием разрядности.
 
Функция conv_std_logic_vector преобразует типы данных integer, unsigned, signed или std_logic в тип std_logic_vector с указанием разрядности.

 

  1. Course Number

    UDHTU_CS
Enroll