实验原理:

  STM32F767上自带FMC控制器,本实验将通过FMC总线的地址复用模式实现STM32与FPGA

之间通信,FPGA内部建立RAM块,FPGA桥接STM32和RAM块,本实验通过FSMC总线从STM32向

RAM块中写入数据,然后读取RAM出来的数据进行验证。

核心代码:

int main(void)
{
int i;
unsigned int fpga_read_data; system_clock.initialize();
fsmc.initialize();
led.initialize(); LED_GREEN_ON; while(){
for(i = ;i < ; i++){
fpga_write(i,i);
}
for(i = ;i < ; i++);
for(i = ;i < ;i++){
fpga_read_data = fpga_read(i);
if(fpga_read_data != i){
LED_GREEN_OFF;
LED_RED_ON;
}
}
}
}
module fsmc_ctrl(
input clk_25m,
input pll_100m,
input rst_n, input FSMC_CLK,
input NADV,
input WRn,
input RDn,
input CSn,
input [:]AB,
inout [:]DB
); //--------------------wire---------------------------------//
wire rd = (CSn | RDn);
wire wr = (CSn | WRn); //--------------------ab-----------------------------------//
reg [:]address; always @ (posedge NADV or negedge rst_n)
begin
if(!rst_n)
begin
address <= 'd0;
end
else
begin
address <= {AB,DB};
end end
//--------------------clk----------------------------------//
reg wr_clk1,wr_clk2; always @(posedge pll_100m or negedge rst_n)
begin
if(!rst_n)
begin
wr_clk1 <= 'd1;
wr_clk2 <= 'd1;
end
else
{wr_clk2,wr_clk1} <= {wr_clk1,wr}; //提取写时钟
end wire clk = (!wr_clk2 | !rd); //--------------------db_out-------------------------------//
wire [:]db_out;
assign DB = !rd ? db_out : 'hzzzz; //--------------------my_ram-------------------------------//
my_ram u1(
.address(address),
.clock(clk),
.data(DB),
.wren(!wr),
.rden(!rd),
.q(db_out)
);//例化ram模块 //--------------------endmodule----------------------------//
endmodule

源代码下载链接:

链接:http://pan.baidu.com/s/1hrK8c3i 密码:syfc

iCore4链接:

【iCore4 双核心板_FPGA】例程十:FSMC总线通信实验——复用地址模式的更多相关文章

  1. 【iCore1S 双核心板_FPGA】例程十三:FSMC总线通信实验——复用地址模式

    实验原理: STM32F103上自带FMC控制器,本实验将通过FMC总线的地址复用模式实现STM32与FPGA 之间通信,FPGA内部建立RAM块,FPGA桥接STM32和RAM块,本实验通过FSMC ...

  2. 【iCore3 双核心板_FPGA】例程十三:FSMC总线通信实验——复用地址模式

    实验指导书及代码包下载: http://pan.baidu.com/s/1nuYpI8x iCore3 购买链接: https://item.taobao.com/item.htm?id=524229 ...

  3. 【iCore4 双核心板_FPGA】例程十一:FSMC总线通信实验——独立地址模式

    实验原理: STM32F767上自带FMC控制器,本实验将通过FMC总线的地址独立模式实现STM32与FPGA 之间通信,FPGA内部建立RAM块,FPGA桥接STM32和RAM块,本实验通过FSMC ...

  4. 【iCore1S 双核心板_FPGA】例程十四:FSMC总线通信实验——独立地址模式

    实验原理: STM32F103上自带FMC控制器,本实验将通过FMC总线的地址独立模式实现STM32与FPGA 之间通信,FPGA内部建立RAM块,FPGA桥接STM32和RAM块,本实验通过FSMC ...

  5. 【iCore3 双核心板_FPGA】实验十四:FSMC总线通信实验——独立地址模式

    实验指导书及代码包下载: http://pan.baidu.com/s/1kVJBxJ5 iCore3 购买链接: https://item.taobao.com/item.htm?id=524229 ...

  6. 【iCore3 双核心板】例程十四:FATFS实验——文件操作

    实验指导书及代码包下载: http://pan.baidu.com/s/1dEpechF iCore3 购买链接: https://item.taobao.com/item.htm?id=524229 ...

  7. 【iCore3 双核心板】例程十五:USB_CDC实验——高速数据传输

    实验指导书及代码包下载: http://pan.baidu.com/s/1gemYjz9 iCore3 购买链接: https://item.taobao.com/item.htm?id=524229 ...

  8. 【iCore3 双核心板】例程十六:USB_HID实验——双向数据传输

    实验指导书及代码包下载: http://pan.baidu.com/s/1bojcVoV iCore3 购买链接: https://item.taobao.com/item.htm?id=524229 ...

  9. 【iCore3 双核心板】例程十八:USB_VCP实验——虚拟串口

    实验指导书及代码包下载: http://pan.baidu.com/s/1c1erqIc iCore3 购买链接: https://item.taobao.com/item.htm?id=524229 ...

