SH7045F+CPLD
 

 鉄人1号では、PCから動作指令を鉄人本体のSH7045Fに送信。SH7045Fは指令に基づいて、サーボモータ用のPWM信号を作る。ただし、SH7045Fは16本のPWM信号しか出せないため、タイムシェアリングで16本の出力ピンより32のPWM信号を出し、それをCPLD(Complex Programmable Logic Device)で32本に分けている。CPLDはVHDLでプログラミングを行った。VHDLや信号処理、モータ制御の講義は愛知工業大学では電気系学科などで行われている。
 1号では、センサ類はまだ取り付けておらず、フィードバック制御は行っていない。

 
使用したCPLDについて
開発ツール: XilinxWebPACK ISEVHDLを使用、WindowsXP
XilinxXC9572-15PC84: 69入出力ピン 1600ゲート 72マクロセル
VHDL
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity IO is
    Port ( Pulse_IN : in std_logic_vector(15 downto 0);
           Pulse_OUT : out std_logic_vector(31 downto 0);
           Out_Select : in std_logic;
 Dummy_IN5V :in std_logic_vector(4 downto 0);
 Dummy_OUT : out std_logic);
end IO;
architecture RTL of IO is
begin
process (Pulse_IN, Out_Select) begin
if (Out_Select='0') then
Pulse_OUT <= "0000000000000000" & Pulse_IN;
       ・
       ・
       ・