taps.vhd

来自「MAX+PLUSII教材及实例-西文-152页-1.7M-PDF版.zip」· VHDL 代码 · 共 55 行

VHD
55
字号
LIBRARY ieee;
USE ieee.std_logic_1164.all;
USE ieee.std_logic_arith.all;
USE ieee.std_logic_unsigned.all;

ENTITY taps IS
	PORT(
		clk, load, clear	: IN	std_logic;
		d					: IN	std_logic_vector(7 downto 0);
		sel					: IN	std_logic_vector(1 downto 0);
		x					: OUT	std_logic_vector(7 downto 0));
END taps;
ARCHITECTURE taps OF taps IS

signal xn		: STD_LOGIC_VECTOR(7 downto 0);
signal xn_1		: STD_LOGIC_VECTOR(7 downto 0);
signal xn_2		: STD_LOGIC_VECTOR(7 downto 0);
signal xn_3		: STD_LOGIC_VECTOR(7 downto 0);
signal clk_g	: STD_LOGIC;

BEGIN
	reg_file:	PROCESS(clk, clear)
	BEGIN
		if clear = '1' then
			xn <= "00000000";
			xn_1 <= "00000000";
			xn_2 <= "00000000";
			xn_3 <= "00000000";
		elsif clk'event and clk = '1' then
			if load = '1' then
				xn <= d;
				xn_1 <= xn;
				xn_2 <= xn_1;
				xn_3 <= xn_2;
			end if;
		end if;
	END PROCESS reg_file;
	mux41:	PROCESS(sel, xn, xn_1, xn_2, xn_3)
	BEGIN
		case sel is
			when "00" =>
			x <= xn;
			when "01" =>
			x <= xn_1;
			when "10" =>
			x <= xn_2;
			when "11" =>
			x <= xn_3;
			when others =>
			x <= "XXXXXXXX";
		end case;
	END PROCESS mux41;
END taps;

⌨️ 快捷键说明

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