随机推荐

  1. 线程、对称多处理和微内核(OS 笔记三)

    线程.对称多处理 ​ 这一部分继续深入探讨与进程管理相关的高级概念并了解多处理机的对称多处理技术. 进程和线程 到目前为止提出的进程的概念包含两个特点: 资源所有权 存放进程映像的虚拟地址空间 调度/ ...

  2. SQL sysobjects 表 详解

    sysobjects 表 在数据库内创建的每个对象(约束.默认值.日志.规则.存储过程等)在表中占一行.只有在 tempdb 内,每个临时对象才在该表中占一行. 列名 数据类型 描述 name sys ...

  3. Alpha测试

    1.测试计划 测试工作安排 成员名称 成员工作安排 林凯 注册登录页面相关功能测试 刘华强 主页面相关功能测试 吴文清 管理员页面相关功能测试 谢孟轩 用户页面相关功能测试 蔡振翼 回归测试 测试工具 ...

  4. React系列文章:Webpack模块组织关系

    现代前端开发离不开打包工具,以Webpack为代表的打包工具已经成为日常开发必备之利器,拿React技术栈为例,我们ES6形式的源代码,需要经过Webpack和Babel处理,才能生成发布版文件,在浏 ...

  5. C语言学习中遇到的小问题(一)

    C语言小白学习C语言的记录1 一.scanf一次性接收连续的数字 1.已知数量,且个数较少:scanf("%d%d%d",&a&b&c); 2.已知数量,但 ...

  6. ES6语法篇(其一)

    转载链接:http://www.ncloud.hk/%E6%8A%80%E6%9C%AF%E5%88%86%E4%BA%AB/es6-grammar-part-one/ 一.let命令 基本用法:ES ...

  7. 亲测GO环境搭建,理解go build、go install、go get

    GO下载: GO语言中文网下载:https://studygolang.com/dl Mac下直接通过brew instatll go指令即可完成下载安装 GO环境变量配置: $GOROOT=/usr ...

  8. Menu实现逻辑

        一.前奏 创建一个WS_EX_NOACTIVATE的窗体 创建窗体后注册Hook消息(鼠标在非Menu区域点击时关闭menu,接收键盘消息用于快捷键,接WM_SETFOCUS消息,当打开新窗体 ...

  9. 将控件画成圆角的效果(Delphi)

    最近在做一个Delphi的项目,常常要设计软件的界面,需要将控件画成圆角矩形.在Delphi中将控件画成圆角效果,可使用CreateRoundRectRgn函数.在此写了一个通用的函数,只要在用到改变 ...

  10. Asp.Net Core中Json序列化处理整理

    一.Asp.Net Core中的Json序列化处理使用的是Newtonsoft.Json,更多参考:C# Newtonsoft.Json JsonSerializerSettings配置序列化操作,C ...