我想知道以下程序声明之间是否存在任何功能差异:
TypeError: not all arguments converted during string formatting
我试图找到信息,但也许我不知道我能在哪里得到它。感谢您的回复
答案 0 :(得分:1)
VHDL-2008标准在“4.2.2.1正式参数列表”中描述了这一点:
对于那些带模式的参数,过程的形式参数允许的唯一模式是 in,inout和out。如果模式为in且未明确指定对象类,则假定为常量。如果 mode是inout或out,并且没有显式指定对象类,假定变量。
由于spi_data_mosi
的模式是in
,因此在第一种情况下没有明确的对象类constant
类,而在第二种情况下,类被明确地赋予{{ 1}}。
VHDL-2008稍后将在“4.2.2.1正式参数列表”中描述;
在子程序调用中,与类信号的形式参数相关联的实际指示符(见6.5.7.1)应为表示信号的名称。与类变量形式相关的实际指示符应为a 表示变量的名称。与类常量形式相关联的实际指示符应为表达式。
这也给出了Brian Drummonds评论的背景,因为类signal
或signal
的参数需要同一类的形式,其中类variable
的参数只需要一个表达式,可以使用文字,信号和变量创建。