使用Qsys系统

时间:2016-06-09 13:07:48

标签: compiler-errors vhdl intel-fpga quartus qsys

在Quartus II(V15.02)编译时(步骤分析和合成)当我在顶层实体中为qsys设计分配端口映射时,我得到以下错误:

-------------------------------------------- ------------------

问题详情 错误:

  

致命错误:0000000000000000处的访问冲突   模块:quartus_map.exe无法获取堆栈跟踪

可执行文件:quartus_map
点评:
没有

系统信息
平台:windows64
操作系统名称:Windows 7 //我正在运行Win 10 64bit
操作系统版本:6.2

Quartus II信息
地址位:64
版本:15.0.2
建立:153
版本:完整版

-------------------------------------------- ------------------

我清理了项目后(项目 - >修订名称:* - >确定)每次运行分析&时,我都会得到上述错误合成

我的项目包含: VHDL文件 使用QSYS生成的导入.qip文件。在QSYS中,我确实在第一次出现错误后生成了一个新的hdl文件,但结果相同。我也删除了db命令,但结果仍然相同。该项目工作

我的项目包含(直到第一次出现错误)一个Signal Tap和.sdc文件,并且在sdc文件中有以下行:

  

derive_clock_uncertainty

     

derive_pll_clocks

我从硬盘中删除了.sdc文件并再次尝试 - 结果相同

我删除了.qip文件,注释了端口映射并编译成功

然后我在QSYS中生成了一个新的HDL文件。

在此之后我在Quartus II中添加了.qip文件(端口地图仍然评论过) - >成功

然后我取消注释了端口映射定义 - >错误

弹出错误消息之前的最后几个日志如下:

  

Info(10264):altera_trace_transacto_lite.v上的Verilog HDL案例陈述信息(206):此案例陈述中的所有案例项表达式均为onehot
  信息(10264):altera_trace_transacto_lite.v(314)中的Verilog HDL案例陈述信息:此案例陈述中的所有案例项表达式均为onehot
  警告(10036):alt_sld_fab_alt_sld_fab_trfabric_capture_width.sv(92)中的Verilog HDL或VHDL警告:object" state_read_addr"分配了一个值,但从未读过   警告(10036):alt_sld_fab_alt_sld_fab_trfabric_capture_width.sv(96)中的Verilog HDL或VHDL警告:object" state_d1"分配了一个值,但从未读过   警告(10036):alt_sld_fab_alt_sld_fab_trfabric_capture_width.sv(98)中的Verilog HDL或VHDL警告:object" in_ready_d1"分配了一个值,但从未读过   警告(10036):alt_sld_fab_alt_sld_fab_trfabric_capture_width.sv(117)中的Verilog HDL或VHDL警告:object" b_startofpacket_wire"分配了一个值,但从未读过   警告(10036):alt_sld_fab_alt_sld_fab_trfabric_capture_width.sv(123)中的Verilog HDL或VHDL警告:object" mem_readdata0"分配了一个值,但从未读过   警告(10036):alt_sld_fab_alt_sld_fab_trfabric_capture_width.sv(128)中的Verilog HDL或VHDL警告:object" mem_readdata1"分配了一个值,但从未读过   警告(10036):alt_sld_fab_alt_sld_fab_trfabric_capture_width.sv(133)中的Verilog HDL或VHDL警告:object" 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警告:object" state_waitrequest_d1"分配了一个值,但从未读过   警告(10036):alt_sld_fab_alt_sld_fab_trfabric_capture_width.sv(144)中的Verilog HDL或VHDL警告:object" out_channel"分配了一个值但从未读过   警告(10036):alt_sld_fab_alt_sld_fab_trfabric_capture_width.sv(147)中的Verilog HDL或VHDL警告:object" out_empty"分配了一个值,但从未读过   警告(10036):alt_sld_fab_alt_sld_fab_trfabric_capture_width.sv(150)中的Verilog HDL或VHDL警告:object" out_error"分配了一个值,但从未读过   警告(10230):alt_sld_fab_alt_sld_fab_trfabric_capture_width.sv上的Verilog HDL分配警告(285):大小为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分配警告:大小为32的截断值与目标大小(1)相匹配
  警告(10230):alt_sld_fab_alt_sld_fab_trfabric_capture_width.sv上的Verilog HDL分配警告(334):大小为32的截断值,以匹配目标大小(1)
  警告(10036):alt_sld_fab_alt_sld_fab_trfabric_avalon_st_adapter_data_format_adapter_0.sv(92)中的Verilog HDL或VHDL警告:object" state_read_addr"分配了一个值,但从未读过   警告(10858):alt_sld_fab_alt_sld_fab_trfabric_avalon_st_adapter_data_format_adapter_0.sv(137)中的Verilog HDL警告:对象state_waitrequest已使用但从未分配
  警告(10036):alt_sld_fab_alt_sld_fab_trfabric_avalon_st_adapter_data_format_adapter_0.sv(138)中的Verilog HDL或VHDL警告:object" state_waitrequest_d1"分配了一个值,但从未读过   警告(10036):alt_sld_fab_alt_sld_fab_trfabric_avalon_st_adapter_data_format_adapter_0.sv(141)中的Verilog HDL或VHDL警告:object" out_channel"分配了一个值,但从未读过   警告(10036):alt_sld_fab_alt_sld_fab_trfabric_avalon_st_adapter_data_format_adapter_0.sv(147)中的Verilog HDL或VHDL警告:object" out_error"分配了一个值,但从未读过   警告(10230):alt_sld_fab_alt_sld_fab_trfabric_avalon_st_adapter_data_format_adapter_0.sv(290)中的Verilog HDL分配警告:截断值大小为32以匹配目标大小(2)
  警告(10230):alt_sld_fab_alt_sld_fab_trfabric_avalon_st_adapter_data_format_adapter_0.sv(311)中的Verilog HDL分配警告:截断值,大小为32,以匹配目标大小(2)
  警告(10230):alt_sld_fab_alt_sld_fab_trfabric_avalon_st_adapter_data_format_adapter_0.sv(334)中的Verilog HDL分配警告:大小为32的截断值,以匹配目标的大小(2)
  警告(10230):alt_sld_fab_alt_sld_fab_trfabric_avalon_st_adapter_data_format_adapter_0.sv(353)中的Verilog HDL分配警告:截断值大小为32以匹配目标大小(2)
  警告(10036):alt_sld_fab_alt_sld_fab_host_link_jtag_h2t_timing.sv(82)中的Verilog HDL或VHDL警告:object" in_ready"分配了一个值,但从未读过   警告(10036):alt_sld_fab_alt_sld_fab_stfabric_mgmt_demux_port_adap.sv(74)中的Verilog HDL或VHDL警告:object" out_channel"分配了一个值,但从未读过   警告(10036):alt_sld_fab_alt_sld_fab_stfabric_mgmt_time_adap.sv(84)中的Verilog HDL或VHDL警告:object" in_ready"分配了一个值,但从未读过   信息(12206):2个设计分区需要合成
  信息(12213):分区" Top"需要综合,因为项目数据库不包含该分区的综合后网表
  信息(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系统的截图。

Qsys Screenshot

感谢您解决此问题的任何帮助。

0 个答案:

没有答案