【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(); ...
随机推荐
- python 入门总结(一)
自然语言用双引号,机器语言用单引号 例如dict的key 单行注释 # 多行注释 ''' ''' 输入print %s 字符串的占位符 %d 数字的占位符 如语句中有占位符那么所有的%都是占位符,可以 ...
- win7 资源资源管理器访问FTP站点
Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\ftp] @="URL:File Transfer Protocol" ...
- HDU.3032.Nim or not Nim?(博弈论 Lasker's Nim)
题目链接 \(Description\) 有多堆石子, 每次可以将任意一堆拿走任意个或者将这一堆分成非空的两堆, 拿走最后一颗石子的人胜利.问谁会获得胜利. \(Solution\) Lasker's ...
- C++ 引用 & 的详解
转载来自:CSDNinsistGoGo (http://blog.csdn.net/insistgogo/article/details/6655077) 引用的应用: 常引用: 语法: const ...
- C++的多态
继承.封装.多态是面向对象编程最主要的三个特征,有人说多态是理解C++最难理解的一部分,其实我觉得单单从技术上讲,多态并不难,难的是你需要懂得在何时使用多态,就像封装一样,封装本身不难,难的是你对整个 ...
- Saltstack 安装 命令
主机规划 10.0.0.21 master 10.0.0.22 minion 10.0.0.23 minion 基础环境 [root@10.0.0.21 ~]# cat /etc/redhat-rel ...
- 手机号是SIM卡的号呢,还是买手机时就带的
可以用原来的号码!把原来的卡装在新手机里就可以了,你的号码没有改变! 手机的号是由sim卡来决定的! 但是卡上的号码显示的是卡的一些信息! 你不用去理会它! 全文:http://iask.sina.c ...
- ActiveX学习笔记二 ActiveX在IE中安全级别问题-实现IObjectSafety接口
http://blog.csdn.net/freedomqx/article/details/4955512 使用MFC开发ActiveX控件,在IE中会提示安全问题,这个可以通过实现IObjectS ...
- Google+ 团队的 Android UI 测试
https://github.com/bboyfeiyu/android-tech-frontier/tree/master/android-blog/Google%2B%20%E5%9B%A2%E9 ...
- Unity3d之截图方法
http://blog.csdn.net/highning0007/article/details/37991787 Unity3d之截图方法 分类: Unity3D2013-11-28 17:13 ...