Lola

Lola は、同期式デジタル回路を記述するよう設計された単純なハードウェア記述言語。ニクラウス・ヴィルトが開発した言語で、チューリッヒ工科大学の教授時代に計算機科学の学生にFPGA上のデジタル設計について教える道具として作ったものである。
Lola ではハードウェア部品の構造と機能を静的に記述し、部品間の接続を記述する。Lola のテキストは宣言と文から構成される。信号設定の形で論理回路レベルでハードウェアを記述する。信号は演算器を使って統合され別の信号となる。信号とその割り当ては型としてグループ化される。型のインスタンスがハードウェア部品となる。型を他の型の組み合わせで構成することもでき、それによって階層的設計が可能で、ジェネリックプログラミングの一種ということもできる（例えば、ワード幅の回路をパラメータ化するなど）。
以上のような概念は下記の例（二進加算器回路）に示されている。まず基本構成要素（codice_1）が定義され、次にその codice_2 を使ってワード幅 8 ビットのカスケードを宣言し、最後に複数の codice_2 を相互接続する。ここで定義されている codice_4 はより高次の設計の構成要素として使用可能である。
ヴィルトは、自著 "Digital Circuit Design" で Lola のユーザーから見た説明を行っている。Lola コンパイラの中身の詳細はヴィルトの技術レポート "Lola System Notes" にある。デジタル設計に関するツール全体の概要は技術レポート "Tools for Digital Circuit Design using FPGAs" にある（Lola に関するレポート "Lola: An Object-Oriented Logic Description Language" も含まれている）。