SFL: 高度なハードウェア記述言語
SFL(Structured Function description Language)は、主に同期式回路設計を対象としたハードウェア記述言語です。1980年代よりNTTによって開発され、現在では主に大学等で教育や研究用途に使用されています。その特徴は、単相同期式回路に特化した設計、プロセッサのパイプライン処理を意識したステートマシンの記述機能、そして
C言語に似た直感的な構文にあります。
SFLの構文と機能
SFLの構文は
C言語と多くの類似点があり、セミコロンで文を区切り、複数の文は`{`と`}`で囲みます。式の並びは
コンマで区切り、関数の引数は`(`と`)`で括ります。この親しみやすい構文は、ハードウェア記述言語に不慣れなユーザーにとっても学習コストを低く抑えることに貢献しています。
SFLにおける並行処理の記述は、Communicating Sequential Processes(CSP)とOccamの影響を強く受けています。これは、ハードウェア設計において重要な並行処理の記述を容易にするためです。特に、Occamからの影響は`par`という並列プリミティブに見て取れます。これは、複数の処理を同時に実行させるための記述子です。
SFLの開発と標準化
NTT電気通信研究所において、SFLの開発と同時に、SFLコードをハードウェア記述に変換する合成系であるPARTHENONシステムが開発されました。PARTHENONシステムは
Prologを用いており、独自の
Prolog処理系を含んでいます。その後、パルテノン研究会によって標準的なSFL仕様が策定され、「SFL仕様書」として公開されています。この仕様書は、SFLの開発・利用における統一的な基準を提供し、異なる実装間の互換性を高める役割を果たしています。
SFLの影響を受けたNSL
SFLは、後続のハードウェア記述言語にも影響を与えています。その代表例として、IP ARCH, Inc.が開発し、オーバートーン株式会社がサポートしているNSLがあります。NSLはSFLの設計思想を継承しつつ、いくつかの改良が加えられています。例えば、SFLの`par`プリミティブはNSLでは排除され、`{`と`}`を用いた簡潔な記述方法に置き換えられています。さらに、Occamの`SEQ`に相当する`seq`プリミティブが追加され、シーケンシャルな動作の記述が容易になっています。これは、より複雑なハードウェア設計に対応するための拡張と言えるでしょう。
SFLに関する資料
SFLに関する資料は、書籍やウェブサイトで公開されています。例えば、『はじめてのPARTHENON』(CQ出版)は、PARTHENONシステムを使ったSFL開発の入門書として役立ちます。また、『ULSIの効果的な設計法』のような書籍にもSFLに関する記述が含まれている場合があります。さらに、パルテノン研究会のウェブサイトには、SFL仕様書や関連情報が公開されています。これらの資料を活用することで、SFLの理解を深め、実践的な開発を行うことが可能です。インターネット上には、SFL仕様(BNFなど)や、構文図を示したSFL仕様書(ただし、オリジナル仕様書とは異なる部分があることに注意が必要です)も公開されています。また、NSLに関するチュートリアルもオンラインでアクセス可能です。
まとめ
SFLは、その簡潔な構文と並行処理への対応により、ハードウェア記述言語としての高い有用性を持ちます。
C言語に似た記述方法を採用することで、ハードウェア設計に不慣れな者でも比較的容易に学習でき、効率的な設計を可能にする点が大きな魅力です。現在でも大学等で活用され、後発の言語にも影響を与え続けているSFLは、ハードウェア設計の歴史において重要な役割を果たしてきたと言えるでしょう。 今後、ハードウェア記述言語の発展とともに、SFLも進化し続けることが期待されます。