1. 关于FSMC
FSMC引脚定义:
地址线:A16-23 共8根地址线
数据线有16根(看单片机的原理图)
控制信号RD、WR、NE1/NCE2,这两个片选都接的是PD7,NE1即选中BAN1,用于扩展外部SRAM,FPGA相当于挂在单片机的BANK1,实质就是单片机进行读写FPGA。
2.FPGA测试程序(网上找的)
module STM32_FPGA(
input main_clk,
// output arm_clk,
output led,
input [2:0] addr,
inout [15:0] data,
input FPGA_CS0,//FPGA片选
input RD,
input WR
);
wire clk;
pll_50M pll_50M_inst (
.inclk0 ( main_clk ),//25M
.c0 ( clk ), //50M
.c1 ( arm_clk ) //8M
);
//reg [24:0] cnt = 0;
//always @(posedge clk)
// cnt <= cnt + 1'b1;
//assign led = cnt[24];
//AWE的上升沿,将数据写入FPGA寄存器
reg [15:0] ARM_FPGA_REG0;
reg [15:0] ARM_FPGA_REG1;
reg [15:0] ARM_FPGA_REG2;
reg [15:0] ARM_FPGA_REG3;
reg [15:0] ARM_FPGA_REG4;
reg [15:0] ARM_FPGA_REG5;
reg [15:0] ARM_FPGA_REG6;
reg [15:0] ARM_FPGA_REG7;
wire rd_en = ~FPGA_CS0 && ~RD;
reg [15:0] data_reg;
always @(