基于Xilinx Spartan-7 FPGA实现SMC接口

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 结束语

如果遇到问题,可以一起沟通讨论,邮箱:[email protected]

猜你喜欢

转载自blog.csdn.net/m0_46498597/article/details/107803149