FPGA之驱动sdram控制兼容性移植实验

cb早在2012年就推出了VIP 视频开发板 V1.4  这套开发板是ep2的,摄像头是ov7670,虽然不如当前的vip20强大,但也算是其雏形。

在vip20后期,cb对sdram以及其他模块进行了封装,使其更可靠,更稳定。

显然,sdram要更稳定,更可靠,验证,需要进行大量的实验,使用多种ic,然而经验丰富的cb,也有遗漏的测试(ps:注意上一篇博客细节)

于是找到vip1.4的05_sdram_vga_test例程,果不其然,这个例程兼容性很好,vip2.0不能使用的程序使用这个是可以的。

好了,下面我需要把1.4的程序重新移植到2.0上,验证起兼容性

先看看接口

rtl

看完以上接口

在和VIP2.0的主流结构对比下

更改如下:针对 vip1.4

1、sdram_vga_top  拆分  为 vga 和 sdram 放在顶层

2、sdram_vga_top   内部 去掉 sdbank_switch 模块,因为关联太多信号,去掉此模块是为了精简,简化,暂时用不着乒乓等功能。

3、sdram接口处理

.wr_addr ({20‘d0}), //sdram start write address
.wr_max_addr ({20‘d786432}), //sdram max write address
.wr_load (WR_LOAD), //sdram write address reset
.rd_addr ({20‘d0}), //sdram start read address
.rd_max_addr ({20‘d786432}), //sdram max read address
.rd_load (0), //sdram read address reset

4、增加触发信号

reg F1;
reg F2;
reg F3;
reg F4;
reg F5;
[email protected](posedge clk_write)
begin
F1<=frame_valid;
F2<=F1;
F3<=F2;
F4<=F3;
F5<=F4;
end
wire WR_LOAD=pos_edge;
wire neg_edge = !F1 & F2;
wire pos_edge = F1 & !F2;

自此已经完成测试。

时间: 2024-08-29 02:29:34

FPGA之驱动sdram控制兼容性移植实验的相关文章

fpga的驱动调试dev_dbg 无输出

最近需要调试一个fpga的驱动,整的很蛋疼!dev_dbg 想使用这个作为调试输出都不成功,已经被彻底打败了!反思中... 目前是根据以下相关设置后均不能打印,和网上说的有些出入,问题还得研究下. 驱动程序调用dev_dbg的地方 打卡debug功能 printk.c的console默认级别也修改为8了 device.h文件 #insmod 3s3gs.ko 3s3gs Ethernet Driver, V0.11 FPGA id 23310001 FPGA Version: 0.9b022,

Linux VGA驱动移植实验【转】

本文转载自:http://m.blog.csdn.net/bzw73/article/details/46564275 有了前面的LCD驱动的框架,再移植VGA驱动就相当的容易了.默认在光盘中已经支持了多款VGA驱动,我们在此基础上增加分辨率为1440*900的驱动. 在kernel/drivers/video/samsung/x4412_lcds.c中添加结构体vga_1440_900: /* VGA-1440X900 */ static struct s3cfb_lcd vga_1440_9

【黑金原创教程】【FPGA那些事儿-驱动篇I 】【实验一】流水灯模块

实验一:流水灯模块 对于发展商而言,动土仪式无疑是最重要的任务.为此,流水灯实验作为低级建模II的动土仪式再适合不过了.废话少说,我们还是开始实验吧. 图1.1 实验一建模图. 如图1.1 所示,实验一有名为 led_funcmod的功能模块.如果无视环境信号(时钟信号还有复位信号),该功能模块只有一组输出端,亦即4位LED信号.接下来让我们来看具体内容: led_funcmod.v 1. module led_funcmod2. (3. input CLOCK, RESET,4. output

USB驱动——键盘驱动(控制传输)

本文以 usbkbd.c 为例,分析 usb 键盘驱动程序. static int __init usb_kbd_init(void) { int result = usb_register(&usb_kbd_driver); if (result == 0) printk(KERN_INFO KBUILD_MODNAME ": " DRIVER_VERSION ":" DRIVER_DESC "\n"); return result;

FPGA与simulink联合实时环路系列——实验一 测试

实验一 测试 实验内容 ????在simulink创建测试模块,通过测试模块产生信号,再传送到FPGA,FPGA读出后再将信号无处理传送回simulink进行显示.由此来测试整个硬件在环的功能是否正常,并且熟悉整个基础开发流程. 创建模型 创建开发板的信息 ????在Matlab的指令窗口输入以下指令,hdlsetuptoolpath('ToolName','Altera Quartus II','ToolPath','C:\altera\11.0\quartus\bin\quartus.exe

FPGA与simulink联合实时环路系列——实验二LED

实验二LED 实验内容 ????在实验一的基础上,将simulink产生的测试信号输出到FPGA开发板上的LED灯进行显示,这里要在生成的硬件模型上进行修改,将传送到FPGA的信号输出到8个LED灯上,并且对信号进行分配引脚. 创建模型 ????在Matlab的指令窗口输入以下指令,hdlsetuptoolpath('ToolName','Altera Quartus II','ToolPath','C:\altera\11.0\quartus\bin\quartus.exe(修改为软件安装的路

Andriod驱动开发与系统移植概述读后感

本章通过介绍android系统架构->介绍android系统移植的主要工作->查看linux内核版本->linux内核版本号的定义规则->如何学习linux驱动开发->linux设备驱动    给linux驱动举例的方式来对于Andriod系统移植与驱动开发的工作做出一个基本的概述. 首先,android移植可以分为:应用移植和系统移植,应用移植是将程序移植到某一个特定硬件平台上:系统移植是指让android是指让android操作系统支持硬件平台上运行.那么对于嵌入式系统来

S3C6410+FPGA+RTL8211 驱动

在设计上使用了S3C6410+FPGA+2*RTL8211接口,因此FPGA此处的作用实现了两个mac,代码参考了dm9000代码改写. 为了使其能够支持1Gbps速度,在驱动中需要做如下修改:

《驱动学习 - DM9000C网卡移植》

1.首先来看DM9000C原理图 (#:表示低电平有效) SD0~15: 16位数据线,有CMD引脚决定访问类型 CMD:      命令线,当CMD为高,表示SD 传输的是数据,CMD为低表示传输的是地址 INT:         中断引脚,接在2440的GPF7脚上 IOR#:      读引脚,接在2440的nOE脚上 IOW#:     写引脚,接在2440的nWE脚上 CS#:       片选,放在2440的bank4的片选上面 1.1其中2440手册的bank4地址区间如下图: b