2016-12-07 1 views
1

나는 그것을 할 수 있다고 확신하지만, 타입 네이밍에 집착하고있다.VHDL : 배열을 매개 변수로 사용하여 함수를 호출 할 수 있으며 배열을 반환 할 수 있습니까?

VHDL 함수 = 함수 FUNCTION_NAME (파라미터 : type) 가 반환

*parameters* = a label for an input parameter to the function. 
    *type* = the type of the parameter, like std_logic, std_logic_vector, string or other. 

VHDL 어레이 = TYPE_NAME가 배열 형 (범위) ELEMENT_TYPE

*range* = The range of elements the array is going to occupy. 
    *element_type* = The type of each element in the array. "type" is like the type discussed for the function. 

배열은 자체 유형을 정의합니다.

매개 변수를 함수의 매개 변수 유형으로 할당하는 방법은 무엇입니까?

배열이 함수에서 사용될 때 함수의 반환 값으로 할당하는 방법은 무엇입니까?

누군가가 예제를 제공 할 수 있습니까?

미리 감사드립니다.

+1

는 지금까지 내가 기억하는'std_logic_vector' 배열입니다 예를 들면 다음과 같습니다. – mouviciel

답변

2

VHDL에 대한 훌륭한 점 중 하나는 매우 잘 생각되고 일관된 언어라는 것입니다. 뭔가를하는 것이 합리적이라면 일반적으로 할 수 있습니다. 한 곳에서 뭔가를 할 수 있다면 다른 곳에서 할 수 있습니다. 함수에 대한 모든 입력에는 유형이 있어야합니다. 함수로부터의 반환 값은 타입을 가져야한다. 여러분이 말했듯이, 배열은 하나의 타입입니다. 따라서 함수에 대한 입력과 함수에서 반환하는 값은 배열이 될 수 있습니다.

type MY_ARRAY is array (0 to 9) of integer; 

    function MY_ARRAY_FUNC (I : MY_ARRAY) return MY_ARRAY is 
    begin 
    return (9,8,7,6,5,4,3,2,1,0); 
    end function; 

https://www.edaplayground.com/x/njv

관련 문제