Allianceを使った論理回路設計
フリーの上位合成ツール群Alliance(VHDLから論理回路へ)を使った論理回路設計に関する情報(清水先生@東海大提供)です。
17/03/12: 清水先生@東海大=1st draft
17/03/13: akita11=整形
17/09/29: akita11: Verilog->VHDLに関する情報を追記
VerilogHDLの利用について
Githubにひびきのルール向けのAllianceツールセットのパッチやセルライブラリなど、環境再構築に必要なデータをアップし始めています。Allianceのメインテナ Jean-Paulに、古い二層配線ツール scr の私のパッチ入りバージョンを、Alliance5に統合してもらったので、リリースされたら、もう少し簡単に使えるようになります。
LiveCygwinに各種ツールを入れておけば、ダウンロードだけで済むのですが、現在、ネットリストからベヘベアにバックアノテーションするツールYagleのWindowsバイナリ構築に問題があり(私がJean-PaulにCygwinではなく、mxeで作ってくれと言ったのですが、fork・killなどのシステムコールがWindowsでは使えないため)、検証系のフルセットのWindows版の提供はもう少し時間がかかります。
とりあえず、GitHubはここを参照してください。 LIP6のJean-Paulと私のところの学生の協力で、ひびきの向けのツールとデータが大体そろってきたので、
LiveCygwinに統合しました。このファイル(zip)をダウンロード、展開し、その中の、"startup.bat"をクリックしてください。初回はツール類の展開をするので、、少し時間がかかりますが、LiveCygwinとタイトルがついたコマンドラインが開きます。このパッケージは私が演習で使うために用意しているので、いろんなサンプルが混在していますが、今回、xpuという4bit cpuを使って、レイアウトを作成する手順を示します。(これは、大きすぎて、ひびきのでの製造には向いていませんが、とりあえず、サンプルということで手順だけ) xcpu_core.nsl : CPUの論理記述です。高位合成言語NSLで記述しています。
chip64.vst: IOパッド等の周辺回路のVHDL記述です
chip64.rin: パッドの配置を指示するファイルです
Makefile: 合成のための環境変数やコマンドを自動化するためのMakefileです。
LiveCygwinのほかにあった方がよいものとして、Xserverがあります。ここを参考にサーバーとフォントをインストールしてください。(これらはなくても、回路は作れますが、レイアウトを見るのにあった方が便利です) 簡単手順
LiveCygwinを起動して、LiveCygwinプロンプトで、次を入力します。(※プロンプトも書いてあるので'> ' の後だけ入力)
/home > cd xpu
/home/xpu > make xpu_core.ap
これで、シンボリックなレイアウトができます。このレイアウトを検証しておきます。
/home/xpu > make xpu_core.druc
デザインルールチェッカで、レイアウトを検証しています。Doneの下にエラーの数が出ます。0じゃないといけません。
/home/xpu > make lvx-xpu_core
LVSにより、ネットリストとレイアウトを比較します。0エラーである必要があります。
※この他に、Linuxでは形式検証ツールもあるのですが、Windowsへの移植ができていないので、検証系はここまでです。
このレイアウトを画面で確認したい場合(Xserver要)、
/home/xpu > make graal-xpu_core
とすると、画面上にレイアウトが表示されます。デフォルトでは、階層の下は表示しませんが、tool->flatで全領域をフラットに表示させると、見慣れた形になります。
https://gyazo.com/249572b564b089c711e42b1240fe8bc5
コアのgdsが必要であれば、
/home/xpu > make xpu_core.gds
でGDSが生成できます。
次に、IOを含んだチップを作成してみましょう。
/home/xpu > make chip64.ap
で、レイアウトを作成します。
こちらも、デザインルールチェックとLVSをかけておきましょう。
/home/xpu > make chip64.druc
/home/xpu > make lvx-chip64
レイアウトは次のようになりました。
https://gyazo.com/cf6037bdd91a4ce523b53b4b2c26f5f6
gdsを作成します。
/home/xpu > make chip64.gds
以上です。