【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(); led.initialize();
fsmc.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
);
//------------------------wr_rd-----------------------------//
wire wr;
wire rd; assign wr = (csn | wrn); //提取写信号
assign rd = (csn | rdn); //提取读信号 //-------------------------clk------------------------------//
reg wr_clk1,wr_clk2;
wire clk; always@(posedge PLL_48M 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 assign clk = (!wr_clk2 | !rd); //将读写信号转换为时钟信号 //-------------------------DB_OUT---------------------------//
wire [:]DB_OUT; assign db = !rd ? DB_OUT : 'hzzzz; //--------------------------ram-----------------------------//
//实例化ram
my_ram u1(
.address(ab),
.clock(PLL_48M),
.data(db),
.rden(!rd),
.wren(!wr),
.q(DB_OUT)
); //----------------------emdmodule---------------------------//
endmodule
实验方法及指导书:
链接:http://pan.baidu.com/s/1bpq7qyV 密码:kib5

【iCore1S 双核心板_FPGA】例程十四:FSMC总线通信实验——独立地址模式的更多相关文章
- 【iCore4 双核心板_FPGA】例程十:FSMC总线通信实验——复用地址模式
实验原理: STM32F767上自带FMC控制器,本实验将通过FMC总线的地址复用模式实现STM32与FPGA 之间通信,FPGA内部建立RAM块,FPGA桥接STM32和RAM块,本实验通过FSMC ...
- 【iCore4 双核心板_FPGA】例程十一:FSMC总线通信实验——独立地址模式
实验原理: STM32F767上自带FMC控制器,本实验将通过FMC总线的地址独立模式实现STM32与FPGA 之间通信,FPGA内部建立RAM块,FPGA桥接STM32和RAM块,本实验通过FSMC ...
- 【iCore1S 双核心板_FPGA】例程十三:FSMC总线通信实验——复用地址模式
实验原理: STM32F103上自带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 双核心板_FPGA】例程十三:FSMC总线通信实验——复用地址模式
实验指导书及代码包下载: http://pan.baidu.com/s/1nuYpI8x iCore3 购买链接: https://item.taobao.com/item.htm?id=524229 ...
- 【iCore3 双核心板】例程十四:FATFS实验——文件操作
实验指导书及代码包下载: http://pan.baidu.com/s/1dEpechF iCore3 购买链接: https://item.taobao.com/item.htm?id=524229 ...
- 【iCore1S 双核心板_FPGA】例程一:GPIO输出实验——点亮LED
实验现象: 三色LED循环点亮. 核心源代码: //--------------------Module_LED-----------------------------// module LED( ...
- 【iCore3 双核心板】例程十:RTC实时时钟实验——显示日期和时间
实验指导书及代码包下载: http://pan.baidu.com/s/1jHuZcnc iCore3 购买链接: https://item.taobao.com/item.htm?id=524229 ...
- 【iCore3 双核心板】例程十二:通用定时器实验——定时点亮LED
实验指导书及代码包下载: http://pan.baidu.com/s/1kTWAAJ9 iCore3 购买链接: https://item.taobao.com/item.htm?id=524229 ...
随机推荐
- Python常用模块--base64
作用:对一些保密性不强的信息进行加密,变为人类不能直接理解的字符串,但是可以反向解密,是一种‘防君子,不防小人’的措施. 例如:在一些项目中,接口的报文是通过base64加密传输的,所以在进行接口自动 ...
- 移动端滑屏全应用【一】cssHandler操作基础动画函数封装
前言: 大家都知道,在移动端进行操作结点移动时,我们都会使用操作transform来代替top等用以提高性能,必要的时候还可开启3d加速.我们都会使用getComputedStyle来获取结点的最终样 ...
- 安卓工作室 android studio 汉化后,报错。 设置界面打不开。Can't find resource for bundle java.util.PropertyResourceBundle, key emmet.bem.class.name.element.separator.label
安卓工作室 android studio 汉化后,报错. 设置界面打不开. Android studio has been sinified and reported wrong.The setup ...
- [CC-PERMUTE]Just Some Permutations 3
[CC-PERMUTE]Just Some Permutations 3 题目大意: \(T(T\le10^5)\)次询问,每次询问有多少长度为\(n(n\le10^6)\)的排列,满足任意相邻两个数 ...
- node+express上传图片
注意: 别用multer 上传文件了,太坑了,普通文本获取不到,折腾了半天没有解决,最后采用 multiparty 解决了: <!DOCTYPE html><html> < ...
- ssm中的某些异常
---恢复内容开始--- (1)java.lang.NoClassDefFoundError: org/springframework/transaction/interceptor/Transact ...
- webstorm激活方法
安装完成后,打开 WebStorm, 在打开的 License Activation 窗口中选择第三个选项: License server. 在输入框输入网址即可 最新网址: https://s.tu ...
- 关于Random.Range 范围界定
1. 当Range的参数是float时 Random.Range 范围 static function Range (min : float, max : float) : float :返回一个随机 ...
- Codeforces Round #406 (Div. 1) A. Berzerk 记忆化搜索
A. Berzerk 题目连接: http://codeforces.com/contest/786/problem/A Description Rick and Morty are playing ...
- epoll惊群原因分析
考虑如下情况(实际一般不会做,这里只是举个例子): 在主线程中创建一个socket.绑定到本地端口并监听 在主线程中创建一个epoll实例(epoll_create(2)) 将监听socket添加到e ...