无符号VHDL转换不工作

无符号VHDL转换不工作,vhdl,Vhdl,也试过 ERROR:HDLCompiler:806 - "..." Line 40: Syntax error near "b". 没有解决方案。转换例程调用包numeric\u std中的到,并为无符号生成一个自然范围整数 使用变量输入:整数:=to_整数(无符号(a))输入将初始化为a的初始值,并转换为整数(如果a未初始化(所有'U's),则很可能0) 输入没有其他赋值,输入不会随a值的变化而变化 将变量输入声明替换为 to_integer(unsigned()) integer(uns

也试过

ERROR:HDLCompiler:806 - "..." Line 40: Syntax error near "b". 

没有解决方案。

转换例程调用包numeric\u std中的到,并为无符号生成一个自然范围整数

使用
变量输入:整数:=to_整数(无符号(a))输入将初始化为
a
的初始值,并转换为整数(如果
a
未初始化(所有
'U'
s),则很可能
0

输入没有其他赋值
输入
不会随
a
值的变化而变化

将变量
输入
声明替换为

to_integer(unsigned())
integer(unsigned())
integer(to_unsigned())
to_integer(to_unsigned())
use IEEE.ARITH and IEEE.STD_LOGIC.UNSIGNED
它将输入范围限制为索引范围
Y\u c

作为进程的第一个顺序语句

两项任务:

    inputs := to_integer(unsigned(a));
是冗余的。可以消除elsif:

        Y_c := X"0000";
ieee库;
使用ieee.std_logic_1164.all;
使用ieee.numeric_std.all;
实体fourToSixteenDecoder是
港口(
a:标准逻辑向量(0到3);
EN:标准逻辑;
Y:输出标准逻辑向量(0到15)
);
终端实体四位一体编码器;
fourToSixteenDecoder的体系结构是
开始
过程(a,EN)
--变量输入:整数:=conv_整数(无符号(a));
变量输入:整数范围0到15;
变量Y_c:std_逻辑_向量(0到15);
开始
输入:=到_整数(无符号(a));--已添加
Y_c:=X“0000”;
如果EN='1',则
Y_c(输入):=“1”;
--elsif(EN='0')然后
--Y_c:=X“0000”;
如果结束;

Y转换例程调用
到包numeric\u std中的\u integer
,并为无符号生成一个自然范围整数

使用
变量输入:integer:=to_integer(无符号(a));
输入将初始化为
a
的初始值,并转换为整数(如果
a
未初始化(所有
'U'
s),则可能
0

输入没有其他赋值
输入
不会随
a
值的变化而变化

将变量
输入
声明替换为

to_integer(unsigned())
integer(unsigned())
integer(to_unsigned())
to_integer(to_unsigned())
use IEEE.ARITH and IEEE.STD_LOGIC.UNSIGNED
它将输入范围限制为索引范围
Y\u c

作为进程的第一个顺序语句

两项任务:

    inputs := to_integer(unsigned(a));
是冗余的。可以消除elsif:

        Y_c := X"0000";
ieee库;
使用ieee.std_logic_1164.all;
使用ieee.numeric_std.all;
实体fourToSixteenDecoder是
港口(
a:标准逻辑向量(0到3);
EN:标准逻辑;
Y:输出标准逻辑向量(0到15)
);
终端实体四位一体编码器;
fourToSixteenDecoder的体系结构是
开始
过程(a,EN)
--变量输入:整数:=conv_整数(无符号(a));
变量输入:整数范围0到15;
变量Y_c:std_逻辑_向量(0到15);
开始
输入:=到_整数(无符号(a));--已添加
Y_c:=X“0000”;
如果EN='1',则
Y_c(输入):=“1”;
--elsif(EN='0')然后
--Y_c:=X“0000”;
如果结束;

Y这是34行长。那么第40行是哪一行呢?如果您将
conv\u integer
更改为
to\u integer
,则发布的代码将编译。这是34行长。那么第40行是哪一行呢?如果您将
conv\u integer
更改为
to\u integer
,则发布的代码将编译。
library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;

entity tb_4to16 is
end entity;

architecture fum of tb_4to16 is
    signal a:   std_logic_vector (0 to 3) := (others => '0');
    signal EN:  std_logic;
    signal Y:   std_logic_vector(0 to 15);
begin
DUT:
        entity work.fourtosixteendecoder
        port map (
            a => a,
            EN => EN,
            Y => Y
        );
STIMULI:
    process
    begin
        for i in 0 to 15 loop
            EN <= '0';
            a <= std_logic_vector(to_unsigned(i,4));
            wait for 10 ns;
            EN <='1';
            wait for 10 ns;
        end loop;
        EN <= '0';
        wait for 10 ns;
        wait;
    end process;
end architecture;