为什么我得到“找不到匹配的子程序”。错误?

穆罕默德·萨利(Mehmet SalihCüvelek)

我在包文件中编写了一个函数,然后在主vhd文件中调用了该函数。在我看来,一切都正确到位。但是Sigasi编辑说“找不到匹配的子程序”。在我调用该函数的那一行。

这是包文件的内容:

LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.numeric_std.ALL;

PACKAGE pkg IS

TYPE t IS ARRAY (positive RANGE <>) OF std_logic_vector(7 DOWNTO 0);
FUNCTION char2byte (SIGNAL yazi_char: character) RETURN std_logic_vector;   

END pkg;


PACKAGE BODY pkg IS

FUNCTION char2byte (SIGNAL yazi_char: character) RETURN std_logic_vector IS
VARIABLE yazi_byte: std_logic_vector;

BEGIN
case yazi_char is

    when '0' =>        yazi_byte:=x"30";
    when '1' =>        yazi_byte:=x"31";
    when '2' =>        yazi_byte:=x"32";
    ....

    when others => 

end case;

RETURN yazi_byte;
END char2byte;

END pkg;

这是主要文件内容:

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use WORK.pkg.ALL;

entity rs232 is
port(

clk:in std_logic;
tx_port:out std_logic

);
end rs232;


architecture Behavioral of rs232 is
signal yazi_byte: t;
begin

yazi_byte<=char2byte("y");

process(clk)
begin
....
end process;
end Behavioral;

哪里错了?有趣的是,ISE给出了另一个错误,而不是“未找到匹配的子程序”。

它是:

ERROR:HDLParsers:522 - "D:/UME/FPGA/ise_projeleri/RS232_TEST/pkg.vhd" Line 16. Variable yazi_byte is not constrained.
ERROR:HDLParsers:3304 - "D:/UME/FPGA/ise_projeleri/RS232_TEST/pkg.vhd" Line 16. Can not determine the "others" values in aggregate. (LRM 7.3.2)

感谢您的帮助。

布赖恩·德拉蒙德

问题是您将std_logic_vector与std_logic_vectort的数组混淆了

signal yazi_byte: t;
begin
yazi_byte<=char2byte("y");
...

现在t是一个不受约束的数组,它使您可以t在使用包时声明不同大小的。有两种方法可以做到这一点 :

  • 声明at并在声明中对其进行初始化:初始化程序(函数调用或数组聚合)定义其大小。适用于信号,但对常量特别有用
  • 将其限制为声明中所需的大小。

因此,第一个示例的长度限制为4个字节:

constant deadbeef : t := (X"DE", X"AD", X"BE", X"EF");

第二个示例当前的长度为1个字节:但是,您仍然需要在其中寻址该字节……这实际上就是为什么您会看到晦涩的错误消息的原因。

signal yazi_byte: t(0 downto 0);
begin
yazi_byte(0) <= char2byte("y");
...

VHDL具有运算符和函数重载,因此编译器正在寻找一个“ char2byte”函数,该函数返回一个数组,std_logic_vector因为这是您要分配的变量的类型。它找不到一个(因此“没有匹配的子程序”),因为您编写的唯一“ char2byte”返回单个std_logic_vector,而不是它们的数组。

因此,寻址该数组的单个元素将使其能够找到您的char2byte-现在错误消息变得十分合理了...

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么我得到变量找不到错误?

来自分类Dev

为什么我得到这个/ bin / sh:1:^ Mno:找不到错误

来自分类Dev

我为什么得到(系统找不到指定的路径)

来自分类Dev

为什么找不到让我匹配多个模式?

来自分类Dev

我找不到为什么我的代码 puttute 错误消息

来自分类Dev

为什么我得到这个程序的错误输出?

来自分类Dev

为什么我的 ocaml 程序找不到模块 Clflags?

来自分类Dev

为什么我不断收到“找不到符号”错误?

来自分类Dev

Android实现OneSignal,我得到找不到任何匹配错误

来自分类Dev

为什么我得到“找不到模块”我已经尝试了很多解决方案

来自分类Dev

为什么我的Flask Web应用程序无法正常工作?我自己找不到任何错误

来自分类Dev

为什么我得到“ ld:找不到体系结构x86_64的符号”

来自分类Dev

为什么我在ggplot中得到“找不到函数“ theme_rect””?

来自分类Dev

为什么在有匹配项时出现找不到匹配项的错误?

来自分类Dev

为什么为什么不断出现“找不到合适的驱动程序”错误?

来自分类Dev

为什么在PATH中找不到程序

来自分类Dev

为什么在XCode中得到“找不到-lPods的库”

来自分类Dev

为什么valgrind memcheck找不到错误?

来自分类Dev

为什么找不到错误js文件?

来自分类Dev

为什么我得到无效的命令名称“。!canvas”?我找不到任何可行的解决方案

来自分类Dev

为什么我得到了错误的列表?

来自分类Dev

为什么我得到的清单错误?

来自分类Dev

为什么我得到这个sqlite错误?

来自分类Dev

为什么我得到了错误的清单?

来自分类Dev

为什么我得到这个分段错误

来自分类Dev

为什么我得到这个错误的输出?

来自分类Dev

为什么我得到错误的除法答案?

来自分类Dev

为什么我得到这个错误的输出?

来自分类Dev

为什么找不到我的功能?

Related 相关文章

  1. 1

    为什么我得到变量找不到错误?

  2. 2

    为什么我得到这个/ bin / sh:1:^ Mno:找不到错误

  3. 3

    我为什么得到(系统找不到指定的路径)

  4. 4

    为什么找不到让我匹配多个模式?

  5. 5

    我找不到为什么我的代码 puttute 错误消息

  6. 6

    为什么我得到这个程序的错误输出?

  7. 7

    为什么我的 ocaml 程序找不到模块 Clflags?

  8. 8

    为什么我不断收到“找不到符号”错误?

  9. 9

    Android实现OneSignal,我得到找不到任何匹配错误

  10. 10

    为什么我得到“找不到模块”我已经尝试了很多解决方案

  11. 11

    为什么我的Flask Web应用程序无法正常工作?我自己找不到任何错误

  12. 12

    为什么我得到“ ld:找不到体系结构x86_64的符号”

  13. 13

    为什么我在ggplot中得到“找不到函数“ theme_rect””?

  14. 14

    为什么在有匹配项时出现找不到匹配项的错误?

  15. 15

    为什么为什么不断出现“找不到合适的驱动程序”错误?

  16. 16

    为什么在PATH中找不到程序

  17. 17

    为什么在XCode中得到“找不到-lPods的库”

  18. 18

    为什么valgrind memcheck找不到错误?

  19. 19

    为什么找不到错误js文件?

  20. 20

    为什么我得到无效的命令名称“。!canvas”?我找不到任何可行的解决方案

  21. 21

    为什么我得到了错误的列表?

  22. 22

    为什么我得到的清单错误?

  23. 23

    为什么我得到这个sqlite错误?

  24. 24

    为什么我得到了错误的清单?

  25. 25

    为什么我得到这个分段错误

  26. 26

    为什么我得到这个错误的输出?

  27. 27

    为什么我得到错误的除法答案?

  28. 28

    为什么我得到这个错误的输出?

  29. 29

    为什么找不到我的功能?

热门标签

归档