目次
前
次
CPLD動作チェック
基板の実装面積が小さいとき、複数の回路を
1パッケージにまとめるデバイスとしてCPLD
を使っています。
市販のマイコン基板では、簡単なテストができる
ように、スイッチとLEDを各々1個用意してます。
マイコン基板に似せて、スイッチとLEDを、それぞれ
1個ずつ半田付けして、動作確認してみます。
回路は、以下のように単純。
スイッチの状態を、システムクロックで常時入力
しています。
スイッチの状態は正論理で処理し、LEDの状態は
負論理に変換して扱います。
内部の接続を確定したら、VHDLを使い回路を記述。
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity tst0 is
port (
-- system
nRESET : in std_logic ;
CLOCK : in std_logic ;
-- input
SWX : in std_logic ;
-- output
LEDX : out std_logic -- ;
) ;
end tst0;
architecture Behavioral of tst0 is
-- register
signal iQ : std_logic ;
-- internal wire
signal iLEDX : std_logic ;
begin
-- output
LEDX <= iLEDX ;
-- internal wiring
iLEDX <= iQ ;
-- latch
process ( nRESET , CLOCK )
begin
if ( nRESET = '0' ) then
iQ <= '0' ;
elsif rising_edge( CLOCK ) then
iQ <= not SWX ;
end if ;
end process ;
end Behavioral;
これで、確実にスイッチの状態をLEDの点灯
消灯の情報に変換されます。また、追従性
は、クロックにもよりますが、0.1ms
以内だと判断できます。
ピンアサインは、以下。
# system
NET "CLOCK" LOC = "P5" ;
NET "nRESET" LOC = "P39" ;
# input
NET "SWX" LOC = "P4" ;
# output
NET "LEDX" LOC = "P2" ;
基本中の基本操作でしたが、意外に忘れてしまう
ので、備忘録として残します。
目次
前
次