【iCore1S 双核心板_FPGA】例程十三:FSMC总线通信实验——复用地址模式
实验原理:
STM32F103上自带FMC控制器,本实验将通过FMC总线的地址复用模式实现STM32与FPGA
之间通信,FPGA内部建立RAM块,FPGA桥接STM32和RAM块,本实验通过FSMC总线从STM32向
RAM块中写入数据,然后读取RAM出来的数据进行验证。
核心代码:
int main(void)
{
int i;
unsigned short int fsmc_read_data; HAL_Init();
system_clock.initialize();
fsmc.initialize();
led.initialize();
LED_GREEN_ON; while()
{
for(i=;i<;i++)
{
fpga_write(i,i);//дÊý¾Ý
}
for(i=;i<;i++)
{
fsmc_read_data = fpga_read(i);//¶ÁÊý¾Ý
if(fsmc_read_data!=i)//±È½ÏÊý¾Ý
{
LED_GREEN_OFF;
LED_RED_ON;
while();
}
}
}
}
module FSMC_Ctrl(
input [:]ab,
inout [:]db,
input wrn,
input rdn,
input csn,
input PLL_48M,
input RST_n,
input nadv
);
//-----------------------rd_wr------------------------------//
wire wr;
wire rd; assign wr = (csn | wrn); //提取写信号
assign rd = (csn | rdn); //提取读信号 //-------------------------address-------------------------//
//地址为复用模式,即地址线和数据线为同一组线,分时使用。
reg [:]address; always@(posedge nadv or negedge RST_n)
begin
if(!RST_n)
begin
address = 'd0;
end
else address <= {ab,db};
end //---------------------------clk----------------------------//
reg wr_clk1,wr_clk2; always@(posedge PLL_48M or negedge RST_n)
begin
if(!RST_n)
begin
wr_clk1 <= 'd1;
wr_clk2 <= 'd1;
end
else
begin
{wr_clk2,wr_clk1} <= {wr_clk1,wr};
end
end wire clk = (!wr_clk2|!rd); //将读写信号转换为时钟信号
//--------------------------db_out--------------------------//
wire [:]DB_OUT; assign db = !rd ? DB_OUT : 'hzzzz; //---------------------------ram----------------------------//
//实例化ram
my_ram u1(
.address(address),
.clock(clk),
.data(db),
.wren(!wr),
.rden(!rd),
.q(DB_OUT)
); //------------------------endmodule-------------------------//
endmodule
实验方法及指导书:
链接:http://pan.baidu.com/s/1kUYFKiF 密码:pgx2

【iCore1S 双核心板_FPGA】例程十三:FSMC总线通信实验——复用地址模式的更多相关文章
- 【iCore4 双核心板_FPGA】例程十:FSMC总线通信实验——复用地址模式
实验原理: STM32F767上自带FMC控制器,本实验将通过FMC总线的地址复用模式实现STM32与FPGA 之间通信,FPGA内部建立RAM块,FPGA桥接STM32和RAM块,本实验通过FSMC ...
- 【iCore3 双核心板_FPGA】例程十三:FSMC总线通信实验——复用地址模式
实验指导书及代码包下载: http://pan.baidu.com/s/1nuYpI8x iCore3 购买链接: https://item.taobao.com/item.htm?id=524229 ...
- 【iCore1S 双核心板_FPGA】例程十四:FSMC总线通信实验——独立地址模式
实验原理: STM32F103上自带FMC控制器,本实验将通过FMC总线的地址独立模式实现STM32与FPGA 之间通信,FPGA内部建立RAM块,FPGA桥接STM32和RAM块,本实验通过FSMC ...
- 【iCore4 双核心板_FPGA】例程十一:FSMC总线通信实验——独立地址模式
实验原理: STM32F767上自带FMC控制器,本实验将通过FMC总线的地址独立模式实现STM32与FPGA 之间通信,FPGA内部建立RAM块,FPGA桥接STM32和RAM块,本实验通过FSMC ...
- 【iCore3 双核心板_FPGA】实验十四:FSMC总线通信实验——独立地址模式
实验指导书及代码包下载: http://pan.baidu.com/s/1kVJBxJ5 iCore3 购买链接: https://item.taobao.com/item.htm?id=524229 ...
- 【iCore3 双核心板】例程四:USART通信实验——通过命令控制LED
实验指导书及代码包下载: http://pan.baidu.com/s/1pJxluWF iCore3 购买链接: https://item.taobao.com/item.htm?id=524229 ...
- 【iCore1S 双核心板_FPGA】例程二:GPIO输入实验——识别按键输入
实验现象: iCore1s 双核心板上与FPGA相连的三色LED(PCB上标示为FPGA·LED),按键按下红灯点亮,松开按键红灯熄灭. 核心源代码: module KEY( input CLK_12 ...
- 【iCore1S 双核心板_FPGA】例程十七:基于双口RAM的ARM+FPGA数据存取实验
实验现象: 核心代码: module DUAL_PORT_RAM( input CLK_12M, inout WR, input RD, input CS0, :]A, :]DB, output FP ...
- 【iCore1S 双核心板_FPGA】例程十五:基于I2C的ARM与FPGA通信实验
实验现象: 核心代码: int main(void) { int i,n; ]; ]; HAL_Init(); system_clock.initialize(); led.initialize(); ...
随机推荐
- Pytorch 基础
Pytorch 1.0.0 学习笔记: Pytorch 的学习可以参考:Welcome to PyTorch Tutorials Pytorch 是什么? 快速上手 Pytorch! Tensors( ...
- 解决sublime text 安装扩展提示There are no packages available for installation问题
前段时间想给sublime编辑器装个插件,发现总是报这个错误 google后发现是“众所周知”的原因,设置里面的https://packagecontrol.io/channel_v3.json文件被 ...
- Spark函数式编程进阶
函数式编程进阶 1.函数和变量一样作为Scala语言的一等公民,函数可以直接复制给变量: 2.函数更长用的方式是匿名函数,定义的时候只需要说明输入参数的类型和函数体即可,不需要名称,但是匿名函数赋值给 ...
- [VB]常用函数
(一)类型转换类函数 . CType(X) [格式]: P=CBool(X) ' 将X转换为"布尔"(Boolean)类型 P=CByte(X) ' 将X转换为"字节&q ...
- Codeforces Round #532 (Div. 2)
Codeforces Round #532 (Div. 2) A - Roman and Browser #include<bits/stdc++.h> #include<iostr ...
- [Asp.net core]bootstrap分页
摘要 一直在用前后端分离,在一个后台管理的页面中,尝试封装了一个辅助类. 类 /// <summary> /// 分页viewmodel /// </summary> /// ...
- 深入浅出的理解框架(Struts2、Hibernate、Spring)与 MVC 设计模式
现在许许多多的初学者和程序员,都在趋之若鹜地学习Web开发的宝典级框架:Struts2,Spring,Hibernate.似乎这些框架成为了一个人是否精通Java,是否会写J2EE程序的唯一事实标准和 ...
- 9.7 dubbo心跳机制
dubbo的心跳机制: 目的:检测provider与consumer之间的connection连接是不是还连接着,如果连接断了,需要作出相应的处理. 原理: provider:dubbo的心跳默认是在 ...
- Android典型界面设计(8) ——ViewPager+PagerSlidingTabStrip实现双导航
一.问题描述 PagerSlidingTabStrip是android开源项目,指示器控件.官网地址:https://github.com/astuetz/PagerSlidingTabStrip 该 ...
- gitolite migration to bitbucket
https://gist.github.com/kostajh/9249937 https://designhammer.com/blog/easily-migrate-git-repositorie ...