Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

1531

.pdf
Скачиваний:
2
Добавлен:
15.11.2022
Размер:
52.65 Mб
Скачать

library ieee;

use ieee.std_logic_1164.all;

use ieee. std_logic_unsigned.all;

entity example is port(clk: in std_logic;

X:in std_logic;

Y:out std_logic

);

end;

architecture RTL1 of example is

signal cnt: std_logic_vector(3 downto 0); begin

operation1: process (clk) --операция нумерации тактов от 0 до 13 begin

if X=’0’ then -- условие асинхронной инициализации cnt<=”0000”;

elsif rising_edge(clk) then -- условие синхронной работы

if cnt /=13 then cnt<= cnt +1; end if;

end if;

end process;

operation2: process (clk) --формирование Y begin

if X=’0’ then Y <=’0’;

elsif rising_edge(clk) then

if (cnt=0) or (cnt=1) or (cnt=6)

or (cnt=8) or (cnt=9) or (cnt=10) or (cnt=11) then Y <= ’1’;

else

Y <= ’0’; end if; end if;

end process; end RTL1;

Второй вариант реализации архитектуры основан на сдвиговом регистре s_registr, выполняющем роль одноразрядной памяти магазинного типа. Эта память по сигналу Х запоминает по тактам временную диаграмму для сигнала Y, подключенного к старшему разряду s_registrt(11) (это реализует параллельный оператор присвоения Y <= s_registrt(11);), далее вы-

111

полняется сдвиг s_registrt в сторону старших разрядов по фронту clk. На рис. 60 приведена временная диаграмма работы этого варианта описания устройства, а ниже текст на VHDL.

Рис. 60. Временная диаграмма второго варианта описания

architecture RTL2 of example is

signal s_registr: std_logic_vector(11 downto 0); begin

Y <= s_registr(11); shift: process (clk) begin

if X =’0’ then s_registr<=”110000101111”; elsif rising_edge(clk) then

s_registr (11 downto 1)<= s_registr(10 downto 0); s_registr(0)<=’0’;

end if;

end process; end RTL2;

Третий вариант реализации архитектуры, в котором частота clk в два раза меньше, чем в предыдущих двух вариантах. Для формирования полутактовых интервалов поэтому потребовалось ввести три однобитных вспомогательных сигнала op1, op2, op3, разрядность cnt уменьшилась с четырех до трех разрядов. На рис. 61 приведена временная диаграмма работы этого варианта описания устройства, а ниже текст на VHDL.

112

Рис. 61. Временная диаграмма третьего варианта описания

architecture RTL3 of example is

signal cnt: std_logic_vector(2 downto 0); signal op1, op2, op3: std_logic;

begin

Y <= op1 or (op2 xor op3); -- выражение (op2 xor op3) формирует полутактовый

-- импульс, а op1 все остальные control: process (clk)

begin

if X =’0’ then cnt<=”000”;

elsif rising_edge(clk) then if cnt /=7 then

cnt<= cnt +1; end if;

end if;

end process; operation1: process (clk) begin

if X =’0’ then op1<=’0’;

elsif rising_edge(clk) then

if (cnt=0) or (cnt=4) or (cnt=5) then op1<= ’1’;

else op1<= ’0’; end if; end if;

end process; operation2: process (clk) begin

if (X =’0’) or (op3=’1’) then op2<=’0’;

elsif rising_edge(clk) then if cnt=3 then

op2<= ’1’; end if; end if;

end process;

113

operation3: process (clk) begin

if X =’0’ then op3<=’0’;

elsif falling_edge(clk) then if cnt=4 then

op3<= ’1’; else op3<= ’0’; end if; end if;

end process; end RTL3;

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

1.12. Интегрированная среда разработки аппаратных средств Active-HDL

Автоматизированное проектирование – это магистральное направление развития технологий создания электронной аппаратуры [22]. До недавнего времени образцом решения таких задач считались разработки на базе серийно выпускаемых стандартных интегральных микросхем и большинство САПР ориентировались на реализацию именно этой технологии проектирования. Идеальным вариантом казались «сквозные» САПР, которые позволяли выполнить всю цепочку проектирования: от входного описания до создания эскиза печатной платы. Примерами сквозных САПР являются PCAD, DesignLab и OrCAD.

В последние годы набирают силу новые технологии проектирования электронной аппаратуры, основанные на современных персональных компьютерах, интегрированных САПР и программируемой логике. Яркий представитель таких САПР нового поколения – это интегрированная среда проектирования Active-HDL. Ее отличает особая

114

легкость и «элегантность» в работе. Фирма ALDEC, создатель этого программного продукта, год от года совершенствует свое детище и наделяет его новыми возможностями.

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

ния оборудования VHDL, Verilog/SystemVerilog, EDIF и SystemC. Она содержит инструменты для входа в систему, компиляторы VHDL и Verilog, отдельное ядро моделирования, несколько стандартных и продвинутых инструментов отладки, программы просмотра результатов моделирования в графической и текстовой формах. Также содержит вспомогательные утилиты для упрощения управления ресурсными файлами, проектами и библиотеками проектов; также встроенные интерфейсы для запуска моделирования, синтеза, управления версиями исходных файлов, взаимодействия со средствами поддержки моделей сторонних производителей. На рис. 62 показаны инструменты и ком-

поненты Active-HDL.

Рис. 62. Инструменты и компоненты Active-HDL

115

Console (консоль). Окно консоли является интерактивным механизмом для ввода макрокоманд Active-HDL и пользовательских скриптов, вывода сообщений, генерируемых инструментами Active-HDL.

