马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
本帖最后由 冷月飞虹 于 2023-3-16 18:06 编辑
本节资源下载:
00_fpga_demo.zip
(210.84 KB, 下载次数: 128 )
在这节,我们将搭建一个最小系统。如下图所示
(理解系统架构后,你需要根据参考,移植代码到自己的FPGA平台上)
1、cortexm0ds_logic.v和CORTEXM0INTEGRATION.v是ARM提供的M0代码
2、ahb_to_sram.v, 用于连接SRAM和外设(led_ctrl)
3、uart_dbg.v,用于程序下载和调试
4、m0_sram.v里面实例化了SRAM,需要例化4快, 8位的SRAM
m0_top.v接口说明:
1、clk :系统时钟
2、por_n : 复位信号(低电平复位)
3、clk_dbg : uart_dbg.v时钟
4、uart_txd : UART通信
5、uart_rxd : UART通信
5、led[31:0] : 连接到LED灯或者GPIO上
FPGA移植参考(时钟配置和FPGA顶层引脚配置):
在fpga_top.v使用FPGA开发软件,使用PLL产生时钟
1、u_clk_pll.c1 ----> clk_dbg : uart_dbg.v模块时钟,接入20M就可以
2、u_clk_pll.c0 ----> clk : 系统时钟,也就是是MCU运行时钟,根据实际情况选择,最低 5MHZ
3、UART_TXD\UART_RXD : 用于串口下载程序,双向口,需要使能FPGA引脚内部上拉功能
4、LEDR[9:0] \gpio[1:0] : 根据实际情况连接到LED灯或者GPIO上,用于观测FPGA运行情况
FPGA移植参考(RAM生成):
在fpga_ram.v里面实例化
module fpga_ram(
input SRAM_CLK ,
input SRAMCS ,
input SRAMWEN ,
input [29:0] SRAMADDR ,
input [ 7:0] SRAMWDATA ,
output [ 7:0] SRAMRDATA
);
fpga_ram_64k u_fpga_ram_64k
(
.clock ( SRAM_CLK ),
.clken ( SRAMCS ),
.wren ( SRAMWEN ),
.address ( SRAMADDR ),
.data ( SRAMWDATA ),
.q ( SRAMRDATA )
);
endmodule
配置好后,开始进行FPGA综合,下图,是我的FPGA综合结果, RAM用了16384bits 也就是2Kb(个人根据实际情况配置)
完成FPGA综合后,下载到FPGA上运行,将串口小板连接好FPGA的UART_TXD\UART_RXD引脚
打开串口助手,波特率设置为256000,ODD校验, 发送几个0xD5, 如果能接收到数据,则UART通信初步正常
下一节,我们将会使用keil开发软件,下载程序和调试程序
|