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