VHDL-2008初始化ufixed会给modelsim带来错误

时间:2017-04-12 10:44:52

标签: vhdl

我正在尝试初始化(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”....

我无法弄清楚我做错了什么。我一直在网上浏览答案,但找不到它。有人知道我做错了吗?

1 个答案:

答案 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 文字的定义也是免费的。