SFL

SFL（Structured Function description Language）は、ハードウェア記述言語である。

概要

特徴 
記述対象を、単相の同期式回路に絞っていること、プロセッサのパイプライン等の記述を意識した、ステートマシンを記述できる言語機能を持っていること、などの特徴がある。

構文 
見た目は、文の最後にセミコロンを置く、複数の文をまとめるのは（VHDLやVerilogと違い）begin〜end ではなく "{" "}" である、式の並びはコンマで区切り、引数は "(" ")" で括る、など、C言語に似ている。

意味 
ハードウェア記述において重要である並行性については、CSPを参考にしておりOccamからの影響がみられる。

歴史 
1980年代よりNTTによって開発が進められ、現在は大学での利用が主である。

仕様 
「パルテノン研究会」により、標準的な仕様が策定され、「SFL仕様書」が配布されている。一部旧来の実装と異なる点がある。インクルードとマクロには言及していない。

実装 
NTT電気通信研究所で、言語の開発と同時に開発された合成系であるPARTHENONシステムや、sfl2vlなどがある。PARTHENONシステムではPrologを使っており、独自のProlog処理系を含んでいる。次に述べるNSLの実装であるNSL CoreにもSFLを受け付けるオプションがある。

NSL 
SFLの影響を受けたハードウェア記述言語に、IP ARCH, Inc. が開発し、オーバートーン株式会社がサポートしているNSLがある。SFLにはOccamの影響を受けた「par」という並列プリミティブがあったが、NSLではキーワードparを排して、単文のあるべき所に単に { } があれば並列動作とし、さらにSFLには存在しなかったOccamのSEQに相当するseqというシーケンシャルな動作（クロックドメインの動作）の記述のためのプリミティブがある。

文献 
 「はじめてのPARTHENON」（CQ出版『PARTHENON/CQ版』 ISBN 4-7898-3799-8 付属冊子）
 『ULSIの効果的な設計法』

外部リンク 
 パルテノン研究会
 PARTHENON
 SFL仕様(BNF等)
 SFL仕様書配布(上記の仕様を元に構文図にしたもので、仕様の原本ではないとのこと。なお、コメントが空文字と同じか、空白と同じか、等、相違がある)
 ip-arch.jp NSL Tutorial: Basic structure of NSL(ハワイにあるスタートアップとのことだが、ドメインはjpである)

ハードウェア記述言語