适用于带fifo接口的存储器和显示器测试模块封装 挑战cb

cb说完美是没有极限的,对此我表示赞同,自从用了cb的板子,玩开cmos,fpga,sdram,vga等。

不断涌现的是,双端口sdram,四端口sdram,各式各样的封装,但是大同小异,但总是有些不同,对于初学的我,感觉还是挺费事,玩转各种例程发现,cb的sdram驱动程序很强大但并不完美,其中对sdram有挑选作用,如hy57v641620ftp-7很ok的使用,换成hy57v641620ftp-6就有问题,但是使用其他版本程序测试,这两个ic均ok。

这个问题一度困扰过cb良久,最终cb偶然发现,将突发长度从256改为128,就能好好的解决,自此,解决了问题(详情参阅cb博客)

但是这样可能并不完美,需要深究其根本,就得仔细阅读内部代码,仔细推敲,本人水平有限,所以只能一步一个脚印。

现将兼容和不兼容的程序统一接口,使得程序更好移植,逻辑更加清晰。

ps:cb的接口已经做得很棒,只是我不太习惯,以下移植接口,按照我的思维理解方式修改。

先看看cb现有的接口

改造中

1、

module LCDData_Simulate
(
input clk, //globan clock
input rst_n, //Global reset
input sys_vaild, //the device is ready
input[7:0] DIVIDE_PARAM, //0-255
input[11:0] X_size,  // 增加x尺寸大小输入,
input[11:0] Y_size,  // 增加y尺寸大小输入,

//sys 2 sdram control
output disp_valid,  // 增加显示有效信号输出,告知设备,目前输出像素有效,类似显示的帧同步信号
output reg [15:0] sys_data,
output sys_we
);

2、SDRAM_VGA_Display_Test

增加 WR_LOAD信号,根据数据产生模块的帧有效的信号,产生一个脉冲,高电平脉冲,在帧同步信号结束时产生,用于清除fifo

wire WR_LOAD;
reg sys_disp_valid_r1;
reg sys_disp_valid_r2;
[email protected](posedge clk_ref)
begin
sys_disp_valid_r1<=sys_disp_valid;
sys_disp_valid_r2<=sys_disp_valid_r1;
end
assign WR_LOAD=sys_disp_valid_r1&(!sys_disp_valid_r1);

3、SDRAM_VGA_Display_Test

// FIFO Write Side
.WR_CLK (clk_write), //write fifo clock
.WR_LOAD (WR_LOAD), //使用此信号
.WR_DATA (sys_data_in), //write data input
.WR (sys_we_in), //write data request
.WR_MIN_ADDR (22‘d0), //write start address
.WR_MAX_ADDR (`H_DISP * `V_DISP *22‘d1), //write max address
.WR_LENGTH (9‘d256), //write burst length

就此,第一步兼容已经完成,此目的已经达到数据产生模块任意间隔产生数据,保证同步,下一再实现显示器尺寸自动匹配功能。

时间: 2024-11-05 20:06:40

适用于带fifo接口的存储器和显示器测试模块封装 挑战cb的相关文章

【关注图像采集视频传输】之 Cy3014 usb3.0 FIFO接口

CYUSB3014延续了CY7C68013A最吸引人的地方,那就是实现高速数据传输的Slave FIFO接口,应用这种模式,据说数据传输率可以达到320MB/s. 同USB2.0的芯片CY7C68013集成了一个通用可编程接口GPIF一样,USB3.0的芯片CYUSB3014也含有通用可编程接口GPIF,并且升级到GPIF II.通用可编程接口GPIF就是一个可编程的状态机,可以与外部的Processor, ASIC, 或者FPGA无胶粘逻辑相连,实现高速数据传输.CYUSB3014的通用可编程

python接口自动化(三十五)-封装与调用--流程类接口关联(详解)

