无符号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;