是否可以在作業的左側指定一個位範圍?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