FPGA小白菜 2023-09-06 17:24 采纳率: 0%
浏览 23

FPGA FSMC代码怎么写

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
    
    
    
    评论

报告相同问题?

问题事件

  • 创建了问题 9月6日