【问题标题】:MicroBlaze is under RESETMicroBlaze 处于 RESET 状态
【发布时间】:2015-04-14 00:38:13
【问题描述】:

我正在使用 Atlys Spartan6 xc6slx45。 运行程序时出现以下错误:

1. Check whether board is connected to the system properly.
2. In case of zynq board, check whether Digilent/Xilinx cable switch   settings are correct.
3. If you are using Xilinx Platform cable USB, ensure that status LED is green.

MicroBlaze is under RESET. Check if the Reset input to MicroBlaze and its  Bus Interfaces are connected properly
UNABLE to STOP MicroBlaze

文件系统.ucf:

#  Generic Template
Net fpga_0_clk_1_sys_clk_pin TNM_NET = sys_clk_pin;
TIMESPEC TS_sys_clk_pin = PERIOD sys_clk_pin 50000 kHz;
## Net fpga_0_clk_1_sys_clk_pin LOC=;
Net fpga_0_rst_1_sys_rst_pin TIG;
## Net fpga_0_rst_1_sys_rst_pin LOC=;

system.mhs的一些细节:

PORT fpga_0_clk_1_sys_clk_pin = CLK_S, DIR = I, SIGIS = CLK, CLK_FREQ =    50000000
PORT fpga_0_rst_1_sys_rst_pin = sys_rst_s, DIR = I, SIGIS = RST,  RST_POLARITY = 0

BEGIN clock_generator
PARAMETER INSTANCE = clock_generator_0
PARAMETER C_CLKIN_FREQ = 50000000
PARAMETER C_CLKOUT0_FREQ = 66666666
PARAMETER C_CLKOUT0_PHASE = 0
PARAMETER C_CLKOUT0_GROUP = NONE
PARAMETER C_CLKOUT0_BUF = TRUE
PARAMETER C_EXT_RESET_HIGH = 0
PARAMETER HW_VER = 4.03.a
PORT CLKIN = CLK_S
PORT CLKOUT0 = clk_66_6667MHz
PORT LOCKED = Dcm_all_locked
PORT RST = Debug_SYS_Rst
END


BEGIN proc_sys_reset
PARAMETER INSTANCE = proc_sys_reset_0
PARAMETER C_EXT_RESET_HIGH = 0
PARAMETER HW_VER = 3.00.a
PORT Slowest_sync_clk = clk_66_6667MHz
PORT Ext_Reset_In = sys_rst_s
PORT MB_Debug_Sys_Rst = Debug_SYS_Rst
PORT Dcm_locked = Dcm_all_locked
PORT MB_Reset = mb_reset
PORT Bus_Struct_Reset = sys_bus_reset
PORT Peripheral_Reset = sys_periph_reset
PORT Interconnect_aresetn = proc_sys_reset_0_Interconnect_aresetn_0
END

我应该为重置设置什么值才能使 microblaze 工作。

【问题讨论】:

    标签: fpga xilinx microblaze xilinx-edk


    【解决方案1】:

    Digilent 有 reference design 使用 microblaze,你应该去抢。

    否则,您的 UCF 文件没有位置限制。哪个引脚是时钟?哪个是复位?你必须告诉工具!

    从 AC97 参考设计中,如果将这些放入 UCF(并删除其他所有内容)应该没问题:

    Net fpga_0_clk_1_sys_clk_pin LOC = "L15" | IOSTANDARD = "LVCMOS33";
    Net fpga_0_rst_1_sys_rst_pin LOC = "T15" | IOSTANDARD = "LVCMOS33" | TIG;
    Net fpga_0_clk_1_sys_clk_pin TNM_NET = sys_clk_pin;
    TIMESPEC TS_sys_clk_pin = PERIOD sys_clk_pin 100000 kHz;
    

    您应该注意到 microblaze 系统需要 50MHz 的时钟,而您在板上的时钟是 100MHz,您应该确保您的系统在此更改后仍然可以正常工作。您还必须适当地调整您的 system.mhs。

    【讨论】:

    • 我不明白这句话是什么意思“你应该注意到microblaze系统需要一个50MHz的时钟,而你板上的时钟是100MHz,你应该确保你的系统这个改动还是可以的”???
    • 在您的 .mhs 和原始 .ucf 中,时钟被声明为 50MHz 时钟。板上的时钟为 100MHz。您至少必须修改 .ucf(我给出的代码有修改)和 .mhs 以反映现实。我认为 EDK 可能会处理更改,但您可能必须手动更改时钟 ip。
    • 我按照你的说法更改了.ucf,在.mhs中我这样做了“CLK_FREQ = 100000000”但是当我运行SDK时我得到了同样的错误。
    • 那么我建议您尝试 Digilent 的参考设计,并确保您的工具设置正确。
    • PhysDesignRules:2449 - PLL_ADV 实例 clock_generator_0/clock_generator_0/PLL0_INST/Using_PLL_ADV.PLL_ADV_inst 的 VCO 工作频率的计算值为 2000.000000 MHz。这超出了该器件 400.000000 - 1080.000000 MHz 的 PLL VCO 频率的工作范围。请调整输入频率 CLKINx_PERIOD、倍频因子 CLKFBOUT_MULT 或分频因子 DIVCLK_DIVIDE,以使 VCO 频率在此设备的额定工作范围内。
    猜你喜欢
    • 2014-06-21
    • 2018-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-12
    • 2017-11-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多