📄 ilx509_driver.vhd
字号:
--30M to 40M Oscillator;
--Divide per 30;
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY ILX509_Driver IS
PORT
(
CLK:IN STD_LOGIC;
SH,RS,PULSE:OUT STD_LOGIC; --Signals of CCD;PULSE:to PULSE1 and PULSE2 through a WIRE gat and a NOT gat;
PULSE2,ROG:BUFFER STD_LOGIC;
LED: OUT STD_LOGIC
);
END ILX509_Driver;
ARCHITECTURE A OF ILX509_Driver IS
SIGNAL Q: INTEGER RANGE 0 TO 29;
SIGNAL NUM: INTEGER RANGE 0 TO 63899;
SIGNAL NUMLED: INTEGER RANGE 0 TO 255;
BEGIN
PROCESS(CLK)
BEGIN
IF CLK'EVENT AND CLK='1' THEN
CASE Q IS
WHEN 16|17 =>
RS<='1';
SH<='0';
Q<=Q+1;
WHEN 20|21=>
SH<='1';
RS<='0';
Q<=Q+1;
WHEN 29 =>
RS<='1';
SH<='1';
PULSE2<=NOT PULSE2;
Q<=0;
WHEN OTHERS =>
RS<='1';
SH<='1';
Q<=Q+1;
END CASE;
END IF;
END PROCESS;
PROCESS(CLK)
BEGIN
IF CLK'EVENT AND CLK='0' THEN
IF NUM=63899 THEN NUM<=0;
ELSE
IF (NUM>1)AND(NUM<25) THEN
ROG<='1';
ELSE
ROG<='0';
END IF;
NUM<=NUM+1;
END IF;
END IF;
END PROCESS;
PULSE<= NOT PULSE2;
PROCESS(ROG)
BEGIN
IF ROG'EVENT AND ROG='1' THEN
IF NUMLED<128 THEN LED<='1';
ELSE LED<='0';
END IF;
NUMLED<=NUMLED+1;
END IF;
END PROCESS;
END A;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -