문제

이진 문자열로 표시된 데이터를 어떻게 보내나요 (예 : "01011101000100111", 길이는 가변적입니다) 고정 지연 또는 시계 신호가 주어진 std_logic 신호에? 나는 테스트 벤치를 위해 이것을 원하기 때문에 가능한 한 번거 로움으로 바이너리 스트링을 임의로 변경할 수 있기를 원하므로 사용하려고 생각하고 있습니다. generate.

도움이 되었습니까?

해결책

고정 지연 버전을 겸손하게 제시합니다 (결국 테스트 벤치 코드입니다 ...). 나는 이것을 확인했고 그것이 작동하지만, Verilog에서 더 편안 하므로이 코드는 가장 멋진 VHDL이 아닐 수도 있습니다 ...

--
-- Clocking out bitstream
--

library ieee;
use ieee.std_logic_1164.all;

entity stackoverflow_strings is
end stackoverflow_strings;

-- this is testbench code, so we can use "wait"s inside a "for" loop.
architecture rtl of stackoverflow_strings is
signal my_output : std_ulogic;
begin

shift_data : process is
constant my_bits : std_logic_vector := B"100101010000100010101";
begin
   my_output <= '0';
   wait for 10 ns; 
   for i in my_bits'range loop
      my_output <= my_bits(i);
      wait for 10 ns;
   end loop; 

   wait;
end process shift_data;

end rtl;

다른 팁

Marty의 훌륭한 대답에 추가하기 위해 :

시계를 만들려면 변경하십시오 wait for 10 ns;s to wait until rising_edge(clk);

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top