2016-11-04 5 views
-1

질문이 있습니다. 신호 할당에 generate를 사용하고 싶습니다. 하지만 시뮬레이터에서 오류가 발생합니다. 오류는 "신호 할당을위한 잘못된 대상"입니다. 및 "알 수없는 식별자 A0_i."vhdl에서 신호 할당 자 생성

architecure sss of fff is 
signal A0_0 : bit ; 
signal A0_1 : bit ; 
signal A0_2 : bit ; 
signal A0_3 : bit ; 

begin 

U0 : for i in 0 to 3 generate 
U1 : A0_i <= a(i) and b(i) ; 
end generate; 

end sss; 
+0

A0에 0 ~ 3 범위의 비트 배열을 만들고 해당 범위를 포함하도록 Generate를 작성하십시오. U0 : A0'left에서 A0'right로 생성 U1 : A0 (i) <= a i)와 b (i); ' –

+0

감사합니다. 하지만 나는 신호 이름을 바꾸는 것을 허락하지 않는다. 이 문제를 해결할 방법이 있습니까? –

+0

신호의 대체 이름을 제공합니다 - * IEEE Std 1076-2008 6.6 별칭 선언, 6.6.1 별칭 선언은 기존 명명 된 엔터티에 대한 대체 이름을 선언합니다. *'signal A0 : bit_vector (0 to 3); 별칭 A0_0 : 비트는 A0 (0)입니다. 별칭 A0_1 : 비트는 A0 (1)입니다. 별칭 A0_2 : 비트는 A0 (2)입니다. 문제는 A0_i가 식별자, 분수가 아닌 어휘 구성 요소 (15.3)이며, A0_3이 식별자이고 A0 (i) 반면에 여기에서 색인 된 이름 (8.4)을 사용하려고합니다. – user1155120

답변

1

VHDL에는 대체 이름을 명명 된 개체와 연결하는 메커니즘이 있습니다.

참조 IEEE 표준 1076에서 2008 사이 6.6 별칭 선언, 일반 6.6.1 파라 1 :

별칭 선언은 기존 개체 명에 대한 대체 이름을 선언한다.

개체 별칭에 대한 규칙은 6.6.2 개체 별칭에 있습니다. 여기서는 생성 문 할당 문 대상에 대한 색인을 생성 할 수있는 이름 (8.4 색인 이름)을 제공합니다.

문제는 A0_i가 식별자 (15.4)와 불가분의 어휘 요소 (15.3)입니다.

entity fff is 
    port (
     a: in bit_vector(0 to 3); 
     b: in bit_vector(0 to 3) 
    ); 
end entity; 

architecture sss of fff is 
    -- signal A0_0 : bit ; -- REPLACED 
    -- signal A0_1 : bit ; 
    -- signal A0_2 : bit ; 
    -- signal A0_3 : bit ; 
    signal A0: bit_vector (0 to 3); -- ADDED 
-- IEEE Std 1076-2008 6.6 Alias declarations 
-- 6.6.1 General 
-- An alias declaration declares an alternate name for an existing named entity. 
    alias A0_0: bit is A0(0); 
    alias A0_1: bit is A0(1); 
    alias A0_2: bit is A0(2); 
    alias A0_3: bit is A0(3); 
begin 

U0: 
    for i in 0 to 3 generate 
U1:  A0(i) <= a(i) and b(i); 
    end generate; 

end architecture sss; 

객체라는 별칭 신호의 신호 배열을 선언 상기 프로그램 및 상기 어레이의 요소 별명 원래 이름 구성된 이름 집합체에 대해 생성 될 수 있기 때문이다.

추가 된 엔터티가있는이 수정 된 예는 색인 된 이름과 별칭 (예 : A0 (0) 및 A0_0)을 모두 분석하고 자세히 사용하도록 허용합니다.