1 引言
Static Memory Controller(SMC)静态存储控制器,SMC接口应用场景之一就是ARM和FPGA通信。FPGA作为从设备,ARM作为主设备。具体实现的逻辑功能也是通过地址下发一些通用配置。ARM + FPGA的方案,FPGA主要用来实现数据的高速采样,而ARM则提供数据的显示,以及一些人机交互的功能。笔者基于Xilinx S7系列FPGA实现SMC接口。
2 逻辑设计
基于FPGA实现SMC接口主要分为两个模块,分别是SMC物理接口和SMC用户接口。
2.1 SMC物理接口
该模块主要负责接收AMR发送的地址数据。该模块设计较为简单,就是根据SMC时序图编写verilog代码即可。但是要满足SMC时序的建立时间和保持时间。
2.1 SMC用户接口
模块主要负责用户信号产生和输出并进行跨时钟域处理。根据不同的地址,输出不同需求的控制信号供其他模块使用。该模块可以使用异步FIFO或者双端口RAM进行时钟域转换。
3 逻辑验证
3.1 仿真验证
使用仿真软件modelsim进行逻辑功能仿真,模拟ARM发送不同地址的数据,FPGA进行数据采集,验证SMC接口逻辑功能正确。
3.2 硬件验证
使用逻辑分析仪ILA进行在线抓信号调试,验证了ARM发送不同地址数据,FPGA可以正确的接收不同地址数据,验证SMC接口逻辑功能正确符合预期。
4 接口信号
SMC接口信号不是太多,主要有地址、数据、片选、读写使能等。
5 结束语
如果遇到问题,可以一起沟通讨论,邮箱:jhqwy888@163.com。