LMK04821的 SPI Driver 24bit 调试(2)

写在前面

2026年3月1日18:11:59学习记录 LMK04821 SPI驱动

1 实现在top.v联合tb_top.v仿真实现了129个寄存器的连续写操作
2 基于工程"D:\FPGAproject\0_basic\spi_LMK04821\prj\prj\prj.xpr"


一些问题 1 在modelsim看仿真波形时,发现了一个问题,tb文件里sys_clk是20MHz,但是这个sys_clk是要给clock wizard ip提供输入的,这里有错误。要改sys_clk为50MHz的,并且检查clkout是不是20MHz


spi_master0_driver.v驱动不修改,增加lmk_cfg_ctrl.v,再用top.v包住两者
lmk_cfg_ctrl.v的功能有2点:

  • 通过状态机fsm,时间24bit的有间隔写操作

  • 局限性:使用readmemh命令获取文件很鸡肋

$readmemh("D:/FPGAproject/0_basic/spi_LMK04821/doc/lmk_init.txt",reg_array);

LMK04828时钟配置教程https://www.cnblogs.com/jzhucas/p/19160493
这个对SYNC SYSREF的讲解比较清楚,也讲TICSPro的配置https://blog.csdn.net/gzy0506/article/details/128892058

下一步

1 优化通用SPI驱动

  • spi_master.v驱动只发8bit

  • 在spi_master.v的上层做spi_cs片选的控制,思考cs不放在spi_master.v里那么“时钟”怎么分?这样做可行吗?

  • 增加fifo,灵活控制一次spi_cs下的连续发送字节数


本文章使用limfx的vscode插件快速发布