November 29, 2006VHDLに思う最近FPGAの設計をしています。何を作ろうとしているのかというと、I2C接続が可能なタイマーカウンターアレーを作ろうとしています。なんでこんなものが必要になるかというと、ラジコン用の部品は、サーボをはじめとして加速度計、ジャイロなどパルス幅でコミュニケーションをとるものが目白押しで、マイコン内臓の機能では対応しきれなくなったという現状があります。なお、このような話は色々なところで議論されており、僕自身は元祖"俺サーボ"で有名な宮田さんの『FPGAによるPWM制御』を参考にしています。 以下、続きをどうぞ。 実はVHDL、はじめてまだ一週間ですが、だいたいコツを掴んできました。というかプログラミング言語にくらべて構文が単純ですので、書くだけでしたら誰でも簡単にできてしまうと思います(動作速度をあげたりラッチに気をつけたりとテクニック的にはプログラミング言語よりもかなり奥が深そうですが)。 library IEEE;
use IEEE.std_logic_1164.all; use IEEE.std_logic_arith.all; entity Parts_Base is architecture BEHAVIOR of Parts_Base is library IEEE; entity Parts_Sub is architecture BEHAVIOR of Parts_Sub is 要は、component宣言でこういう内部部品があるということを教えてあげ、そのインスタンスを生成後、その部品への配線はこうだよということをport map命令で割りあてているのがポイントです。しかしプログラミング言語に慣れてしまっている僕からいわせると、U1インスタンスは既に配線を持っているわけで、コードの他の部分で U1.wire_inout
のような指定ができないのが残念でなりません。そうすればここでいうwire_inout_internalのような信号線がコード上から削除できて効率的だと思うのですが、そうはいかないのでしょうか。 VHDLを書かれる方でこのようなことを考えられたことがある他の方はおりますでしょうか。ちょっと気になっています。 コメント
初めまして、ソフト屋上がりのHDL屋です。 テキストで書いているとソフトウェアを書いている感覚になりますが、あくまでも「物理構造」を文章で表現しているだけです。 >windyさん 確かにそんな書き方ができればずいぶん楽になりそうですね。 個人的にVHDLの仕様で勘弁してほしいのはcomponent宣言です。 俺も宮田さんのを参考にして、RoboShellのサーボコントローラ部分を設計しました。 がんばってください。 すでに指摘されているように、ポート接続が配線であることにあるとき気がついて、そんなものだと思うようにしています。 私も酔漢さんに同感です。なんでこんな何度もかかなきゃいけないのかよくわからんです。昔の都合を引きずっているんだとおもいますが、改正も入っているので直して欲しいと思います。VHDLは今の環境には不便を感じる面が多々ありますね・・・。 Posted by: まや : December 1, 2006 10:12 AM>windyさん >織田さん >酔漢さん・まやさん コメントする
|
スポンサード リンク
|