Vhdl 如何使用数字标准添加标准逻辑

Vhdl 如何使用数字标准添加标准逻辑,vhdl,Vhdl,使用numeric_std和VHDL 93,我似乎无法理解如何将std_逻辑信号添加到std_逻辑向量 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); ieee库; 使用ieee.numeric_std.all; 信号输入

使用numeric_std和VHDL 93,我似乎无法理解如何将std_逻辑信号添加到std_逻辑向量

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);
ieee库;
使用ieee.numeric_std.all;
信号输入a,输出1:标准逻辑向量(3向下至0);
信号s1:std_逻辑;
out1
库ieee;
使用ieee.std_logic_1164.all;
使用ieee.numeric_std.all;
实体添加\u标准\u逻辑为
终端实体;
add_std_逻辑的体系结构foo是
信号输入a,输出1:标准逻辑向量(3向下至0);
信号s1:std_逻辑;
信号s1v:标准逻辑向量(0到0);
开始
s1v-s1);

out1谢谢:我知道诀窍是创建一个长度为1的向量:
(s1&>)
,除非您需要使用std\u logic\u向量,否则最好直接使用有符号或无符号向量,特别是对于信号,但对于端口也是如此。这避免了到处都需要强制转换,并有助于记录信号的用途。正数值(计数器、地址):无符号。正负数值(数据):有符号。非数字数据(控制信号、聚合):标准逻辑(矢量)。
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;