实验原理:

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

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

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

核心代码:

  1. int main(void)
  2. {
  3. int i;
  4. unsigned short int fsmc_read_data;
  5.  
  6. HAL_Init();
  7. system_clock.initialize();
  8. fsmc.initialize();
  9. led.initialize();
  10. LED_GREEN_ON;
  11.  
  12. while()
  13. {
  14. for(i=;i<;i++)
  15. {
  16. fpga_write(i,i);//дÊý¾Ý
  17. }
  18. for(i=;i<;i++)
  19. {
  20. fsmc_read_data = fpga_read(i);//¶ÁÊý¾Ý
  21. if(fsmc_read_data!=i)//±È½ÏÊý¾Ý
  22. {
  23. LED_GREEN_OFF;
  24. LED_RED_ON;
  25. while();
  26. }
  27. }
  28. }
  29. }
  1. module FSMC_Ctrl(
  2. input [:]ab,
  3. inout [:]db,
  4. input wrn,
  5. input rdn,
  6. input csn,
  7. input PLL_48M,
  8. input RST_n,
  9. input nadv
  10. );
  11. //-----------------------rd_wr------------------------------//
  12. wire wr;
  13. wire rd;
  14.  
  15. assign wr = (csn | wrn); //提取写信号
  16. assign rd = (csn | rdn); //提取读信号
  17.  
  18. //-------------------------address-------------------------//
  19. //地址为复用模式,即地址线和数据线为同一组线,分时使用。
  20. reg [:]address;
  21.  
  22. always@(posedge nadv or negedge RST_n)
  23. begin
  24. if(!RST_n)
  25. begin
  26. address = 'd0;
  27. end
  28. else address <= {ab,db};
  29. end
  30.  
  31. //---------------------------clk----------------------------//
  32. reg wr_clk1,wr_clk2;
  33.  
  34. always@(posedge PLL_48M or negedge RST_n)
  35. begin
  36. if(!RST_n)
  37. begin
  38. wr_clk1 <= 'd1;
  39. wr_clk2 <= 'd1;
  40. end
  41. else
  42. begin
  43. {wr_clk2,wr_clk1} <= {wr_clk1,wr};
  44. end
  45. end
  46.  
  47. wire clk = (!wr_clk2|!rd); //将读写信号转换为时钟信号
  48. //--------------------------db_out--------------------------//
  49. wire [:]DB_OUT;
  50.  
  51. assign db = !rd ? DB_OUT : 'hzzzz;
  52.  
  53. //---------------------------ram----------------------------//
  54. //实例化ram
  55. my_ram u1(
  56. .address(address),
  57. .clock(clk),
  58. .data(db),
  59. .wren(!wr),
  60. .rden(!rd),
  61. .q(DB_OUT)
  62. );
  63.  
  64. //------------------------endmodule-------------------------//
  65. endmodule

实验方法及指导书:

链接:http://pan.baidu.com/s/1kUYFKiF 密码:pgx2

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

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

    实验原理: STM32F767上自带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. 【iCore1S 双核心板_FPGA】例程十四:FSMC总线通信实验——独立地址模式

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

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

    实验原理: STM32F767上自带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 双核心板】例程四:USART通信实验——通过命令控制LED

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

  7. 【iCore1S 双核心板_FPGA】例程二:GPIO输入实验——识别按键输入

    实验现象: iCore1s 双核心板上与FPGA相连的三色LED(PCB上标示为FPGA·LED),按键按下红灯点亮,松开按键红灯熄灭. 核心源代码: module KEY( input CLK_12 ...

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

    实验现象: 核心代码: module DUAL_PORT_RAM( input CLK_12M, inout WR, input RD, input CS0, :]A, :]DB, output FP ...

  9. 【iCore1S 双核心板_FPGA】例程十五:基于I2C的ARM与FPGA通信实验

    实验现象: 核心代码: int main(void) { int i,n; ]; ]; HAL_Init(); system_clock.initialize(); led.initialize(); ...

随机推荐

  1. xss总结--2018自我整理

    0x00前言 因为ctf中xss的题目偏少(因为需要机器人在后台点选手的连接2333),所有写的比较少 这里推荐个环境http://test.xss.tv/ 0x01xss作用 常见的输出函数:pri ...

  2. MongoDB——权限管理

    MongoDB--权限管理 MongoDB默认是没有权限验证的,但生产环境中,没有权限控制是很不安全的. 我们先不详谈太多概念,直接动手创建两个典型的账号: 超级管理员,类似sql server的sa ...

  3. BZOJ.1010.[HNOI2008]玩具装箱toy(DP 斜率优化/单调队列 决策单调性)

    题目链接 斜率优化 不说了 网上很多 这的比较详细->Click Here or Here //1700kb 60ms #include<cstdio> #include<cc ...

  4. Scrapy爬虫框架的安装

    Scrapy框架是我在Windows中遇到的最难安装的第三方库,一直不想写这篇博客,但碰巧今天重装了系统,这正好是个机会? 1.安装pywin32:https://sourceforge.net/pr ...

  5. bootstrap中的对话框-dialog

    <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <meta name= ...

  6. 设置Sublime Text 3的光标样式

    升级了Sublime Text 3,结果光标变成了这个样子,非常不习惯: 查了文档http://www.sublimetext.com/3 ,Build 3059中得描述: Added setting ...

  7. v$instance如何生成

    参考:http://www.itpub.net/thread-1284858-1-1.html 1.ORACLE 先创建的x$ 表即RDBMS的内部表 2.然后在X$表的基础上创建了GV$ 视图.  ...

  8. 各种Oracle索引类型介绍

    逻辑上:Single column 单行索引Concatenated 多行索引Unique 唯一索引NonUnique 非唯一索引Function-based函数索引Domain 域索引 物理上:Pa ...

  9. Resources for Learning about .NET Internals

    http://adamsitnik.com/Disassembly-Diagnoser/ http://mattwarren.org/2018/01/22/Resources-for-Learning ...

  10. centos7下安装gcc7

    之前写过在linux下升级gcc 4.8至gcc 4.9的过程,现在gcc最新的版本是8,有些软件必须是gcc 7或者以上的版本才可以编译,比如clickhouse,gcc 7的安装过程和之前基本上一 ...