• 検索結果がありません。

リストとステートメント

ドキュメント内 vhdl #vhdl (ページ 64-68)

リストをつプロセスには、もめることはできません。これは、じプロセスとじで、リストなしで

、さらにの1つのステートメントがあります。

wait on <sensitivity_list>;

process(clock, reset) begin

if reset = '1' then q <= '0';

elsif rising_edge(clock) then q <= d;

end if;

end process;

のものとです。

process begin

if reset = '1' then q <= '0';

elsif rising_edge(clock) then q <= d;

end if;

wait on clock, reset;

end process;

VHDL2008はリストに

allキーワードをしました。これは、プロセスのどこかでみまれたすべての

にします 。のためのコンビナトリアルプロセスをするには、なリストをけるのがにです。なリス トの

process(a, b) begin

if ci = '0' then s <= a xor b;

co <= a and b;

else

s <= a xnor b;

co <= a or b;

end if;

end process;

ciはリストのではなく、これはのでシミュレーションのミスマッチにつながるコーディングエラ ーであるがにいです。しいコードはのとおりです。

process(a, b, ci) begin

if ci = '0' then s <= a xor b;

co <= a and b;

else

s <= a xnor b;

co <= a or b;

end if;

end process;

VHDL2008では、

allキーワードはこれをし、リスクをします。

process(all) begin

if ci = '0' then s <= a xor b;

co <= a and b;

else

s <= a xnor b;

co <= a or b;

end if;

end process;

がたされるまでつ

on <sensitivity_list>およびfor <timeout>をのようにすることはです。

wait until CONDITION;

これはとです

wait on LIST until CONDITION;

LISTはCONDITIONされるすべてののリストです。また、のものとです。

loop

wait on LIST;

exit when CONDITION;

end loop;

なは、 CONDITIONにシグナルがまれていない、のようになります。

wait until CONDITION;

のものとです。

wait;

これのなはなものです

wait until now = 1 sec;

これはえられることをしません。 nowはシグナルではなくなので、このステートメントをすると プロセスがにされます。

のつ

for <timeout>のみをすると、ちをのさせることができます。これはではありませんのハードウェ

アはこのようなをにできませんが、イベントのスケジューリングやテストベンチでのクロックの によくされます。

このでは、テストユニットをするためのシミュレーションテストベンチに100 MHz、50のデュー ティサイクルクロックをします。

constant period : time := 10 ns;

...

process begin loop

clk <= '0';

wait for period/2;

clk <= '1';

wait for period/2;

end loop;

end process;

このでは、テストベンチの/プロセスのをめるために、リテラルのをどのようにするかをしていま す。

process begin

rst <= '1';

wait for 50 ns;

wait until rising_edge(clk); --deassert reset synchronously rst <= '0';

uut_input <= test_constant;

wait for 100 us; --allow time for the uut to process the input if uut_output /= expected_output_constant then

assert false report "failed test" severity error;

else

assert false report "passed first stage" severity note;

uut_process_stage_2 <= '1';

end if;

...

wait;

end process;

オンラインでつをむ https://riptutorial.com/ja/vhdl/topic/6449/つ

9: い

これはシングルポートメモリとデュアルポートメモリをカバーします。

のとさのメモリタイプ。

type MEMORY_TYPE is array (0 to DEPTH-1) of std_logic_vector(WIDTH-1 downto 0);

とのメモリタイプ。

type MEMORY_TYPE is array (natural range <>) of std_logic_vector(WIDTH-1 downto 0);

Examples

ドキュメント内 vhdl #vhdl (ページ 64-68)

関連したドキュメント