generate 내부의 정수에서 binary std_logic_vector를 가져 오려고합니다. 예를 들어VHDL : 생성 블록의 반복자를 std_logic_vector로 변환하는 방법은 무엇입니까?
,
0 -> 0000
1 -> 0010
...
15 - -> 1,111
> 0001
2 각 정수에 대해 16 개의 if-else 문을 쓸 수는 있지만이 아이디어는 마음에 들지 않습니다. 나는 두 가지 방법을 사용하려고했습니다
(? 나는 많은 16 개 이상의 정수 번호를 어떻게해야합니다 경우),하지만 그들 중 어느 것도 작동합니다 주소와 히트
G_1 : for i in 0 to 15 generate
address <= conv_std_logic_vector(i, 4) when hit(i) = '1';
end generate G_1;
G_2 : for i in 0 to 15 generate
address <= std_logic_vector(to_unsigned(i, 4)) when hit(i) = '1';
end generate G_2;
또한 내가 눈치 모두 std_logic_vector 있습니다 내가 번호 대신 번호를 사용하면 작동한다는 것입니다. (예 : conv_std_logic_vector (5, 4)를 사용할 때 "0101"이됩니다.)
내가 뭘 잘못하고 있니? vhdl을 사용하여 가능한 모든 방법이 있습니까?
대단히 감사합니다. 잘 작동합니다.) –
VHDL 2008 이상을 사용하고 있다면 'unsigned'(해결됨) 대신에'u_unsigned' (unresolved)를 사용할 수도 있습니다. 이렇게하면 여러 드라이브 상황에서 오류가 발생합니다. –