简介 流程相关的接口,主要用 session 关联,如果写成函数(如上篇),s 参数每个函数都要带,每个函数多个参数,这时候封装成类会更方便.在这里我们还是以博客园为例,带着小伙伴们实践一下. 接口封装大致流程 1.在接口测试中,有些接口经常会被用到比如登录的接口,这时候我们可以每个接口都封装成一个方法,如:登录.保存草稿.发布随笔.删除随笔,这四个接口就可以写成四个方法 2.接口封装好了后,后面我们写用例那就直接调用封装好的接口就行了,有些参数,可以参数化,如保存草稿的 title 和 bod

Asp.net 面向接口可扩展框架之数据处理模块及EntityFramework扩展和Dapper扩展(含干货)

面向接口数据处理模块是什么意思呢?实际上很简单,就是使用面向接口的思想和方式来做数据处理. 还提到EntityFramework和Dapper,EntityFramework和Dapper是.net环境下推崇最高的两种ORM工具. 1.EntityFramework是微软出的根正苗红的.netd的ORM工具,直接在Vs工具和Mvc框架中集成了,默认生成的项目就是使用EntityFramework的;微软也一直都在维护更新升级,最新版本最新版本都在EF7了.也迁移到了最新的.net Core平台了

Interface接口的设置是由其他模块决定的

描述:我写了个登陆器   无非就是登陆和注册这2个功能,当然还有一个验证码功能 根据职责性,我登陆器不涉及任何用户有关操作. 但我需要规定用户模型必须有以下几个功能,我登陆器才能使用,登陆.注册.根据名字获取用户的个人信息. 所以我设置如下 <?php interface IMember {    /**   * 根据用户名获取用户信息 用户名不指定可以是邮箱.昵称或者手机号码   * @param String $username   */  public function getOneMem

(转)用mysql自带工具mysqlslap对数据库进行压力测试

http://aolens.blog.51cto.com/7021142/1901557-------用mysql自带工具mysqlslap对数据库进行压力测试 mysqlslap是mysql自带的工具,不需要单独安装: 参数: -concurrency 代表并发数量,多个可以用逗号隔开,concurrency=10,50,100, 并发连接线程数分别是10.50.100个并发. --engines 代表要测试的引擎,可以有多个,用分隔符隔开. --iterations 代表要运行这些测试多少次

基于Verilog的带FIFO输出缓冲的串口接收接口封装

一.模块框图及基本思路 rx_module:串口接收的核心模块,详细介绍请见"基于Verilog的串口接收实验" rx2fifo_module:rx_module与rx_fifo之间的控制模块,其功能是不断接收并将数据写入rx_fifo rx_interface:串口接收接口封装,也就是前两个模块的组合 rx_interface_control:串口接收接口控制模块,每隔1s读取一次串口rx_fifo,并将数据的低四位用Led显示出来 rx_interface_top:串口接收接口顶层

iOS调用发邮件,打电话,发短信,自带浏览器接口的介绍

1.调用 自带mail [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"mailto://[email protected]"]]; 2.调用 电话phone [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel://8008808888"]]; 3.调用 SMS [[UIApplication s

使用util包里自带的接口和类实现观察者模式

之前的关于观察者模式的文章,是用自己写的Observable接口和Observer接口,然后进行实现.其实官方的util包下自带有实现观察者模式对应的接口和类,可以简化我们的代码结构. 比如我们可以直接创建一个子类通过继承 util包下的Observable类来成为被观察者,这样就不用自己去写一个接口,然后实现它的方法,或是自己创建一个List来存储所有观察者了. 我们只需要在需要通知观察者时先调用setChanged()来表示自己的数据或状态已经发生了改变,然后在调用notifyObserve

模仿RA8875/RA8876做个图形LCD控制器,STM32跑emWin接VGA显示器测试OK

RA8875相信大家都熟悉吧?我们很多工程师都热衷于STM32+RA8875+emWin做界面显示,去年瑞佑又推出了同系列新产品RA8876/RA8877. 图形LCD控制器的系统主构架是:FPGA+DDR2+Nand-Flash,FPGA里面还跑了个8051,因为要做指令缓冲.FAT32文件系统.Nand-Flash驱动程序,这三样东西没有C语言单靠FPGA是没法实现的,其实和RA8875/RA8876最大的不同就是这三个功能,可以说在某些方面是RA8875/RA8876的升级版!当然成本也没