vhdl에서 제약되지 않은 벡터를 반환하는 가장 좋은 방법은 무엇입니까? 이 경우 vhdl에서 무제한 배열 반환
function func(selector : natural) return std_logic_vector is
begin
case selector is
when 3 => return std_logic_vector("11");
when 4 => return std_logic_vector("101");
when others => return std_logic_vector("0");
end case;
end function;
나는 형식 변환 피연산자가 될 수 없습니다 문자열 리터럴을 얻을, 그래서 그것은 작동하지 않습니다. 신호 선택자는 일반적이므로 합성 할 필요가 없습니다.
숫자 리터럴 3과 4 뒤에 구문 오류가 있습니다. 명시 적으로 형식을 지정하는 정규 표현식을 사용한다는 의미입니까? 정규 표현식 :'std_logic_vector '("11")','std_logic_vector'("101")'및'std_logic_vector '("0")'. 표시되지 않은 오류 메시지는 문자열을 std_logic_vector로 변환 할 수 없다는 것을 알려줍니다. 요소 유형은 동일하지 않습니다 (문자 및 std_ulogic). 그 ':'는 "=>"이어야합니다. – user1155120
: 대신에 <=는 실수였습니다.이 부분을 stackexchange에 대해 불필요한 코드없이 입력했습니다. 원래 코드에는 "<="도 있습니다. 그러나, 그것은 당신이 괄호 앞에 언급 한 '함께 작동합니다. 많이 감사합니다. 이 함수가이 함수에서 어떻게 호출되는지에 대한 힌트를 줄 수 있습니까? 답장에 이것을 복사하십시오. –
그런 다음 질문을 수정하십시오 ... – JHBonarius