0
I이 코드를 Modelsim에서 작성하고 감속하지만 구성 요소에서 "인덱스 된 이름 유형 std_ulogic을 유형 std_logic_vector로 해결할 수 없습니다"오류가 발생합니다. 그것을 고치는 방법? 내 구성 요소의오류를 수정하는 방법 "인덱싱 된 이름을 해결할 수 없습니다"
library IEEE;
use ieee.std_logic_1164.all,ieee.numeric_std.all,Work.all;
entity NbitCarrySkipAdder is
generic (n: integer :=8);
Port(A, B: in std_logic_vector (n-1 downto 0);
Cin: in std_logic;
Sum: out std_logic_vector (n-1 downto 0);
Cout: out std_logic);
end NbitCarrySkipAdder;
architecture behavioral of NbitCarrySkipAdder is
component NBitBlockWithSkipAdder is
generic(n:integer:=4);
port(a, b : in std_logic_vector(n-1 downto 0);
Cin_Block : in std_logic;
S : out std_logic_vector(n-1 downto 0);
Cout_Block : out std_logic);
end component NBitBlockWithSkipAdder;
signal Carry: std_logic_vector(0 to n);
begin
g1: for i in 0 to n-1 generate
lt: if i = 0 generate
f0: NBitBlockWithSkipAdder port map (A(i),B(i),Cin,Sum(i),Carry(i+1));
end generate lt;
rt: if i = n-1 generate
fn: NBitBlockWithSkipAdder port map (A(i),B(i),Carry(i),Sum(i),Cout);
end generate rt;
md: if i > 0 and i < n-1 generate
fm: NBitBlockWithSkipAdder port map (A(i),B(i),Carry(i),Sum(i),Carry(i+1));
end generate md;
end generate g1;
end architecture behavioral;
감속 위의 코드에서 감속과 동일합니다. 들으
합니다
어느 같이 인스턴스화하기 때문에,
A(i downto i)
같은std_logic
에NBitBlockWithSkipAdder
의 포트 타입을 변경하거나, 단일 비트와std_logic_vector
을 얻기 위해A
한 요소의 범위를 사용 서브 블록의 n을 1로 설정하는 일반 맵을 추가하십시오. –