目次

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" ;


 基本中の基本操作でしたが、意外に忘れてしまう
 ので、備忘録として残します。


目次

inserted by FC2 system