是否可以在作业的左侧指定一个位范围?VHDL分配片没有实现?
例如。 R(15 downto 8) <= R(15 downto 8) -D;
以上给我的编译器错误:Error 722: Assignment to a signal slice is not implemented.
我试过谷歌搜索错误无济于事。
但是这个工程:
R <= R(15 downto 8) - D;
是否可以在作业的左侧指定一个位范围?VHDL分配片没有实现?
例如。 R(15 downto 8) <= R(15 downto 8) -D;
以上给我的编译器错误:Error 722: Assignment to a signal slice is not implemented.
我试过谷歌搜索错误无济于事。
但是这个工程:
R <= R(15 downto 8) - D;
答案涉及到我的环境,特别是专业设计工作室5,在Windows 7
您不能值分配到信号变量位向量的一个切片。 例如。
signal R: std_logic_vector(15 downto 0);
R(15 downto 0) <= X"0000"; -- will not compile
您可以值分配到一个普通可变位向量的一个切片。 例如。
variable D: std_logic_vector(15 downto 0);
D(15 downto 0) := X"0000"; -- will compile
每种情况都试图将16位分配给16位变量。
分配到片是允许的。你使用什么工具? D的大小是多少?注意结果大小。
R(15 downto 0) <= R(15 downto 8) - D ;
如果这样分配的工作,那么你还需要切片d:如果d的尺寸大于R,则结果大小D.
的大小在下面的分配会发生什么情况相匹配:
R(15 downto 8) <= R(15 downto 8) - D(7 downto 0);
如果这没有得到它,剩下的代码是什么样的?
我正在使用DesignWorks Professional 5.它不是尺寸问题。我应该提到这个任务是在一个信号变量上,而不是一个普通的变量,这显然是非法的。 – cbrad
也许你会愿意告诉我们哪个(谁的)分析仪告诉你这个?切片名称在VHDL中作为信号赋值语句的目标是合法的。格式看起来像PICA VHDL工具,其中722代表行号。 – user1155120
因疏忽我的环境细节而抱歉。在Windows 7上使用DesignWorks Professional 5. 722是错误代码。行号分别表示。 – cbrad