VHDLを書いてから数年が経ちました。プロシージャ内の信号に定数値を代入すると致命的なエラーが発生する
私は私が作ったモジュールのテストベンチを作っていますし、それがUUT上のレジスタに書き込むために、この手順を使用しています。それは、このメイン刺激プロセスから呼び出された
procedure write_data_proc (
constant data_value : in std_logic_vector;
signal write_en : out std_logic;
signal data_in : out std_logic_vector;
signal clk : in std_logic
) is
begin
wait until falling_edge(clk);
write_en <= '1';
data_in <= data_value;
wait until falling_edge(clk);
write_en <= '0';
end procedure;
:
stim_process: process
begin
mask <= "0000000011111111";
reset <= '1';
wait for 2 ns;
reset <= '0';
wait for 3 ns;
write_data_proc("0000000011110000",write_en,data_in,clk);
write_data_proc("0000000011001100",write_en, data_in,clk);
write_data_proc("0000000010001001",write_en,data_in,clk);
read_bytes(3,8,data_read, data_read_master, clk);
end process;
私が持っている
data_in <= data_value;
:
ModelSimが私の手順で次の行に "FATAL ERROR" を与えます私の頭を奪って、私は私の方法で私を助けるためにほとんど見つけることができません。ここで何が起こっているのか理解してくれる人がいらっしゃることを願っています。より多くの情報が必要な場合は、私はより多くのコードを提供してくれるでしょう。
ありがとうございます!
[MCVE](http://stackoverflow.com/help/mcve)に加えて、実際の完全なエラーメッセージ、および/または誰がシミュレータの表示を助けることができます。 Brianの答えは、コードスニペットが有効であるように見えるため、ツールの実装上の問題やコードスニペットの外部での問題(一般的に後者の可能性が高い)のいずれかを残します。問題を再現するためにMCVEを作成すると、問題が明らかになる傾向があります。 – user1155120