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

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



[第133回]


●CPLDロジアナ(22)マクロセルの使用割合

前回VHDLプログラムの説明を書いた後に書くつもりだったのですがうっかり書き漏らしてしまいました。
相変わらず時間がなくてホームページには何も手をつけられないまま時間が経ってしまいました。
本日になってやっと少し時間ができたところでそのこと(書き漏らしたこと)に気が付きました。
このところ説明しておりますCPLDロジアナのVHDLプログラムはかなり長いプログラムでカウンタやデータラッチもそれなりに使っているという認識でした。
しかし実際にコンパイルしてみてわかったことですが、意外にマクロセルを消費していません。
下はコンパイル時に表示されたデータです。



EPM7128にはマクロセルが128個あるのですが、そのうちの75個しか使っていません。
使用率は59%です。
当初思っていたより使っていなくてまだかなり余裕があります。
pin(端子)のほうはほとんど使ってしまっています(96%)。
これには理由があります。
実際に必要な端子以外に使っていない端子もいくつかあるのですが未使用のままにしておくとノイズなどで誤動作してしまう可能性があります。
それを避けるためには未使用端子はVccかGNDに抵抗でプルアップまたはプルダウンしておくべきです。
しかしそれも面倒なことですし無駄でもあります。
そこで未使用端子の多くは出力に定義しておいて実際には使わないで空き端子にしています。
回路パターンの都合で一部の未使用端子は入力に設定しています。
入力に設定した未使用端子はVccかGNDに直接接続するか将来の利用を考えて抵抗でプルアップ(またはプルダウン)
してあります。
出力端子ならば使わなくても実害はないはず…。
とここまで書いてきて、ちょっと心配になってきました。
出力端子に設定しただけでそこには何も出力していません。
ということはその出力端子には内部回路としては何もつながっていないことになります。
ということは出力が不定ということになりはしないか?
ついうっかりして普通のロジックICの出力のつもりになってしまいました。
「出力」ですけれどCPLDの場合にはそこに何を出力するかということまで考えなければいけませんでした。
今までは気が付きませんでしたけれど、ひょっとするとコンパイルしたときに何かメッセージが出ていたかもしれません。
あらためてメッセージを確認してみましたところ、しっかり警告メッセージが出ていました。

Warning (10541): VHDL Signal Declaration warning at logiana3a.vhd(17): used implicit default value for signal "P4" because signal was never assigned a value or an explicit default value. Use of implicit default value may introduce unintended design optimizations.
Warning (10541): VHDL Signal Declaration warning at logiana3a.vhd(18): used implicit default value for signal "P8" because signal was never assigned a value or an explicit default value. Use of implicit default value may introduce unintended design optimizations.
Warning (10541): VHDL Signal Declaration warning at logiana3a.vhd(19): used implicit default value for signal "P37" because signal was never assigned a value or an explicit default value. Use of implicit default value may introduce unintended design optimizations.
Warning (10541): VHDL Signal Declaration warning at logiana3a.vhd(20): used implicit default value for signal "P40" because signal was never assigned a value or an explicit default value. Use of implicit default value may introduce unintended design optimizations.
Warning (10541): VHDL Signal Declaration warning at logiana3a.vhd(22): used implicit default value for signal "P45" because signal was never assigned a value or an explicit default value. Use of implicit default value may introduce unintended design optimizations.
Warning (10541): VHDL Signal Declaration warning at logiana3a.vhd(32): used implicit default value for signal "PBINH_nc" because signal was never assigned a value or an explicit default value. Use of implicit default value may introduce unintended design optimizations.                      

”P4”とか”P8”とかというのが出力に設定しただけでそこに何も値などを割り当てていなかった端子です。
しっかりと指摘されていました。
becauseから先に訳してみますと、「値も明示的なデフォルト値も割り当てられていなかったので」という意味になるようです。
そこでbecauseの前のところに戻って読んでみますと、「暗黙のデフォルト値を使った」と読めるようです。
implicitは「暗黙の」という意味でしょう。
おお。
なるほど。
やってくれているんだ。
それでその後ろの文を読んでみますと、ここはちょっとわかりにくいので意訳ですが多分「暗黙のデフォルト値の使用については決められた形ではないものを最適化するところで記述される」といった意味になると思います。
それでメッセージの少し下のところを見ましたら、なるほどしっかり書いてありました。

 Warning (13024): Output pins are stuck at VCC or GND
        Warning (13410): Pin "P4" is stuck at GND
        Warning (13410): Pin "P8" is stuck at GND
        Warning (13410): Pin "P37" is stuck at GND
        Warning (13410): Pin "P40" is stuck at GND
        Warning (13410): Pin "P45" is stuck at GND
        Warning (13410): Pin "PBINH_nc[0]" is stuck at GND
        Warning (13410): Pin "PBINH_nc[1]" is stuck at GND
        Warning (13410): Pin "PBINH_nc[2]" is stuck at GND
        Warning (13410): Pin "PBINH_nc[3]" is stuck at GND
        Warning (13410): Pin "PBINH_nc[4]" is stuck at GND
        Warning (13410): Pin "PBINH_nc[5]" is stuck at GND
        Warning (13410): Pin "PBINH_nc[6]" is stuck at GND
        Warning (13410): Pin "PBINH_nc[7]" is stuck at GND
      

(未割当ての)出力端子はVccかGNDに接続される、という警告文があって、その下に各出力端子がGNDに接続されるということが列記してありました。
いやあ。
安心いたしました。

CPLD入門![第133回]
2022.2.22upload

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