【发布时间】:2016-03-24 16:31:01
【问题描述】:
我一直在尝试将此整数类型的信号转换为 std_logic 向量,并将转换后的值分配给另一个与 VHDL 整数具有相同宽度的信号
signal temp : std_LOGIC_VECTOR(31 downto 0) := (others => '0');
signal FrameCumulative : integer :=0;
temp <= to_stdlogicvector(to_unsigned(FrameCumulative));
但是我得到了这个错误:
错误 (10346):vga.vhd(107) 处的 VHDL 错误:正式端口或参数 "SIZE" 必须有实际值或默认值
我正在使用use IEEE.NUMERIC_STD.ALL; 和use IEEE.STD_LOGIC_1164.ALL;
首先我犯了一个错误,没有检查 VHDL 中的整数大小,并试图将一个整数分配到一个 14 位向量中,但在我考虑了一下之后,我承认了我的错误。
现在根据许多在线资源,我正在做的应该可以工作,但我的合成器抱怨它。
如果您确实知道造成这种情况的原因,您会介意详细说明您的答案,而不仅仅是发布正确的代码,谢谢!
【问题讨论】:
-
没有给出
FrameCumulative的声明。您的示例代码声明了AccumelatedFrameVals。请编辑您的问题。