⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 playandled.vhd

📁 用max+plusII编写的vhdl程序 乒乓球游戏机
💻 VHD
字号:
LIBRARY	IEEE;
USE		IEEE.STD_LOGIC_1164.ALL;
USE		IEEE.STD_LOGIC_ARITH.ALL;
USE		IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY	playandled	IS
PORT(
	clk:	IN	STD_LOGIC;
	playr:	IN	STD_LOGIC;
	playl:	IN	STD_LOGIC;
	judge:	IN	STD_LOGIC;
	led:	OUT	STD_LOGIC_VECTOR(9	DOWNTO	1);
	playrloss:OUT STD_LOGIC;
	playlloss:OUT STD_LOGIC
	);
END	ENTITY;
----------------------------------------------
--LB987654321RB-------------------------------
----------------------------------------------

ARCHITECTURE behave OF playandled IS
TYPE STATE IS(s9r,s8r,s7r,s6r,s5r,s4r,s3r,s2r,s1r,s9l,s8l,s7l,s6l,s5l,s4l,s3l,s2l,s1l,rloss,lloss,rb,lb,nop);
SIGNAL ps:STATE;
SIGNAL ns:STATE;
BEGIN
clock:PROCESS(clk)
BEGIN
IF(clk'EVENT AND clk='1')THEN
	ps<=ns;
END IF;
END PROCESS clock;
---------------------------------
---------------------------------
statemachine:PROCESS(ps,playr,playl,judge)
BEGIN
IF(ps=lb)THEN
	IF(judge='0')THEN
		ns<=rb;
	ELSIF(playl='0')THEN
		ns<=s9r;
	ELSE
		ns<=ps;
	END IF;
ELSIF(ps=rb)THEN
	IF(judge='0')THEN
		ns<=lb;
	ELSIF(playr='0')THEN
		ns<=s1l;
	ELSE
		ns<=ps;
	END IF;
ELSIF(ps=s9r)THEN
	IF(judge='0')THEN
		ns<=lb;
	ELSIF(playr='1')THEN
		ns<=s8r;
	ELSE
		ns<=rloss;
	END IF;
ELSIF(ps=s8r)THEN
	IF(judge='0')THEN
		ns<=lb;
	ELSIF(playr='1')THEN
		ns<=s7r;
	ELSE
		ns<=rloss;
	END IF;

ELSIF(ps=s7r)THEN
	IF(judge='0')THEN
		ns<=lb;
	ELSIF(playr='1')THEN
		ns<=s6r;
	ELSE
		ns<=rloss;
	END IF;

ELSIF(ps=s6r)THEN
	IF(judge='0')THEN
		ns<=lb;
	ELSIF(playr='1')THEN
		ns<=s5r;
	ELSE
		ns<=rloss;
	END IF;

ELSIF(ps=s5r)THEN
	IF(judge='0')THEN
		ns<=lb;
	ELSIF(playr='1')THEN
		ns<=s4r;
	ELSE
		ns<=rloss;
	END IF;

ELSIF(ps=s4r)THEN
	IF(judge='0')THEN
		ns<=lb;
	ELSIF(playr='1')THEN
		ns<=s3r;
	ELSE
		ns<=rloss;
	END IF;

ELSIF(ps=s3r)THEN
	IF(judge='0')THEN
		ns<=lb;
	ELSIF(playr='1')THEN
		ns<=s2r;
	ELSE
		ns<=rloss;
	END IF;

ELSIF(ps=s2r)THEN
	IF(judge='0')THEN
		ns<=lb;
	ELSIF(playr='1')THEN
		ns<=s1r;
	ELSE
		ns<=rloss;
	END IF;

ELSIF(ps=s1r)THEN
	IF(judge='0')THEN
		ns<=lb;
	ELSIF(playr='1')THEN
		ns<=rloss;
	ELSE
		ns<=s2l;
	END IF;
ELSIF(ps=s1l)THEN
	IF(judge='0')THEN
		ns<=lb;
	ELSIF(playl='1')THEN
		ns<=s2l;
	ELSE
		ns<=lloss;
	END IF;
ELSIF(ps=s2l)THEN
	IF(judge='0')THEN
		ns<=lb;
	ELSIF(playl='1')THEN
		ns<=s3l;
	ELSE
		ns<=lloss;
	END IF;
ELSIF(ps=s3l)THEN
	IF(judge='0')THEN
		ns<=lb;
	ELSIF(playl='1')THEN
		ns<=s4l;
	ELSE
		ns<=lloss;
	END IF;
ELSIF(ps=s4l)THEN
	IF(judge='0')THEN
		ns<=lb;
	ELSIF(playl='1')THEN
		ns<=s5l;
	ELSE
		ns<=lloss;
	END IF;
ELSIF(ps=s5l)THEN
	IF(judge='0')THEN
		ns<=lb;
	ELSIF(playl='1')THEN
		ns<=s6l;
	ELSE
		ns<=lloss;
	END IF;

ELSIF(ps=s6l)THEN
	IF(judge='0')THEN
		ns<=lb;
	ELSIF(playl='1')THEN
		ns<=s7l;
	ELSE
		ns<=lloss;
	END IF;
ELSIF(ps=s7l)THEN
	IF(judge='0')THEN
		ns<=lb;
	ELSIF(playl='1')THEN
		ns<=s8l;
	ELSE
		ns<=lloss;
	END IF;
ELSIF(ps=s8l)THEN
	IF(judge='0')THEN
		ns<=lb;
	ELSIF(playl='1')THEN
		ns<=s9l;
	ELSE
		ns<=lloss;
	END IF;
ELSIF(ps=s9l)THEN
	IF(judge='0')THEN
		ns<=lb;
	ELSIF(playl='1')THEN
		ns<=lloss;
	ELSE
		ns<=s8r;
	END IF;
ELSIF(ps=rloss)THEN
	IF(judge='0')THEN
		ns<=lb;
	ELSE
		ns<=nop;
	END IF;
ELSIF(ps=lloss)THEN
	IF(judge='0')THEN
		ns<=lb;
	ELSE
		ns<=nop;
	END IF;
ELSIF(ps=nop)THEN
	IF(judge='0')THEN
		ns<=lb;
	ELSE
		ns<=ps;
	END IF;
END IF;
END PROCESS statemachine;
-------------------------------
-------------------------------
translate:PROCESS(ps)
BEGIN
CASE ps IS
WHEN rb=>led<="111111110";playlloss<='0';playrloss<='0';
WHEN lb=>led<="011111111";playlloss<='0';playrloss<='0';
WHEN s9r=>led<="011111111";playlloss<='0';playrloss<='0';
WHEN s8r=>led<="101111111";playlloss<='0';playrloss<='0';
WHEN s7r=>led<="110111111";playlloss<='0';playrloss<='0';  
WHEN s6r=>led<="111011111";playlloss<='0';playrloss<='0';
WHEN s5r=>led<="111101111";playlloss<='0';playrloss<='0';
WHEN s4r=>led<="111110111";playlloss<='0';playrloss<='0';
WHEN s3r=>led<="111111011";playlloss<='0';playrloss<='0';
WHEN s2r=>led<="111111101";playlloss<='0';playrloss<='0';
WHEN s1r=>led<="111111110";playlloss<='0';playrloss<='0';
WHEN s1l=>led<="111111110";playlloss<='0';playrloss<='0';
WHEN s2l=>led<="111111101";playlloss<='0';playrloss<='0';
WHEN s3l=>led<="111111011";playlloss<='0';playrloss<='0';
WHEN s4l=>led<="111110111";playlloss<='0';playrloss<='0';
WHEN s5l=>led<="111101111";playlloss<='0';playrloss<='0';
WHEN s6l=>led<="111011111";playlloss<='0';playrloss<='0';
WHEN s7l=>led<="110111111";playlloss<='0';playrloss<='0';
WHEN s8l=>led<="101111111";playlloss<='0';playrloss<='0';
WHEN s9l=>led<="011111111";playlloss<='0';playrloss<='0';
WHEN lloss=>playlloss<='1';led<="111111111";
WHEN rloss=>playrloss<='1';led<="111111111";
WHEN nop=>led<="111101111";playlloss<='0';playrloss<='0';
WHEN OTHERS=>NULL;
END CASE;
END PROCESS translate;
--------------------------------
--------------------------------
END behave;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -