实验原理:

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

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

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

核心代码:

int main(void)
{long int i;unsigned int fpga_read_data;system_clock.initialize();fsmc.initialize();led.initialize();LED_GREEN_ON;/*FSMC²âÊÔ*/while(1){        /*fmc²âÊÔ*/for(i = 0;i < 256; i++){fpga_write(i,i);                                    //ÏòFPGAдÊý¾Ý
        }for(i = 0;i < 100000; i++);for(i = 0;i < 256;i++){fpga_read_data = fpga_read(i);            //´ÓFPGAÖжÁÈ¡Êý¾Ýif(fpga_read_data != i){LED_GREEN_OFF;LED_RED_ON;while(1);}}    }
}

module fsmc_ctrl(input clk_25m,input pll_100m,input rst_n,input FSMC_CLK,input NADV,input WRn,input RDn,input CSn,input [23:16]AB,inout [15:0]DB
);//--------------------wire---------------------------------//
    wire rd = (CSn | RDn);wire wr = (CSn | WRn);//--------------------clk----------------------------------//
    reg wr_clk1,wr_clk2,wr_clk3;    always @(posedge pll_100m or negedge rst_n)beginif(!rst_n)beginwr_clk1 <= 1'd1;wr_clk2 <= 1'd1;endelse{wr_clk3,wr_clk2,wr_clk1} <= {wr_clk2,wr_clk1,wr};    //提取写时钟endwire clk = (!wr_clk1 | !rd);//--------------------db_out-------------------------------//
    wire [15:0]db_out;assign DB = !rd ? db_out : 16'hzzzz;//--------------------my_ram-------------------------------//
    my_ram u1(.address(AB),.clock(clk),.data(DB),.wren(!wr),.rden(!rd),.q(db_out)    );//例化ram模块//--------------------endmodule----------------------------//
endmodule

源代码下载链接:

链接:http://pan.baidu.com/s/1misqyko 密码:eg83

iCore4链接:

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

  1. 【iCore4 双核心板_FPGA】例程八:乘法器实验——乘法器使用

    实验现象: 程序运行时,绿色led闪烁(目前,具体的乘法器调用请参考iCore3乘法器例程) 核心代码: module multiplier_ctrl(input clk_25m,input rst_ ...

  2. 【iCore4 双核心板_FPGA】例程七:状态机实验——状态机使用

    实验现象: 按键每按下一次,三色LED改变一次状态. 核心代码: //--------------------module_rst_n---------------------------// mod ...

  3. 【iCore4 双核心板_FPGA】例程十六:基于双口RAM的ARM+FPGA数据存取实验

    实验现象: 核心代码: int main(void) {/* USER CODE BEGIN 1 */int i;int address,data;char error_flag = 0;char r ...

  4. 【iCore4 双核心板_FPGA】例程五:基础逻辑门实验——逻辑门使用

    实验现象: 打开tool-->Netlist viewer-->RTL viewer可观察各个逻辑连接 核心代码: //--------------------module_logic_g ...

  5. 【iCore4 双核心板_ARM】例程十一:DMA实验——存储器到存储器的传输

    实验原理: DAM(直接存储器访问)传输不需要占用CPU,可以在存储器至存储器实现高速的数据 传输.本实验采用DAM2控制器的数据流0,选用通道0进行数据传输.通过LED的颜色来 判断传输是否成功. ...

  6. 【iCore4 双核心板_ARM】例程十七:USB_MSC实验——读/写U盘(大容量存储器)

    实验方法: 1.将跳线冒跳至USB_UART,通过Micro USB 线将iCore4 USB-UART接口与电脑相连. 2.打开PUTTY软件. 3.通过读U盘转接线将U盘(或者读卡器)与iCore ...

  7. 【iCore4 双核心板_ARM】例程五:SYSTICK定时器 实验——定时点亮LED

    实验原理: 通过STM32的三个GPIO口驱动三色LED的三个通道,设定GPIO为推挽输出模式,采 用灌电流方式与LED连接,输出高电平LED灭,输出低电平LED亮,通过系统定时器实现 1s定时,每秒 ...

  8. 【iCore4 双核心板_ARM】例程三十八:DSP MATH库测试

    实验现象: 核心代码: int main(void) {/* USER CODE BEGIN 1 */int i,j;int res;float time[2];static int error_fl ...

  9. 【iCore4 双核心板_ARM】例程二十:LWIP_TCP_CLIENT实验——以太网数据传输

    实验现象: 核心代码: int main(void) { system_clock.initialize(); //ϵͳʱÖÓ³õʼ»¯led.initialize(); //LED³õʼ» ...

最新文章

  1. 命令行用pip命令安装mysql_使用pip install mysqlclient命令安装mysqlclient失败?(基于Python)...
  2. nyoj--586(疯牛) poj --2456
  3. VS2008编写64位程序
  4. MockupBuilder
  5. Android之launchMode总结
  6. libx264进行视频编码的流程
  7. 新华三的背景_开放融合创新:新华三全力支撑运营商5G赋能百业
  8. element step控件点击事件
  9. sublime配置python开发环境_【教程】把Sublime Text 2用作Python的IDE去实现Python的开发...
  10. java代码实现分页_Java分页实现(示例代码)
  11. 海康isapi协议原理学习(Intelligent Security API 智能安全API)
  12. NXP Zigbee 3.0标准网关开发复盘(JN5169)
  13. java8_我是如何优雅的使用Optional的
  14. 视频会议软件中的协同文档技术
  15. <转>svn提示出错异常为remains in conflict
  16. HTML5 Canvas编写五彩连珠(4):动画
  17. 老李聊股:中油工程(第二篇)
  18. 洛谷 1016 [NOIP1999] 旅行家的预算 贪心
  19. 关于初学者用哪种C/C++编译器(集成开发环境)的问题
  20. ES系列四、ES6.3常用api之文档类api

热门文章

  1. 第一台鸿蒙手机是,第一台预装鸿蒙OS的手机终于登场。
  2. idhttp返回乱码_HTTP客户端POST方式中文编码(乱码)解决方案(转)
  3. linux 拨号网关,用LINUX做在一张软盘上的拨号网关 (转)
  4. spring aopalliance 包里都有什么_【九仓樱】翻包記 05 | 是什么让我的便当包里每天都带着小企鹅?!...
  5. java url特殊字符转义字符_URL中包含有特殊字符,进行转义
  6. ksu7对讲机调频软件_科普 | 数字对讲机的群呼功能原理是什么?你了解多少?...
  7. html 手机分辨率,移动端各种分辨率手机屏幕----适配方法集锦
  8. php 将字符串打乱,PHP内部实现打乱字符串顺序函数str_shuffle的方法
  9. win10雷电3接口驱动_“雷电3”接口知识大科普
  10. (五)C语言之二维数组