自定义Versal BSP创建XSA文件
新建工程:
紧接着添加CIPS
双击,
然后根据你的硬件添加外设,例如我添加SPI的存储器、EMMC和SD卡
这里图片截图有问题,GEM0需要勾选MDIO。
接下来按OK即可,我们现在开始配置NOC
按OK后退出,我们配置这个时钟
紧接着创建例化模板:
Verilog程序(top.v)
`timescale 1ns / 1ps module top ( CH0_DDR4_0_0_act_n, CH0_DDR4_0_0_adr, CH0_DDR4_0_0_ba, CH0_DDR4_0_0_bg, CH0_DDR4_0_0_ck_c, CH0_DDR4_0_0_ck_t, CH0_DDR4_0_0_cke, CH0_DDR4_0_0_cs_n, CH0_DDR4_0_0_dm_n, CH0_DDR4_0_0_dq, CH0_DDR4_0_0_dqs_c, CH0_DDR4_0_0_dqs_t, CH0_DDR4_0_0_odt, CH0_DDR4_0_0_reset_n, sys_clk0_0_clk_n, sys_clk0_0_clk_p, sys_rst_n_in, PL_LED ); output [0:0] CH0_DDR4_0_0_act_n; output [16:0] CH0_DDR4_0_0_adr; output [1:0] CH0_DDR4_0_0_ba; output [0:0] CH0_DDR4_0_0_bg; output [0:0] CH0_DDR4_0_0_ck_c; output [0:0] CH0_DDR4_0_0_ck_t; output [0:0] CH0_DDR4_0_0_cke; output [0:0] CH0_DDR4_0_0_cs_n; inout [7:0] CH0_DDR4_0_0_dm_n; inout [63:0] CH0_DDR4_0_0_dq; inout [7:0] CH0_DDR4_0_0_dqs_c; inout [7:0] CH0_DDR4_0_0_dqs_t; output [0:0] CH0_DDR4_0_0_odt; output [0:0] CH0_DDR4_0_0_reset_n; input sys_clk0_0_clk_n; input sys_clk0_0_clk_p; input wire sys_rst_n_in; output wire PL_LED; //********************////********************// System Parameter Defines //********************////********************// // Sys clock generate wire sys_clk_200mhz; IBUFDS IBUFDS_inst ( .O (sys_clk_200mhz), .I (sys_clk0_0_clk_p), .IB(sys_clk0_0_clk_n) ); wire sys_rst_n; BUFG bufg_inst ( .I(sys_rst_n_in), // 输入信号 .O(sys_rst_n) // 缓冲后的信号 ); reg [27:0] led_cnt; always @(posedge sys_clk_200mhz or negedge sys_rst_n) begin if (~sys_rst_n) led_cnt <= 28'b0; else led_cnt <= led_cnt + 1; end assign PL_LED = led_cnt[27]; design_1_wrapper design_1_wrapper_1 ( .CH0_DDR4_0_0_act_n(CH0_DDR4_0_0_act_n), .CH0_DDR4_0_0_adr(CH0_DDR4_0_0_adr), .CH0_DDR4_0_0_ba(CH0_DDR4_0_0_ba), .CH0_DDR4_0_0_bg(CH0_DDR4_0_0_bg), .CH0_DDR4_0_0_ck_c(CH0_DDR4_0_0_ck_c), .CH0_DDR4_0_0_ck_t(CH0_DDR4_0_0_ck_t), .CH0_DDR4_0_0_cke(CH0_DDR4_0_0_cke), .CH0_DDR4_0_0_cs_n(CH0_DDR4_0_0_cs_n), .CH0_DDR4_0_0_dm_n(CH0_DDR4_0_0_dm_n), .CH0_DDR4_0_0_dq(CH0_DDR4_0_0_dq), .CH0_DDR4_0_0_dqs_c(CH0_DDR4_0_0_dqs_c), .CH0_DDR4_0_0_dqs_t(CH0_DDR4_0_0_dqs_t), .CH0_DDR4_0_0_odt(CH0_DDR4_0_0_odt), .CH0_DDR4_0_0_reset_n(CH0_DDR4_0_0_reset_n), .sys_clk0_0_clk_n(sys_clk0_0_clk_n), .sys_clk0_0_clk_p(sys_clk0_0_clk_p) ); endmodule
约束文件(top.xdc)
#top set_property IOSTANDARD LVDS15 [get_ports sys_clk_200mhz_p] set_property PACKAGE_PIN AB23 [get_ports sys_clk_200mhz_p] create_clock -period 5.000 -name sys_clk_200mhz [get_ports sys_clk_200mhz_p] set_property PACKAGE_PIN D10 [get_ports sys_rst_n_in] set_property IOSTANDARD LVCMOS33 [get_ports sys_rst_n_in] set_property -dict {PACKAGE_PIN F11 IOSTANDARD LVCMOS33} [get_ports PL_LED] #DDR4 set_property PACKAGE_PIN AC11 [get_ports {DDR4_act_n[0]}] set_property PACKAGE_PIN AB12 [get_ports {DDR4_adr[0]}] set_property PACKAGE_PIN AB17 [get_ports {DDR4_adr[10]}] set_property PACKAGE_PIN AE13 [get_ports {DDR4_adr[11]}] set_property PACKAGE_PIN AH12 [get_ports {DDR4_adr[12]}] set_property PACKAGE_PIN AD15 [get_ports {DDR4_adr[13]}] set_property PACKAGE_PIN AD21 [get_ports {DDR4_adr[14]}] set_property PACKAGE_PIN AD17 [get_ports {DDR4_adr[15]}] set_property PACKAGE_PIN AC13 [get_ports {DDR4_adr[16]}] set_property PACKAGE_PIN AE22 [get_ports {DDR4_adr[1]}] set_property PACKAGE_PIN AD22 [get_ports {DDR4_adr[2]}] set_property PACKAGE_PIN AB15 [get_ports {DDR4_adr[3]}] set_property PACKAGE_PIN AD12 [get_ports {DDR4_adr[4]}] set_property PACKAGE_PIN AE17 [get_ports {DDR4_adr[5]}] set_property PACKAGE_PIN AD16 [get_ports {DDR4_adr[6]}] set_property PACKAGE_PIN AG11 [get_ports {DDR4_adr[7]}] set_property PACKAGE_PIN AE14 [get_ports {DDR4_adr[8]}] set_property PACKAGE_PIN AB14 [get_ports {DDR4_adr[9]}] set_property PACKAGE_PIN AC16 [get_ports {DDR4_ba[0]}] set_property PACKAGE_PIN AD11 [get_ports {DDR4_ba[1]}] set_property PACKAGE_PIN AB18 [get_ports {DDR4_bg[0]}] set_property PACKAGE_PIN AC19 [get_ports {DDR4_ck_t[0]}] set_property PACKAGE_PIN AD19 [get_ports {DDR4_ck_c[0]}] set_property PACKAGE_PIN AB21 [get_ports {DDR4_cke[0]}] set_property PACKAGE_PIN AC17 [get_ports {DDR4_cs_n[0]}] set_property PACKAGE_PIN AG12 [get_ports {DDR4_dm_n[0]}] set_property PACKAGE_PIN AH13 [get_ports {DDR4_dm_n[1]}] set_property PACKAGE_PIN AE28 [get_ports {DDR4_dm_n[2]}] set_property PACKAGE_PIN AD24 [get_ports {DDR4_dm_n[3]}] set_property PACKAGE_PIN V22 [get_ports {DDR4_dm_n[4]}] set_property PACKAGE_PIN V28 [get_ports {DDR4_dm_n[5]}] set_property PACKAGE_PIN N28 [get_ports {DDR4_dm_n[6]}] set_property PACKAGE_PIN U25 [get_ports {DDR4_dm_n[7]}] set_property PACKAGE_PIN AF14 [get_ports {DDR4_dq[0]}] set_property PACKAGE_PIN AH18 [get_ports {DDR4_dq[10]}] set_property PACKAGE_PIN AH20 [get_ports {DDR4_dq[11]}] set_property PACKAGE_PIN AH14 [get_ports {DDR4_dq[12]}] set_property PACKAGE_PIN AH22 [get_ports {DDR4_dq[13]}] set_property PACKAGE_PIN AH15 [get_ports {DDR4_dq[14]}] set_property PACKAGE_PIN AG22 [get_ports {DDR4_dq[15]}] set_property PACKAGE_PIN AF26 [get_ports {DDR4_dq[16]}] set_property PACKAGE_PIN AE26 [get_ports {DDR4_dq[17]}] set_property PACKAGE_PIN AH27 [get_ports {DDR4_dq[18]}] set_property PACKAGE_PIN AE27 [get_ports {DDR4_dq[19]}] set_property PACKAGE_PIN AG18 [get_ports {DDR4_dq[1]}] set_property PACKAGE_PIN AG27 [get_ports {DDR4_dq[20]}] set_property PACKAGE_PIN AD26 [get_ports {DDR4_dq[21]}] set_property PACKAGE_PIN AG26 [get_ports {DDR4_dq[22]}] set_property PACKAGE_PIN AG28 [get_ports {DDR4_dq[23]}] set_property PACKAGE_PIN AE24 [get_ports {DDR4_dq[24]}] set_property PACKAGE_PIN AD25 [get_ports {DDR4_dq[25]}] set_property PACKAGE_PIN AH24 [get_ports {DDR4_dq[26]}] set_property PACKAGE_PIN AF25 [get_ports {DDR4_dq[27]}] set_property PACKAGE_PIN AG23 [get_ports {DDR4_dq[28]}] set_property PACKAGE_PIN AG25 [get_ports {DDR4_dq[29]}] set_property PACKAGE_PIN AG15 [get_ports {DDR4_dq[2]}] set_property PACKAGE_PIN AH23 [get_ports {DDR4_dq[30]}] set_property PACKAGE_PIN AH25 [get_ports {DDR4_dq[31]}] set_property PACKAGE_PIN Y22 [get_ports {DDR4_dq[32]}] set_property PACKAGE_PIN V23 [get_ports {DDR4_dq[33]}] set_property PACKAGE_PIN Y23 [get_ports {DDR4_dq[34]}] set_property PACKAGE_PIN W24 [get_ports {DDR4_dq[35]}] set_property PACKAGE_PIN AA22 [get_ports {DDR4_dq[36]}] set_property PACKAGE_PIN V24 [get_ports {DDR4_dq[37]}] set_property PACKAGE_PIN AA21 [get_ports {DDR4_dq[38]}] set_property PACKAGE_PIN W25 [get_ports {DDR4_dq[39]}] set_property PACKAGE_PIN AF18 [get_ports {DDR4_dq[3]}] set_property PACKAGE_PIN V25 [get_ports {DDR4_dq[40]}] set_property PACKAGE_PIN W27 [get_ports {DDR4_dq[41]}] set_property PACKAGE_PIN AA28 [get_ports {DDR4_dq[42]}] set_property PACKAGE_PIN W26 [get_ports {DDR4_dq[43]}] set_property PACKAGE_PIN Y26 [get_ports {DDR4_dq[44]}] set_property PACKAGE_PIN AA26 [get_ports {DDR4_dq[45]}] set_property PACKAGE_PIN AB28 [get_ports {DDR4_dq[46]}] set_property PACKAGE_PIN AB26 [get_ports {DDR4_dq[47]}] set_property PACKAGE_PIN P27 [get_ports {DDR4_dq[48]}] set_property PACKAGE_PIN K27 [get_ports {DDR4_dq[49]}] set_property PACKAGE_PIN AF13 [get_ports {DDR4_dq[4]}] set_property PACKAGE_PIN R28 [get_ports {DDR4_dq[50]}] set_property PACKAGE_PIN L28 [get_ports {DDR4_dq[51]}] set_property PACKAGE_PIN R27 [get_ports {DDR4_dq[52]}] set_property PACKAGE_PIN K28 [get_ports {DDR4_dq[53]}] set_property PACKAGE_PIN T28 [get_ports {DDR4_dq[54]}] set_property PACKAGE_PIN M27 [get_ports {DDR4_dq[55]}] set_property PACKAGE_PIN P25 [get_ports {DDR4_dq[56]}] set_property PACKAGE_PIN L26 [get_ports {DDR4_dq[57]}] set_property PACKAGE_PIN R26 [get_ports {DDR4_dq[58]}] set_property PACKAGE_PIN M26 [get_ports {DDR4_dq[59]}] set_property PACKAGE_PIN AF19 [get_ports {DDR4_dq[5]}] set_property PACKAGE_PIN T25 [get_ports {DDR4_dq[60]}] set_property PACKAGE_PIN K26 [get_ports {DDR4_dq[61]}] set_property PACKAGE_PIN T26 [get_ports {DDR4_dq[62]}] set_property PACKAGE_PIN J25 [get_ports {DDR4_dq[63]}] set_property PACKAGE_PIN AG13 [get_ports {DDR4_dq[6]}] set_property PACKAGE_PIN AE19 [get_ports {DDR4_dq[7]}] set_property PACKAGE_PIN AH17 [get_ports {DDR4_dq[8]}] set_property PACKAGE_PIN AG21 [get_ports {DDR4_dq[9]}] set_property PACKAGE_PIN AG17 [get_ports {DDR4_dqs_t[0]}] set_property PACKAGE_PIN AG16 [get_ports {DDR4_dqs_c[0]}] set_property PACKAGE_PIN AG20 [get_ports {DDR4_dqs_t[1]}] set_property PACKAGE_PIN AH19 [get_ports {DDR4_dqs_c[1]}] set_property PACKAGE_PIN AC28 [get_ports {DDR4_dqs_t[2]}] set_property PACKAGE_PIN AD27 [get_ports {DDR4_dqs_c[2]}] set_property PACKAGE_PIN AF24 [get_ports {DDR4_dqs_t[3]}] set_property PACKAGE_PIN AF23 [get_ports {DDR4_dqs_c[3]}] set_property PACKAGE_PIN Y24 [get_ports {DDR4_dqs_t[4]}] set_property PACKAGE_PIN AA23 [get_ports {DDR4_dqs_c[4]}] set_property PACKAGE_PIN Y28 [get_ports {DDR4_dqs_t[5]}] set_property PACKAGE_PIN Y27 [get_ports {DDR4_dqs_c[5]}] set_property PACKAGE_PIN U27 [get_ports {DDR4_dqs_t[6]}] set_property PACKAGE_PIN U28 [get_ports {DDR4_dqs_c[6]}] set_property PACKAGE_PIN P26 [get_ports {DDR4_dqs_t[7]}] set_property PACKAGE_PIN N27 [get_ports {DDR4_dqs_c[7]}] set_property PACKAGE_PIN AC22 [get_ports {DDR4_odt[0]}] set_property PACKAGE_PIN AC24 [get_ports {DDR4_reset_n[0]}] set_property PACKAGE_PIN AB23 [get_ports {ddr_cref_clk_p[0]}]
然后就可以编译了
生成完成后,点击左上角