部分的な非同期処理

通常のFPGAのデザインでは、1.5GHzものクロックを隅から隅までいきわたらせることはできない。そこで、個々のロジックブロック間を非同期ロジックにして、高クロックを供給するエリアをちいさめにしようというもの。
GALS(Globally Asynchronous Locally Synchronous)というアイデアとして、チップ内ネットワークとしての非同期ロジックはそれなりに検討されている。チップ内に多くのブロックが集積されるにつれて、回路ごとの動作速度は異なり、さらに電源制御への要求もある。
この会社(Achronix)は非同期ロジックという単語にネガティブな印象があるから独自の名称を付けている(picoPIPE)らしいが。。
素のFPGAで非同期ロジックの研究をしている例はときおり有る*1が、このFPGAのように積極的に非同期ロジックの利点を生かしたFPGAが出てきたときに、どのような環境改善があるのかは気になるところ。

プログラミングをどうすんのか

Achronixは論理合成ツールを自前では持たずに、Synplify Proのような既存のツールを使うらしい。
と、なると、新しい記述言語とかも多分用意していないわけで、表面上は本当に1.5GHzのグローバルクロックのあるFPGAとしてふるまい、配置配線のときに差し替えるのだろう。。
個人的にはI/O以外をクロックレスにするために、何か新しいアプローチが欲しい。
EPSONは自社のACT11プロセサや非同期SRAMのためにVerilogを拡張した言語を作った。ARM996HS(クロックレスのARM)も同様にCSPベースの新しい言語を作ったうえで、FPGAによる検証用の同期デザインも同じコードから生成している。
既存のHDLを用いたロジック開発では、レジスタを明示的に記述しそれを論理合成時にバランスして最適化するというアプローチを取っているが、これには限度がある。
非同期に特化したHDLを持つことは、非同期ロジックの高スキューであったり素子にバラツキがある環境でも動作するメリットを生かした、新しいプログラマブルロジックを生む可能性を感じる。

*1:FPGA Implementation of an Asynchronous Processor with Online and Offline Testing, ASYNC08 pp128--137等