vhdl - 如何使用 numeric_std 添加 std_logic

标签 vhdl

使用 numeric_std 和 vhdl93,我似乎无法弄清楚如何将 std_logic 信号添加到 std_logic_vector。

library ieee;
use ieee.numeric_std.all;

signal in_a, out1: std_logic_vector(3 downto 0);
signal s1 : std_logic;

out1 <= std_logic_vector(signed(in_a) + s1);

最佳答案

library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;

entity add_std_logic is
end entity;

architecture foo of add_std_logic is
   signal in_a, out1: std_logic_vector(3 downto 0);
   signal s1 : std_logic;
   signal s1v:  std_logic_vector(0 to 0);
begin

    s1v <= (others => s1);

    out1 <= std_logic_vector(signed(in_a) + signed(s1v));

end architecture;

architecture fum of add_std_logic is
   signal in_a, out1: std_logic_vector(3 downto 0);
   signal s1 : std_logic;
   subtype s1v is  std_logic_vector(0 to 0);
begin

    out1 <= std_logic_vector(signed(in_a) + ( s1 & ""));

end architecture;

当然,您可以将 in_a、s1 和 out1 移至端口。

关于vhdl - 如何使用 numeric_std 添加 std_logic,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18689477/

相关文章:

VHDL 分配文字

vhdl - std_logic : ='X' 的操作

vhdl - 为什么4位加法器/减法器通过同时查看最后两个进位的两者来实现其溢出检测?

VHDL 属性保留

algorithm - 流水线蓄能器 VHDL

algorithm - 展位倍增算法

VHDL - std_logic_vector 问题

vhdl - vivado block 设计器在修改 verilog 或 vhdl RTL 文件后不更新 block 设计中的 RTL 接口(interface)

programming-languages - VHDL 图灵完整吗?

port - 如何使用端口映射忽略输出端口