Workspace/Design Explorer (анализатор рабочей области/проекта) позволяет администрировать проекты Active-HDL, так что нет необходимости беспокоиться оместе нахождения файловна компьютере.

Design Browser (программа просмотра проекта). Окно просмотра показывает содержимое текущего проекта:

ресурсные файлы, прикрепленные к проекту;

рабочие библиотеки по умолчанию;

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

VHDL-, Verilog- и EDIF-объекты, объявленные внутри выбранной области текущего проекта.

Design Flow Manager (менеджер процесса проектирования) помогает автоматизировать обработку Active-HDL проектов. Он показывает типовую последовательность проектирования в форме диаграммы. Встроенные в диаграмму программные кнопки вызывают приложения, участвующие в преобразованиях.

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

HDL Editor (редактор HDL) – это текстовый редактор. Он индицирует специфические синтаксические категории различными цветами. Редактор неразрывно интегрирован с симулятором для получения возможности отлаживать исходный код.

State Diagram Editor (редактор диаграммы состояний) – это графическое средство разработано для редактирования графов переходов автоматов. Редактор автоматически транслирует графически спроектированный граф в VHDLили Verilog-код.

Waveform Viewer/Editor (программа просмотра/редактирования временной диаграммы) показывает результаты моделирования в виде временной диаграммы. Она дает возможность графической редакции временной диаграммы как требуемых текстовых векторов.

Block Diagram Editor (редактор блок-диаграмм) является графическим инструментом для создания блок-диаграмм. Он автоматически транслируетграфически представленнуюсхему в VHDLили Verilog-код.

116

Окно List (список) показывает результаты моделирования в табличном текстовом формате. Это позволяет выполнять трассировку результатов с точностью до дельта-цикла.

Окно Watch (наблюдение) показывает текущие значения выбранных объектов VHDL или Verilog во время моделирования.

Окно Processes (процессы) показывает текущий статус параллельных процессов в окончательном проекте во время моделирования.

Окно Call Stack (стека вызовов) является инструментом отладки, показывающим список подпрограмм (процедур и функций), выполняемых в текущем процессе.

Library Manager (администратор библиотеки) разработан для управления библиотеками и их содержанием.

Окно Dataflow (поток данных) является инструментом для отображения в графической форме последовательности входных и выходных сигналов процессов во время моделирования.

Окно Memory View (просмотр памяти) является инструментом для отображения содержимого памяти (двумерных объектов), объявленной в проекте.

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

Code Coverage (покрытие кода VHDL) позволяет с помощью испытательных программ (test bench) определять выполнение исходного кода.

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

Source Revision Control (управление версиями) – это интерфейс взаимодействия с профессиональной системой управления версиями проекта.

Вопросы для самоконтроля

1.Когда целесообразно использовать реконфигурируемую логику?

2.Как в реконфигурируемой логике реализуется многообразие логических функций?

117

3.Почему для моделирования и синтеза используются разные подмножества языка VHDL?

4.Почему одна entity может содержать несколько архитектурных

тел?

5.Почему оператор присваивания значения сигналу в одном случае является последовательным, а в другом параллельным?

6.В чем суть различия переменной и сигнала?

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

8.Какова роль списка чувствительности в операторе process?

9.В каком варианте используется оператор wait для синтеза?

10.В чем суть событийного моделирования?

11.Что моделирует сила сигнала?

12.Что означает второе свойство модели программно-управляемо- го автомата об ее рекурсивности?

118

ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ВСТРОЕННЫХ СИСТЕМ

Модуль 3. Прикладное программирование

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

ки плат (BSP – board support package), операционные системы (ОС)

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

Драйверы устройств – это библиотеки программ для инициализации аппаратных средств, управления доступа к ним элементами вышестоящего уровня.

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

Встроенные системы часто напрямую не взаимодействуют с человеком, как персональные компьютеры. Как следствие, совокупность необходимых сервисов ОС, в которых они нуждаются, может быть очень разной. Microsoft Windows, MacOS X и Linux сегодня являются доминирующими ОС для персональных компьютеров общего назначения. Они обеспечивают сервисы, которые для встроенных MPS могут потребоваться, а могут и нет. Например, многие встроенные приложения не требуют графического интерфейса пользователя (GUI), файловой системы, управления фонтами и даже сетевого стека.

Несколько ОС были спроектированы специально для встроенных приложений: Windows CE (WinCE) от Microsoft, VxWorks от WindRiver Systems (приобретена Intel в 2009 г.), QNX от QNX Software Systems (приобретена в 2010 г. Research in Motion (RIM)), Embedded

119

Linux (поддерживает открытое сообщество) и FreeRTOS (поддерживает другое открытое сообщество). Эти ОС разделяют много особенностей с ОС общего назначения, но обычно имеют специализированное ядро ОС реального времени (RTOS). RTOS обеспечивает ограниченную задержку при выполнении подпрограмм обработки прерываний и программы планировщика для процессов с ограничениями реального времени.

Мобильные ОС являются третьим классом ОС, спроектированных для управления такими устройствами, как мобильные телефоны и карманные компьютеры. Примерами являются Symbian OS (открытая с поддержкой Symbian Foundation), Android от Google, BlackBerry OS от RIM, iPhone OS от Apple, Palm OS от Palm, Inc. (приобретена Hewlett Packard в 2010 г.) и Windows Mobile, Windows Phone от Microsoft. Эти ОС имеют специальную поддержку для беспроводного взаимодействия и мультимедиаформатов.

Рис. 63. Варианты уровневых моделей встроенных систем

120

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]