gpt4 book ai didi

vhdl - VHDL 中的索引数组

转载 作者:行者123 更新时间:2023-12-01 04:41:51 27 4
gpt4 key购买 nike

我有一个数组:

type offsets_type is array (4 downto 0) of std_logic_vector (4 downto 0); 
signal av : offsets_type;

我想这样做,本质上是: av[addr] += 1;但是这一行:
 av(to_integer(unsigned(addr))) <= unsigned(av(to_integer(unsigned(addr))) + 1;

产生这个错误: to_integer can not have such operands in this context.
我也试过使用 conv_integer ,但这给 Wrong type of index作为错误。

任何解决方案?谢谢。

最佳答案

你的代码有几个问题:

  • 您将计算结果转换为 unsigned ,而左侧是 std_logic_vector
  • addr 的数据类型可能有问题,但您尚未与我们分享。
  • 作业中缺少一个右括号。

  • 如果在类型定义中使用“无符号”会更容易。通过这种方式,您表示位模式实际上是您想要在整数运算中使用的东西。
    type offsets_type is array (4 downto 0) of unsigned (4 downto 0);
    signal av : offsets_type;
    signal addr :unsigned(2 downto 0);

    这将为您节省一些类型转换:
    av(to_integer(addr)) <= av(to_integer(addr)) + "1";

    编辑:您确实使用了 ieee.numeric_std.all不是吗?

    关于vhdl - VHDL 中的索引数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5852174/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com