myfunction.vhd
来自「VHDL语言实现的16位快速乘法器」· VHDL 代码 · 共 33 行
VHD
33 行
Library IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
package MyFunc IS
Function max(L, R: INTEGER) return INTEGER ;
Function "+"(L:STD_LOGIC_VECTOR;R:STD_LOGIC_VECTOR) return STD_LOGIC_VECTOR;
END Package MyFunc;
Package Body MyFunc IS
Function max(L, R: INTEGER) return INTEGER is
variable result: INTEGER;
begin
if L > R then
result := L;
else
result := R;
end if;
return result;
end;
Function "+"(L:STD_LOGIC_VECTOR;R:STD_LOGIC_VECTOR) return STD_LOGIC_VECTOR IS
Constant Length : Integer :=max(L'Length,R'Length);
Variable tmp :STD_LOGIC_VECTOR(Length Downto 1);
Variable c0,c1 : STD_LOGIC;
BEGIN
c0:='0';
For i In 1 downto Length Loop
tmp(i):=(L(i) xor R(i)) xor c0;
c1:=(L(i) and R(i)) or (L(i) and c0) or (R(i) and c0);
c0:=c1;
End Loop;
return tmp;
End;
END MyFunc;
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?