我正在尝试初始化(VHDL-2008)ufixed。但是下面的代码在Modelsim 10.5b中给出了一个错误
entity test_e is
end entity;
library ieee;
architecture test_a of test_e is
use ieee.fixed_pkg.all;
constant value : ufixed(3 downto 0) := "0001";
begin
end architecture;
错误消息是:
错误: [file] .vhd(8):类型为ieee.std_logic_1164.STD_ULOGIC的字符文字'0'在此字符串文字的位置不可见。
我可以通过将定义行更改为
来解决此问题constant value : ufixed(3 downto 0) := to_ufixed(1,3,0);
然后当我运行模拟时,值保持“0001”....
我无法弄清楚我做错了什么。我一直在网上浏览答案,但找不到它。有人知道我做错了吗?
答案 0 :(得分:3)
添加额外的{'overall_feedback"': "...and that's something I want to learn too. ,", 'submission_uuid': 'b195603a-60f5-11e4-95a7-0a7da95da37f', 'options_selected': {'Ideas': '0'}, 'criterion_feedback': {}}
语句会修复它:
use
这是一个错误还是正确的?我认为它是对的。因此声明entity test_e is
end entity;
library ieee;
architecture test_a of test_e is
use ieee.std_logic_1164.all; -- HERE !
use ieee.fixed_pkg.all;
constant value : ufixed(3 downto 0) := "0001";
begin
end architecture;
:
ufixed
我确定您已经同意,因为您输入type ufixed is array (integer range <>) of std_logic;
并不意味着您可以免费获得use ieee.fixed_pkg.all
的定义。好吧,我认为只是因为您输入std_logic
意味着您无法获得use ieee.fixed_pkg.all
文字的定义也是免费的。