Лола (компьютер)
Парадигмы | Мультипарадигмальность : процедурная , императивная , структурированная , объектно-ориентированная. |
---|---|
Семья | Вирт Оберон |
Разработано | Никлаус Вирт |
Разработчик | ETH Цюрих |
Впервые появился | июнь 1995 г |
Дисциплина набора текста | Статический , сильный |
Объем | Лексический (статический) |
Язык реализации | Оберон |
Под влиянием | |
АЛГОЛ , Паскаль , Модульный |
Lola спроектирован как простой язык описания аппаратного обеспечения для описания синхронных цифровых схем . Никлаус Вирт разработал этот язык для обучения цифровому проектированию программируемых вентильных матриц (FPGA) студентов -компьютерщиков , будучи профессором ETH Zurich .
Целью Lola является статическое описание структуры и функций аппаратных компонентов и связей между ними. Текст Lola состоит из деклараций и утверждений . Он описывает аппаратное обеспечение цифровой электроники на уровне логических элементов в форме назначений сигналов . Сигналы объединяются с помощью операторов и присваиваются другим сигналам. Сигналы и соответствующие назначения могут быть сгруппированы в типы данных . Экземпляр типа — это аппаратный компонент. Типы могут состоять из экземпляров других типов, тем самым поддерживая иерархический стиль проектирования, и они могут быть универсальными , например, параметризуемыми с помощью ширины слова схемы.
Все упомянутые выше концепции продемонстрированы на следующем примере схемы сложения двоичных данных. Во-первых, фундаментальный строительный блок ( TYPE Cell ) определен, то это Cell используется для объявления каскада с шириной слова 8 и, наконец, Ячейки связаны друг с другом. Модуль MODULE Adder, определенный в этом примере, может служить строительным блоком на более высоком уровне иерархии проекта.
MODULE Adder;
TYPE Cell; (* Composite Type *)
IN x,y,ci:BIT; (* input signals *)
OUT z,co:BIT; (* output signals *)
BEGIN
z:=x-y-ci;
co:=x*y+x*ci+y*ci;
END Cell;
CONST N:=8;
IN X,Y:[N]BIT; ci:BIT; (* input signals *)
OUT Z:[N]BIT; co:BIT; (* output signals *)
VAR S:[N]Cell; (* composite type instances *)
BEGIN
S.0(X.0, Y.0, ci); (* inputs in cell 0 *)
FOR i:=1..N-1 DO
S.i(X.i,Y.i,S[i-1].co); (* inputs in cell i *)
END;
FOR i:=0..N-1 DO
Z.i:=S.i.z;
END;
co:=S.7.co;
END Adder.
Вирт описывает Лолу с точки зрения пользователя в своей книге Digital Circuit Design . Дополнительный взгляд на детали реализации компилятора Lola можно найти в техническом отчете Вирта Lola System Notes . Обзор всей системы инструментов для цифрового проектирования представляет собой технический отчет Tools for Digital Circuit Design using FPGA (содержащий копию отчета на языке Lola Lola: An Object-Oriented Logic Description Language ).