Vhdl에 다음 코드 조각이 있습니다.이 신호 S1을 출력 포트로 조건부로 리디렉션하고 싶습니다. 누군가가 이것을 통해 나를 안내 할 수 있으면 도움이 될 것입니다.Vhdl에서 생성 사용
Gen: for index in 0 to 4 generate
signal s1 : ARRAY_TYPE; --- array of (0 to 7) std_logic_vector (7 downto 0);
begin
process(CLK)
begin
if (rising_edge (CLK)) then
S1(counter_index) <= S_in((index*8+7) downto (index*8));
end if;
end if;
end process;
end generate Gen;
나는 내부 루프를 생성하는 프로세스를 사용할 수 있지만 다른 방법으로도 가능하다는 것을 알고 있습니다! S1을 글로벌 신호로 선언하면 다중 구동 네트에 연결된 신호가 발생합니까? 이게 어떻게 다른가요?
사람을 통해 나를 인도 할 수 있다면 정말 감사합니다이
정확히 무엇을 하려는지 명확하지 않습니다. 문제의 일부는 생성 루프 변수가 아닌'counter_index'를 사용하여'S1'을 인덱싱하는 것일 수 있습니다. – fru1tbat
답장을 보내 주셔서 대단히 감사합니다.필자는 언급 한대로 1Dx1D 배열 형식의 Fifo에 32 비트 입력 데이터를 저장하려고합니다. 이 Counter_index는 상태 머신에 의해 제어되는 write_pointer와 같은 인덱스이다. 알려 주시기 바랍니다. 아직 명확하지 않은 경우 다시 설명하게되어 기쁩니다. – user1107855
만약 타겟이 루프에 국부적이지 않고, 루프 변수에 의해 인덱싱되거나, 루프 변수의 하나의 값에 대해서만 조건부로 설정되는'for ... generate' 루프 안에 무엇인가를 할당하면 ('if index = 0 ... '), 여러 드라이버 문제가 발생합니다. – QuantumRipple