Skip to content

k7 325t的mig固化:mb and mig

minichao9901 edited this page May 21, 2024 · 3 revisions

参考文章

https://support.xilinx.com/s/article/000036208?language=zh_CN 这一篇写的非常好

https://www.cnblogs.com/milianke/p/17693804.html 这个是米联客的,写的也不错。

https://blog.51cto.com/zhangsz0516/6103252 这篇文章,讲解固化过程中遇到的bug的。我也遇到了。

mb+mig小系统生成:

时钟方案1, 用一个mmcm产生100MHz+200MHz, 100MHz给mb, 200MHz给mig。注意quadspi的配置,mx25系列是macronix公司

bd的创建流程:clock_wizard-->mb-->mig-->uartlite+quadspi

image image image image

注意引脚分配,quadspi也需要分配引脚

create_clock -period 20.000 -name clk [get_ports clk]
set_property -dict {PACKAGE_PIN G22 IOSTANDARD LVCMOS33} [get_ports clk]
set_property -dict {PACKAGE_PIN D26 IOSTANDARD LVCMOS33} [get_ports rst_n]

set_property -dict {PACKAGE_PIN B20 IOSTANDARD LVCMOS33} [get_ports uart_rtl_0_rxd]
set_property -dict {PACKAGE_PIN C22 IOSTANDARD LVCMOS33} [get_ports uart_rtl_0_txd]

set_property -dict {PACKAGE_PIN C23 IOSTANDARD LVCMOS33} [get_ports spi_rtl_0_ss_io]
set_property -dict {PACKAGE_PIN B24 IOSTANDARD LVCMOS33} [get_ports spi_rtl_0_io0_io]
set_property -dict {PACKAGE_PIN A25 IOSTANDARD LVCMOS33} [get_ports spi_rtl_0_io1_io]
set_property -dict {PACKAGE_PIN B22 IOSTANDARD LVCMOS33} [get_ports spi_rtl_0_io2_io]
set_property -dict {PACKAGE_PIN A22 IOSTANDARD LVCMOS33} [get_ports spi_rtl_0_io3_io]

set_property BITSTREAM.CONFIG.SPI_BUSWIDTH 4 [current_design]
set_property CONFIG_MODE SPIx4 [current_design]
set_property BITSTREAM.CONFIG.CONFIGRATE 50 [current_design]
set_property BITSTREAM.GENERAL.COMPRESS TRUE [current_design]
set_property BITSTREAM.CONFIG.UNUSEDPIN Pullup [current_design]
set_property CFGBVS VCCO [current_design]
set_property CONFIG_VOLTAGE 3.3 [current_design]

程序与固化

情形1:程序在local-memory中运行,可以按照传统方案直接固化(这个时候quadspi其实是不需要的)。固化后可以正常运行。

image image image

情形2:程序在ddr3中运行,如果按传统方案固化,报错如下。这种情况必须手动创建bootloader,并借助于quadspi

image image

image image 注意需要创建一个bootloader工程。先用bootloader.elf生成download.bit

image 先将bootloader程序烧录到flash中,运行看效果。

mb+mig小系统生成:

时钟方案2, 用一个mmcm产生200MHz, 200MHz给mig, mig选择400MHz工作频率,输出ui_clk为100MHz给mb使用

bd的创建流程:clock_wizard-->mig-->mb-->uartlite+quadspi

image image image

运行效果ok

image image

Clone this wiki locally