Quartus II (V15.02) では、コンパイル中に (Analysis & Synthesis のステップ)、最上位エンティティで qsys デザインのポート マップを割り当てると、次のエラーが発生します。
-------------------------------------------------- ------------
問題の詳細 エラー:
致命的なエラー: 0000000000000000 でのアクセス違反 モジュール: quartus_map.exeCould スタック トレースを取得できませんでした
実行可能ファイル: quartus_map
コメント:
なし
システム情報
プラットフォーム: windows64
OS 名: Windows 7 // Win 10 64 ビット
OS バージョン: 6.2を実行しています
Quartus II 情報
アドレス・ビット: 64
バージョン: 15.0.2
ビルド: 153
エディション: フル・バージョン
-------------------------------------------------- ------------
プロジェクトをクリーンアップした後 (プロジェクト -> リビジョン名: * -> OK)、 Analysis & Synthesisを実行するたびに前述のエラーが発生します。
マイ プロジェクトには以下が含まれます。 VHDL ファイル QSYS で生成されたインポートされた .qip ファイル。QSYS では、最初にエラーが表示された後に新しい hdl ファイルを生成しましたが、同じ結果になりました。私もdbオーダーを削除しましたが、それでも同じ結果です。プロジェクトは機能しました
私のプロジェクトには (最初にエラーが表示されるまで) Signal Tap と .sdc ファイルが含まれており、sdc ファイルには次の行が含まれていました。
派生クロック不確実性
派生_pll_クロック
ハードドライブから .sdc ファイルを削除して再試行しましたが、結果は同じでした
.qip ファイルを削除し、ポート マップをコメントしてコンパイルしました - 成功
次に、QSYS で新しい HDL ファイルを生成しました。
この後、Quartus II に .qip ファイルを追加しました (ポート マップはまだコメントされています) -> 成功
次に、ポートマップ定義のコメントを外しました->エラー
エラー メッセージが表示される前の最後のいくつかのログは次のとおりです。
情報 (10264): altera_trace_transacto_lite.v(206) の Verilog HDL ケース ステートメント情報: このケース ステートメントのすべてのケース項目式はワンホットです
情報 (10264): altera_trace_transacto_lite.v(314) の Verilog HDL ケース ステートメント情報: すべてのケース項目式警告 (10036): alt_sld_fab_alt_sld_fab_trfabric_capture_width.sv
(92) での Verilog HDL または VHDL 警告: オブジェクト "state_read_addr" に値が割り当てられましたが、読み取られません
警告 (10036): alt_sld_fab_alt_sld_fab_trfabric_capture_width.sv(96 ): オブジェクト "state_d1" に値が割り当てられましたが、読み取られませんでした
警告 (10036): alt_sld_fab_alt_sld_fab_trfabric_capture_width.sv(98) での Verilog HDL または VHDL 警告: オブジェクト "in_ready_d1" に値が割り当てられましたが、読み取られませんでした
警告 (10036): alt_sld_fab_alt_sld_fab_trfabric_capture_width.sv (117) での Verilog HDL または VHDL 警告: オブジェクト "b_startofpacket_wire" に値が割り当てられましたが、読み取られませ
ん値を割り当てたが読み取れない
警告 (10036): alt_sld_fab_alt_sld_fab_trfabric_capture_width.sv での Verilog HDL または VHDL 警告 (128): オブジェクト "mem_readdata1" に値が割り当てられましたが、読み取られませ
ん): オブジェクト "mem_readdata2" に値が割り当てられましたが、読み取られませんでした
警告 (10858): alt_sld_fab_alt_sld_fab_trfabric_capture_width.sv(140) での Verilog HDL 警告:オブジェクト state_waitrequest が使用されましたが、割り当てられませんでした
警告 (10036): alt_sld_fab_alt_sld_fab_trfabric_capture_width.sv (141) での Verilog HDL または VHDL 警告: オブジェクト "state_waitrequest_d1" に値が割り当てられましたが、読み取られません
警告 (10036): alt_sld_fab_alt_sld_fab_trfabric_capture_width.sv での Verilog HDL または VHDL 警告:値を割り当てたが読み取れない 警告 (10036): alt_sld_fab_alt_sld_fab_trfabric_capture_width.sv での Verilog HDL または VHDL 警告 (147): オブジェクト "out_empty" に値が割り当てられたが読み取れない
警告 (10036): alt_sld_fab_alt_sld_fab_trfabric_capture_width.sv(155 ): オブジェクト "out_error" に値が割り当てられましたが、読み取られませんでした
警告 (10230): alt_sld_fab_alt_sld_fab_trfabric_capture_width.sv(285) での Verilog HDL 割り当て警告:ターゲットのサイズに合わせてサイズ 32 で切り捨てられた値 (1)
警告 (10230): alt_sld_fab_alt_sld_fab_trfabric_capture_width.sv(301) での Verilog HDL 割り当て警告: ターゲットのサイズに合わせてサイズ 32 で切り捨てられた値 (1)
警告 (10230): alt_sld_fab_alt_sld_fab_trfabric_capture_width.sv(317) での Verilog HDL 割り当て警告: 切り捨てられた値size 32 to match the size of target (1)
警告 (10230): alt_sld_fab_alt_sld_fab_trfabric_capture_width.sv(334) での Verilog HDL 割り当て警告: ターゲットのサイズと一致するようにサイズ 32 で切り捨てられた値 (1)
警告 (10036): Verilog HDL または VHDL 警告alt_sld_fab_alt_sld_fab_trfabric_avalon_st_adapter_data_format_adapter_0.sv(92): オブジェクト「state_read_addr」に値が割り当てられましたが、読み取られませんでした
Warning (10858): Verilog HDL warning at alt_sld_fab_alt_sld_fab_trfabric_avalon_st_adapter_data_format_adapter_0.sv(137): object state_waitrequest used but never assigned
Warning (10036): Verilog HDL or VHDL warning at alt_sld_fab_alt_sld_fab_trfabric_avalon_st_adapter_data_format_adapter_0.sv(138): object "state_waitrequest_d1" assigned a value but never read
Warning (10036): Verilog HDL or VHDL warning at alt_sld_fab_alt_sld_fab_trfabric_avalon_st_adapter_data_format_adapter_0.sv(141): object "out_channel" assigned a value but never read
Warning (10036): Verilog HDL or VHDL warning at alt_sld_fab_alt_sld_fab_trfabric_avalon_st_adapter_data_format_adapter_0.sv(147): object "out_error"値を割り当てましたが、読み取られませんでした
Warning (10230): Verilog HDL assignment warning at alt_sld_fab_alt_sld_fab_trfabric_avalon_st_adapter_data_format_adapter_0.sv(290): truncated value with size 32 to match size of target (2)
Warning (10230): Verilog HDL assignment warning at alt_sld_fab_alt_sld_fab_trfabric_avalon_st_adapter_data_format_adapter_0.sv(311): truncated value withターゲットのサイズに合わせてサイズ 32 (2)
警告 (10230): alt_sld_fab_alt_sld_fab_trfabric_avalon_st_adapter_data_format_adapter_0.sv での Verilog HDL 割り当て警告 (334): ターゲットのサイズに合わせてサイズ 32 で切り捨てられた値 (2)
警告 (10230): Verilog HDL 割り当ての警告alt_sld_fab_alt_sld_fab_trfabric_avalon_st_adapter_data_format_adapter_0.sv(353): ターゲットのサイズに合わせてサイズ 32 で切り捨てられた値 (2)
警告 (10036): alt_sld_fab_alt_sld_fab_host_link_jtag_h2t_timing.sv(82) での Verilog HDL または VHDL 警告: オブジェクト "in_ready" に値が割り当てられましたが、読み取られませ
ん値を割り当てたが読み取れない
警告 (10036): alt_sld_fab_alt_sld_fab_stfabric_mgmt_time_adap.sv(84) での Verilog HDL または VHDL 警告: オブジェクト "in_ready" に値が割り当てられましたが、読み取られませんでした
情報 (12206): 2 つのデザイン パーティションに合成が必要です
情報 (12213): パーティションプロジェクト データベースにこのパーティションの合成後のネットリストが含まれていないため、"Top" には合成が必要です。
Info (12213): パーティション "sld_hub:auto_hub" には合成が必要です。これは、プロジェクト データベースにこのパーティションの合成後のネットリストが含まれていないためです。
Info (12209): 現在のインクリメンタル コンパイルで合成をスキップするデザイン パーティションはありません。
このコードで達成しようとしているのは、Qsys システムにルーティングする 50MHz 外部クロックと、Qsys で定義された PLL からの 10MHz クロックを各信号の LED でテストすることです。トップ レベル エンティティのコードは次のとおりです。
library IEEE;
use IEEE.STD_LOGIC_1164.all;
entity helloworld_lab1 is
Port (
clk_50_max10 : in std_logic; --50MHz Clock
--clk_25_max10 : in std_logic; --25MHz Clock
--clk_10_adc : in std_logic; --10MHz Clock
cpu_resetn : in std_logic; -- Button 0
user_led : out std_logic_vector (4 downto 0);
user_pb : in std_logic_vector(3 downto 0); -- Middle Buttons
);
end entity helloworld_lab1;
architecture behaviour of helloworld_lab1 is
-- Qsys Component --
component helloworld_lab is
port (
clk_clk : in std_logic := 'X'; -- clk
reset_reset_n : in std_logic := 'X'; -- reset_n
pio_switch_external_connection_export : in std_logic_vector(1 downto 0) := (others => 'X'); -- export
pio_led_external_connection_export : out std_logic_vector(2 downto 0); -- export
pll_clock_clk : out std_logic -- export
);
end component helloworld_lab;
Signal cycle_counter : integer range 0 to 50000000; -- 50 MHz results in 1 Second
Signal pll_cycle_counter : integer range 0 to 10000000; -- 10 MHZ results in 1 Second
Signal led_1sec : std_logic:='0'; -- Signal LED 0
Signal led_pll : std_logic :='1'; -- Signal LED 4
Signal clock_pll : std_logic; -- Port Map PLL Clock
begin
blink_led_1s : process (clk_50_max10)
begin
if (rising_edge(clk_50_max10)) then
cycle_counter <= cycle_counter+1;
if (cycle_counter>=49999999) then
cycle_counter<=0;
led_1sec<=not led_1sec;
end if;
end if;
end process blink_led_1s;
user_led(0)<=led_1sec;
-----------------------------------------------------------------------
blink_led_pll : process (clock_pll)
begin
if (rising_edge(clock_pll))then
pll_cycle_counter <= pll_cycle_counter+1;
if (pll_cycle_counter<=9999999) then
pll_cycle_counter<=0;
led_pll<=not led_pll;
end if;
end if;
end process blink_led_pll;
user_led(4) <=led_pll;
---------------------------------------------------------------------
-----------------------------------Qsys port map-----------------------------------------------
QSYS : component helloworld_lab
port map (
clk_clk => clk_50_max10,
reset_reset_n => cpu_resetn,
pio_switch_external_connection_export => user_pb(3 downto 2),
pio_led_external_connection_export => user_led(3 downto 1),
pll_clock_clk => clock_pll
);
end architecture behaviour;
これが Qsys システムのスクリーンショットです。
この問題を解決するための助けをいただければ幸いです。
