DSP与FPGA间简单通信时序
DSP与FPGA采用EMIF接口通信,即将FPGA作为DSP的外部SRAM,只需设置EMIF控制的存储器为SRAM类型即可,DSP通过EMIF接口读写SRAM的时序如下: 参考datasheet《tms320dm642.pdf》
可以根据以上时序图编写FPGA代码,以下仅供参考:
moduleDSP_FPGA(
input clk,
input [2:0] addr, //简单测试,没有用到所有地址
inout[15:0] data, //16位数据宽度
input CE_2,//FPGA片选
input AOE,
input AWE
);
reg [15:0]DSP_FPGA_REG0;
reg [15:0]DSP_FPGA_REG1;
reg [15:0]DSP_FPGA_REG2;
reg [15:0]DSP_FPGA_REG3;
reg [15:0]DSP_FPGA_REG4;
reg [15:0] DSP_FPGA_REG5;
reg [15:0]DSP_FPGA_REG6;
reg [15:0]DSP_FPGA_REG7;
wire rd_en = ~CE_2 && ~AOE;
reg [15:0] data_reg;
//always @(posedge clk) //DSP读操作,The samplingpoint of DSP reading is the risging edge ofAWE!
always @(*) //这里没有用时钟,用的latch
begin
if(rd_en)
begin
case(addr[2:0])
3'd0 : data_reg <= DSP_FPGA_REG0;
3'd1 : data_reg <= DSP_FPGA_REG1;
3'd2 : data_reg <= DSP_FPGA_REG2;
3'd3 : data_reg <= DSP_FPGA_REG3;
3'd4 : data_reg <= DSP_FPGA_REG4;
3'd5 : data_reg <= DSP_FPGA_REG5;
3'd6 : data_reg <= DSP_FPGA_REG6;
3'd7 : data_reg <= DSP_FPGA_REG7;
default: ;
endcase
end
end
reg AWE_tmp1;
reg AWE_tmp2;
always @(posedge clk)
begin
AWE_tmp1 <= AWE;
AWE_tmp2 <= AWE_tmp1;
end
wire AWE_RISING = ~AWE_tmp2 && AWE_tmp1;//与clk同步
always@(*)
begin
if(AWE_RISING) //这里也没有用时钟,用的是latch
begin
case(addr[2:0])
3'd0 : DSP_FPGA_REG0 <= data;
3'd1 : DSP_FPGA_REG1 <= data;
3'd2 : DSP_FPGA_REG2 <= data;
3'd3 : DSP_FPGA_REG3 <= data;
3'd4 : DSP_FPGA_REG4 <= data;
3'd5 : DSP_FPGA_REG5 <= data;
3'd6 : DSP_FPGA_REG6 <= data;
3'd7 : DSP_FPGA_REG7 <= data;
default: ;
endcase
end
end
assign data = rd_en ? data_reg : 16'hzzzz;
endmodule
//
DSP(具体为DM642)端程序:寄存器设置参考 《EMIF ReferenceGuide- spru266b.pdf》 即spru266
#define FPGA_ADDR 0xA0000000
//#define EMIFA_GBLCTL 0x01800000
#define EMIFA_CECTL2 0x01800010
//#define EMIFA_CESEC2 0x01800050
void delay(unsigned long time)
{
unsigned long i;
for(i = 0; i < 1000; i++)
{
for(; time >0 ; time--)
{
}
}
}
unsigned short write_value = 0;
unsigned short read_value = 0;
int main(void)
{
unsigned short *ptr;
*(unsigned volatile int *)EMIFA_CECTL2 =(unsigned int)0xFFFFFF13;//设置EMIF控制的存储器类型为 //16位宽SRAM
ptr = (unsigned short*)(unsigned int)FPGA_ADDR;
while(1)
{
*ptr = write_value;
read_value= *ptr; //调试时通过观察write_value与read_value的值是否相等可以检验通信是否正常
delay(100000);
write_value++;
}
return 0;
}
实际测试发现写入与读出的值相同
DSP与FPGA间简单通信时序相关推荐
- AIDL 应用间简单通信demo及基本问题
AIDL:Android Interface Definition Language,即Android接口定义语言. 他的作用大家已经知道了,有些童鞋对于其中的使用细节可能会有一些理解误差,并且会造成 ...
- 多通路fpga 通信_多核DSP和FPGA之间的高速SRIO通信
多核 DSP 和 FPGA 之间的高速 SRIO 通信 汪安民 1 ,韩道文 2 ,徐焱 3 [摘 要] 摘要:在高速采样系统中,大量数据需要实时传输到处理器.尤其是 系统中存在多个处理器协同工作,就 ...
- 华大半导体HC32F4A0系列ARM芯片EXMC并口通信时序的FPGA实现
华大半导体HC32F4A0系列ARM芯片EXMC并口通信时序的FPGA实现 EXMC简介 外部存储器控制器EXMC是一个用来访问各种片外存储器.实现数据交换的独立模块.EXMC通过配置可以把内部的AM ...
- FPGA学习笔记(1)简单的时序逻辑电路——流水灯
FPGA学习笔记(1)简单的时序逻辑电路--流水灯 编程语言为Verilog HDL 原理 (1)设计一个计数器,使开发板上的4个LED状态每500ms翻转一次.开发板上的晶振输出时钟频率为50MHz ...
- FPGA学习-8:简单的时序电路
经过上一章的了解 组合电路的最大优势就是能直接根据输入进行输出 但其也有很多的缺点:占大量的电路资源,功耗较大,电路固定- 这一次我们来讲基本的时序电路,写一个简单的时序控制电路 再在此基础上将之前的 ...
- access下如何配置两个vlan_不同vlan间的通信如何简单配置(三种方式) ?
1.单臂路由(图) 环境:一台路由器,一台二层交换机,两台pc机 二层交换机的配置 一般模式: Switch> 输入enable进入特权模式: Switch>enable 输入config ...
- ARM、DSP、FPGA的特点和区别
说明ARM.DSP.FPGA的异同点 ARM(AdvancedRISCMachines) 是微处理器行业的一家知名企业,设计了大量高性能.廉价.耗能低的RISC处理器.相关技术及软件.ARM架构是面向 ...
- 单片机与ARM嵌入式,DSP,FPGA的联系与区别
本文主要针对不同CPU架构以及现场可编程门阵列FPGA芯片区别与联系做一个介绍. MCU(Micro Controller Unit),又称单片微型计算机(Single Chip Microcompu ...
- Virtex—5 GTP和Virtex—6 GTX间匹配通信研究及应用
针对Virtex-5 RocketIOTM GTP和Virtex-6 RocketIOTM GTX之间的差异性,需对预/去加重和接收均衡值.接收终端电压以及发送差分电压值等参数作出灵活调整,才能适应二 ...
最新文章
- 【如何管理开机自启动程序】
- Api管理工具(spring-rest-docs)
- Java_JDBC_MySql
- golang检查tcp是否可用_宕机处理:Kubernetes集群高可用实战总结
- java虚拟机工作原理图_Java虚拟机工作原理
- WSO2注册表安装简介
- gsonformat插件_裂墙推荐!IntelliJ IDEA 常用插件一览,让效率成为习惯
- 敏捷开发般若敏捷系列之五:如何推广敏捷(中)(无寿者,回报,破我执)...
- android opencl sdk,在新的Android Studio中使用OpenCL
- 生成 Bingo 卡片
- UNreal 创建一个简单的玻璃材质+金属材质+创建材质实例
- PG中XLOG日志结构
- 证券公司信息化——5
- HTML5期末大作业:在线电影介绍(6页) HTML+CSS+JavaScript 大学生毕设网页设计源码HTML web网页设计制作成品
- 微服务架构实践心得小结
- 自己装修需要做好哪些准备?极家精装好不好?
- 计算机毕业设计 汉语多音字注音研究
- 架构师的软实力之合作关系
- Spring认证中国教育管理中心-Spring Data Neo4j教程三
- Java获取视频的时长——日期时间处理
热门文章
- 2021春季学期-创新设计与实践-Lesson3
- 光电信标灯发光盘的特性电流测试
- 信标灯、三轮车、电容充电
- 新型超低功耗无线网卡诞生,一颗纽扣电池可撑数年
- 声音大小对于测距数值的影响
- python字符串endswith,Python字符串| 具有示例的endswith()方法
- 使用级联样式表的好处在于_现在都在使用益阳云终端解决方案了,原因就在于这些好处...
- Xilinx axi dma driver 驱动构建 (二)
- python3 UDP TCP 调试回射命令行
- python判断题题库大数据技术_智慧树知到_大数据分析的python基础_选择题答案