初めまして、ソフト屋上がりのHDL屋です。
>U1.wire_inout
ですが、インスタンス間のポート接続は実デバイスのピン間を物理的な線でつなぐイメージです。
ソフトウェアで言うところのオブジェクトのプロパティとは全く異質なものです。
これは回路図でも他のハードウェア記述言語でも全く同じです。
テキストで書いているとソフトウェアを書いている感覚になりますが、あくまでも「物理構造」を文章で表現しているだけです。
ここを理解できるかどうかが、HDLのポイントですね。
>windyさん
はじめまして、コメントありがとうございます。
U1.wire_inout <=> U2.wire_inout; みたいな記述ができたらなんとなくハッピーかなと思った次第です。仰るとおりワイヤは単なる線ではなく回路図の(名前付きの)ネットと考えれば非常に納得がいきますね。VHDL完熟までまだまだ先は長そうです(笑)
確かにそんな書き方ができればずいぶん楽になりそうですね。
上位の階層ではモジュール間の接続だけになる事が多いのですが、大きなモジュール同士の接続になるとそのためだけに山のようなsignalが必要になります。
構造体のような仕組みもあるのですが、inとoutを一緒にできないのでいまいち使いづらいです。
個人的にVHDLの仕様で勘弁してほしいのはcomponent宣言です。
モジュールのI/Fを変更すると、必ず3箇所の変更が必要になります。
参考書では「モジュールの宣言部をコピペして…」なんて書かれていますがそれは違うのでは?という気がします。
実はcomponentが無くても良い方法があるのですが、教科書的には宜しくないようです。
僕はもうcomponent宣言は全く使わないで書いてしまっています。
俺も宮田さんのを参考にして、RoboShellのサーボコントローラ部分を設計しました。
実装はプロ(まじなプロ)に任せてしまいましたが…。
がんばってください。
すでに指摘されているように、ポート接続が配線であることにあるとき気がついて、そんなものだと思うようにしています。
それより、componentを使うときにいちいち引数まで再宣言させられることにうんざりします。
use component Parts_Base;
でいいと思うのですが。
私も酔漢さんに同感です。なんでこんな何度もかかなきゃいけないのかよくわからんです。昔の都合を引きずっているんだとおもいますが、改正も入っているので直して欲しいと思います。VHDLは今の環境には不便を感じる面が多々ありますね・・・。
>windyさん
はやく自分のコーディングスタイルを確立できるようになりたいです。そのうち現在作っているブツのコードを公開する予定ですが、素人感丸出しになりそうな予感です(笑)
>織田さん
応援ありがとうございます。Roboshellは標準化という点で非常に素晴らしい御計画だと思います。お互いに自分以外に使ってくださる方が増えると嬉しいですね。
>酔漢さん・まやさん
コメントありがとうございます。本当にVHDLの規格なんとかならないものですかね。かといってVHDLの資産がたくさんあるのでそれらを切って捨てるわけにも…、難しいです。