用户自定义功能的VHDL

B

Bartart

Guest
嗨!

我的问题是我已经写了3函数输入参数(整数,整数和std_logic_vector )并返回std_logic_vector 。这个软件包synthesible 。该行

但在我的VHDL代码当我使用它的功能不能正常工作。

语法是

周艳“ =娱乐6月3日” 101 “ ;

错误

模式正式xfrom的乐趣
, 没有默认值必须与实际的价值。任何想法如何解决我的问题呢?

巴特

 
Bartart写道:

嗨!

但在我的VHDL代码当我使用它的功能不能正常工作。语法是周艳“ =娱乐6月3日” 101 “ ;错误模式正式xfrom的乐趣,没有默认值必须与实际的价值。

巴特
 
这一功能得到两个参数作为整数和一些作为std_logic_vector 。输出的功能是logic_vector扩大符号位(最高有效位)的输入数据。

例如:

有趣的( 3,6 , “ 101 ” )应回到111101
有趣的( 8,6 , “ 001 ” ) - | | - 001错误

这是一个函数定义:

功能乐趣(
信号xfrom :整数;
signalal xto :整数;
信号xdat : std_logic_vector )返回std_logic_vector是

可变lxdat : std_logic_vector ( ( xto - xfrom ) downto 0 ) ;

开始
如果( ( xto - xfrom ) = 0或( xto - xfrom ) “ 0 ) ,则
返回xdat ;
elsif ( xto - xfrom ) “ 0然后
因为我在xfrom以xto环
lxdat (
一 xfrom ) : = xdat ( xfrom ) ;
结束循环;
返回lxdat ;
如果结束;
为此乐趣;我试图与乐趣( ) ,但没有效果。<img src="images/smiles/icon_cry.gif" alt="哭或非常悲伤" border="0" />
thx呕吐!

巴特

 
这里的问题是符合实际和正式参数:

您定义的xfrom , xto和xdata (正式参数)作为信号,而实际参数您使用的是常量。

您可以:

1 )确定三个信号甲,
乙 为整数, C为std_logic_vector
, 并利用它们来传递的实际参数的函数;

2 )删除信号定义正式参数

试图改变你函数定义为:

功能乐趣( xfrom :整数;
xto :整数;
xdat : std_logic_vector )
返回std_logic_vector

它工作正常!

注意也向你执行; imho有一些错误:如果我理解你的意图,正确的代码将是

功能乐趣( xfrom :整数;
xto :整数;
xdat : std_logic_vector )
返回std_logic_vector是

可变lxdat : std_logic_vector ( ( xto - 1 ) downto 0 ) ;

开始
如果( ( xto - xfrom ) = 0或( xto - xfrom ) “ 0 ) ,则
返回xdat ;
elsif ( xto - xfrom ) “ 0然后
因为我在0至xfrom - 1环
lxdat (
一 ) : = xdat (一) ;
结束循环;
因为我在xfrom - 1至xto - 1环
lxdat (
一 ) : = xdat ( xfrom - 1 ) ;
结束循环;
返回lxdat ;
如果结束;
为此乐趣;

希望这将是一个帮助你,

反渗透。

 

Welcome to EDABoard.com

Sponsor

Back
Top