2019.3.2
前へ
次へ
ホームページトップへ戻る

[新連載]CPLD入門!
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
いつか使うことになるだろうと思ってはいたのですが。
何を今頃になって、というようなものですが。
ようやく本気で、CPLDと四つに取り組みます。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜



[第16回]


●VHDLプログラム(回路の記述3)

前回は時間がなくなってしまって、プログラムを修正した部分の全部を説明できませんでした。
前回説明しました74HC174以外の部分でもプログラムを修正したところがあります。
プログラムの先頭の入出力端子を定義している部分です。

entity picusb is
        PORT (
                        Ain:in std_logic_vector(7 downto 2);
                        Ckin:in std_logic;--not used
                        Ain1:in std_logic;--not used
                        Ain0:in std_logic;--not used
                        Din7:in std_logic;--not used
                        Dinout:inout std_logic_vector(6 downto 0);
                        RC3_RC0:inout std_logic_vector(3 downto 0);
                        RB6_RC4:in std_logic_vector(2 downto 0);
                        RC7_RC5:out std_logic_vector(2 downto 0);
                        IOWR:in std_logic;
                        IORD:in std_logic);

end picusb;

Ckin〜Din7までを追加しました。
でもこれらの端子は実際には使っていません。
それを忘れないようにするために’;’のうしろにコメントをつけてあります。
行の先頭に−−から始まる文字列を書くとその行全体がコメント行になりますが、上のリストのように行の終わり(;)の後ろに−−から始まる文字列を置いてそれ以後をコメントとすることもできます。

さてそれで、この4行の追加ですが。
この回路の試作基板は[第9回]で写真をお見せしました。
試作基板を作った時点では、なにしろCPLDはプログラムを書き換えることで別の回路とすることもできるという大きな特徴(利点)がありますから、いろいろ他の回路としても試してみることになるかもしれない、という考えで、今回の回路では使わないけれど、とりあえず配線だけはしておくことにしたのです。
それが上のリストに追加した4つの信号端子です。
実際には使わないならば、その未使用端子については何も定義しないでそのままにしておけばよい、か?

実はCkinはクリスタル発振子を接続する配線になっていますが、発振子は今のところ未実装です。
Ain1、Ain0、Din7はそれぞれアドレスバスとデータバスにつながっています。
この状態で端子を未定義にしておいてもよいのでしょうか?

ちょっと気になりましたのでそこのところを確認してみました。

Googleで ALTERA または Quartus に続いて確認したい用語をつけて検索すると、かなりの率で「はじめてガイド」の該当項目がヒットします。
しかも日本語です。
これは有難いです。

あれ?ALTERAではなくてALTIMAですねえ?

ALTIMAはFPGAなどを扱う総合商社なんだそうです。
むむ。
でもまあ、ずいぶん丁寧に説明してくださっていますので、大いに利用させていただくことにいたします。
大感謝!です。

それで、肝心の未使用端子のことなのですが。
どうも上記の文を読みますと、やっぱりそのままにしておいてはいけないようです。
「適切に」処理せよ、とのご託宣です。
上記のガイドではこのあと、いかにして未使用端子にしかるべき属性を与えるのかについて、るる解説されております。
解説されておりますが、どれも正直申し上げて面倒くさい。
で。
一番簡単なのは今回VHDLプログラムに追加しましたように、実際は使わないのだけれど、入力端子として定義してしまうという方法でありました。
定義だけしておいて、その後のプログラムの中で全く使用しなくても、コンパイラ様は何もおっしゃいませんので、この方法が一番無難で簡単かと思います。

本日もこんなところで時間がなくなってしまいました。
いつものことなのですが、相変わらず納期に追われる毎日です。
毎日少しずつの更新ですが、気長なお付き合いをお願いいたします。

CPLD入門![第16回]
2019.3.2upload

前へ
次へ
ホームページトップへ戻る