FPGA的FSMC代码怎么写,利用Verilog HDL代码写出FPGA与STM32的通信接口,并实现数据通信。
1条回答 默认 最新
- 老皮芽子 2023-09-07 11:16关注
FSMC 接口要是完全实现,还是很复杂的,要考虑中断、地址复用、FIFO读写。
我只实现最简单的,只实现读写寄存器。相当于一个 128*8 的RAM
下面的代码没验证过,是随手写的module fsmc ( input clk, //100MHz input rst_n, input cs_n, input wr_n, input rd_n, input [7:0] addr, inout [7:0] data ); reg [7:0] fsmc_reg [127:0]; //定义 128 个寄存器 reg [7:0] data_r; assign data = (cs_n == 0 && rd_n == 0) ? data_r:8'bzzzzzzzz; always@(posedge clk) begin if(rst_n == 0) data_r <= 0; else if(cs_n == 0 && rd_n == 0) //读 begin data_r <= fsmc_reg[addr]; end end always@(posedge clk) begin if(cs_n == 0 && rd_n == 0) //写 fsmc_reg[addr] <= data; end endmodule
解决 无用评论 打赏 举报