filt_cmp.vhd

来自「matlab在fpga中的应用的三个具体事例」· VHDL 代码 · 共 43 行

VHD
43
字号

--4.12  包(Package)

--下面用一个具体的Package程序的例子来说明VHDL包的设计方法。

LIBRARY ieee;
USE ieee.std_logic_1164.all;

PACKAGE filt_cmp IS --包的声明开始
	TYPE state_type IS (idle, tap1, tap2, tap3, tap4);
	COMPONENT acc
		port(
				xh 		: in std_logic_vector(10 downto 0);
				clk		: in std_logic;
				first	: in std_logic;
				yn 		: out std_logic_vector(11 downto 4)
			);
	END COMPONENT;
	FUNCTION compare (variable a , b : integer) RETURN boolean;
END filt_cmp; --包的声明结束

PACKAGE BODY filt_cmp IS --包体内容的开始
	FUNCTION compare (variable a , b : integer) IS
		VARIABLE temp : boolean;
		Begin
			If a < b then
				temp := true ;
			else
				temp := false ;
			end if;
		RETURN temp ;
	END compare ;
END fily_cmp ; --包体内容的结束

--上述程序中的加黑的部分为VHDL程序的关键字。
--将上面的程序保存为fily_cmp.vhd并放在设计工程目录中,
--然后在工程中的其他文件中就可以通过下面的方式来调用包里声明的内容了。

--LIBRARY ieee;
--USE ieee.std_logic_1164.ALL;--VHDL其他库和包的声明、调用
--LIBRARY work;
--USE work.fily_cmp.ALL;--用户定义库和包的声明、调用

⌨️ 快捷键说明

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