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

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



[第90回]


●簡単なサンプルプログラム

前回はWindows10でUSB−Blasterを使って無事にEPM7128SLC84に82C55プログラムを書き込むことができました。
そのあと勿論ND80Z3.5に接続して82C55として正しく動作することを確認しました。
確認はしたのですけれど、そこで初めて気が付きました。
CPLDトレーニングボードを入手していただいて、今まで何回かにわたって説明してきました通りに作業をしていただいて、それで前回の通りEPM7128SLC84にはじめてのサンプルプログラム(82C55プログラム)を書き込んでいただくことになります。
書き込んだあとは。
うまく書き込めているかどうか、またそもそもプログラムがまともに作成されていて、ちゃんと期待通りの動作をしてくれるかどうか、その動作確認をするためにはCPLDトレーニングボードをND80Z3.5に接続しなければなりません。
いえ。
おそらくはすでにND80Z3.5はご購入いただいている方がほとんどとは思います。
しかし最初に行なう動作テストとしてはいかがなものか。

もっと簡単、シンプルなプログラムで動作確認を行なったのちに、その次のステップとして82C55プログラムを書き込んで動かしてみる、というのが無理の無い手順ではありますまいか。

そのように思いつきましたので、簡単なサンプルプログラムを作成しました。
前回までの説明ではまずは最初に82C55プログラムをEPM7128SLC84に書き込んでみる、という流れで書いてきましたが、そこまで作業していただいたことは無駄ではありません。
しかしそれについては、ちょっと後回しにしていただくこととしまして。
予定を変更して、簡単なサンプルプログラムのほうを先に書き込んで試していただくことにいたします。

下が急遽作成した簡単なサンプルプログラムです。

--cpld training sample no.1 19/7/18

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
library ARITHMETIC;
use ARITHMETIC.std_logic_arith.all;

entity trngsmpl1 is
PORT (
                SEGOUT:out std_logic_vector(7 downto 0);
                LEDOUT:out std_logic_vector(3 downto 0);
                SWA:in std_logic;
                SWB:in std_logic;
                SWC:in std_logic;
                PA:out std_logic_vector(7 downto 0);
                PB:out std_logic_vector(7 downto 0);
                PCL:out std_logic_vector(3 downto 0);
                PCH:out std_logic_vector(3 downto 0));
end trngsmpl1;

architecture rtl of trngsmpl1 is
--
begin
--
SEGOUT<="00000000";
LEDOUT<="0000";
--
process(SWA,SWB,SWC)
begin
        if SWA='0' then
                PA<="00000000";
        else
                PA<="11111111";
        end if;
--
        if SWB='0' then
                PB<="00000000";
        else
                PB<="11111111";
        end if;
--
        if SWC='0' then
                PCL<="0000";
                PCH<="0000";
        else
                PCL<="1111";
                PCH<="1111";
        end if;
end process;
--
end rtl;


たったこれだけの簡単なプログラムです。
電源を投入するとAポート、Bポート、CポートのLED各8個が全点灯します。
スイッチAを押すと、押している間だけAポートのLEDが全部消灯します。
またスイッチBを押すと、押している間だけBポートのLEDが全部消灯します。
そしてスイッチCを押すと、押している間だけCポートのLEDが全部消灯します。

これだけでは今ひとつ具体的なイメージが出てこないかもしれません。
CPLDトレーニングボードの試作版の写真と回路図は[第67回]でお見せしましたが、その後に少し回路図を変更しました。
そういうことでもありますから、下に回路図を再掲します。
この回路図を参考にして、上のプログラムの動作を理解してください。



説明の途中ですが、本日は時間がなくなってしまいました。
次回に続きます。

CPLD入門![第90回]
2019.7.18upload

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