ステートマシンの各ステート値はtype宣言で文字列で定義するより、数値で 指定したほうが早い。 type STATE is {IDLE,RUN,WAIT} より、 signal state : std_logic_vector(1 downto 0) で書いたほうが高速に動作する。
外部ライブラリを使うことなく、microPythonでST7789を制御してカラー液晶に表示できたので、メモ。 使用したのはこちらの安価なIPSカラー液晶ディスプレイ。 https://www.amazon.co.jp/gp/product/B07SZC2PSP/ ソースは以下の通り。 動作内容は、初期化で全…
いったんシミュレーションをキャンセルして、[Window|Tcl Console]でTclコンソールを表示してから、 reset_simulation を実行する。
古くからあるVivadoのバグです。 多くのファイルを手で修正する必要があります。テストベンチを作り直しても、このバグは解消しません。
scl_t、sda_tの初期値が0x0となっているが、シミュレーションしてみると初期値としてHighレベルが出てくる。IOBUFのTはHighでゲート閉/Input、Lowでゲート開/Outputであり、初期値が0x0でゲート開/ドライブ状態となるのはおかしい。0x1が正しいと思われ、ド…
XILINXのドキュメントにはActive Highと記載されており、図にも負論理を示す○はついていないが、実際は負論理である。 参考: www.reddit.com 追記: ドキュメントによっては High:Input Low:Output というのが書いてあるので、TはTであってGateではないのだ…
FPGA/CPLDでは、チップ内にHi-Zを作らないようにすべきである。絶対使っちゃいけないってことはないが、動作速度の面で不利になる。また、FPGA内の回路リソースの使い方としてはちょっともったいない。 ふつう、FPGAのロジック・エレメントには、トライステ…
あきらめよう。
Options の Filter は、「Signal Tap:pre-synthesis」を指定しておくと、ほとんどの信号名を拾うことができる。
type STATE is (IDLE, WRITE, READ, ACK); のように、Stringからなるtypeを作ると、ModelSimにおいてシミュレーションが極端に遅くなる。ステートマシンのステートはintegerかstd_logic_vectorにするのが無難。
ModelSimでStart SimulationとかMacroを実行すると、たまにPAUSEとなって処理が止まることがある。 resume [Enter] で続きが流れる。