2013-04-12 2 views
2

std_logic_vector을 선언하여 입력 크기에 따라 크기가 계속 변경 될 수있는 방법이 있습니까?VHDL - 동적 std_logic_vector 크기

내가하고 싶은 것은 std_logic_vector을 8 비트 입력 한 다음 입력 값을 저장하는 동적 인 std_logic_vector 신호입니다. 그런 다음 다음에 입력 값이 다시 수신되면 동적 신호의 끝에이 값을 연결합니다.

+3

VHDL은 하드웨어 설명 언어입니다. std_logic_vector를 구현하는 것은 많은 수의 전선을 설치하는 것과 같습니다. 와이어의 양을 동적으로 변경할 수 없습니다! – baldyHDL

+1

정확히 무엇을 달성하려고하는지 명확하지 않습니다. 컴파일 및 정교화 후에 동적으로 변경되는 std_logic_vector를 얻으려는 경우에는 수행 할 수 없습니다. 당신이 역동적 일 때 그것을 찾고 있다면, 그럴 수 있습니다 (범위를 지정하지 않음으로써). 일반적으로 진정한 "동적 폭"이 필요한 경우 가능한 가장 넓은 입력 폭만큼 폭을 지정한 다음 다른 입력을 (일반적으로 0으로) 채 웁니다. – Josh

+0

감사합니다. Josh, 쓸모없는 비트를 0으로 채우라는 제안을 사용하겠습니다. – Triple777er

답변

3

찾고있는 동작을 수행 할 수 없습니다. std_logic_vector의 크기는 컴파일 할 때 알아야합니다. VHDL은 하드웨어를 설명하는 데 사용되기 때문에 동적 크기 인 std_logic_vector은 동적 하드웨어에 해당합니다 (예 : 런타임 중에 더 많은 레지스터가 인스턴스화 됨). 이건 불가능 해.

당신이 말하는 것은 시프트 레지스터 같은 것입니다. std_logic_vector(MAX_LEN-1 downto 0)을 정의한 다음 새 값을 받으면 각 바이트를 상위 바이트 위치로 옮길 수 있습니다.

+0

삭제 해 주셔서 감사합니다. – Triple777er