1

"01011101000100111"固定遅延またはクロック信号のいずれかを指定して、バイナリ文字列 (たとえば、長さは可変) で表されるデータを std_logic 信号に送信するにはどうすればよいですか? これはテストベンチ用に欲しいのでバイナリ文字列を任意に変更できるようにしたいので手間をかけずにgenerate.

4

2 に答える 2

2

固定遅延バージョンを謙虚に提示します (これは結局テストベンチ コードです...)。私はこれをチェックして動作しますが、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;
于 2009-11-27T18:48:38.173 に答える
0

マーティの細かい答えに追加するには:

クロックを設定するには、wait for 10 ns;sをに変更しますwait until rising_edge(clk);

于 2009-12-02T12:00:08.037 に答える