新千葉 ガーベージ・コレクション

FPGA マガジンやインターフェースで書けなかったこと等をちょぼちょぼ書いてます。@ryos36

さてやっとこさ VHDL

やっと VHDL を書く環境(体制)に戻った。なにをするか?究極の目的はプロセッサーを作る環境。オペコードとコンパイラを総合的に用意する。
中心となる技術は LispC++ になるだろう。ってことで早速 LispVHDL を書いてみる。

(:vhdl
(:library IEEE)
(:use IEEE.std_logic_1164.all)
(:entity HALF_ADDR
         (:port
           (:port-declare a :in :std_logic)
           (:port-declare b :in :std_logic)
           (:port-declare s :out :std_logic)
           (:port-declare co :out :std_logic)))

(:architecture (:vhdl-symbol |DATAFLOW of HALF_ADDR|)
                (:signal c :std_logic)
                (:signal d :std_logic)

                (:architecture-body
                        (:<= c (:or a b))
                        (:<= d (:nand a b))
                        (:<= co (:not d))
                        (:<= s (:and c d)))))

これをパージングして(もうパージングされているが、、、)VHDL を出力する(まわりくどいだけ)のが当面の目標か。
そんでもって、以前作った Lisp の回路シミュレータ(ってほどのものではない。単に SICP のパクリ。common lisp 版) にかませると一応シミュレートできたりするはずだ。
うまく構造化すれば LUT 対応もできるはずなので、そうすると今度は FPGA のプリミティブに当てはめるということもできる(理論的にはできる)はずだ。