loadomain

博客园 首页 新随笔 联系 订阅 管理

2013年8月23日 #

摘要: 前言:sram顾名思义静态随机存储器,分为asram异步型和ssram同步型。这里驱动DE2上一块ISSI公司的512KB的asram。 设计思路:因为实际应用中单字节读写效率不高,所以本设计中仿照sdram的页突发读写,提高sram的效率。因为sram不像sdram需要定期刷新以及行列地址复用,因此省却很多麻烦。拿到手册以后主要关注的就是其最快运行时钟以及数据稳定的建立时间和保持时间,以及控制线的时间参数,这些参数可以由datasheet的时序参数的min time和max time确定,通过这些参数可以简化后续的读写的时序图。 注意事项: (a)在读操作中,读指令有效到数... 阅读全文
posted @ 2013-08-23 23:44 loadomain 阅读(3721) 评论(0) 推荐(0) 编辑

2013年8月21日 #

摘要: 前言:因为VGA是一种模拟图像传输数据接口,所要将数字信号用DAC转换成模拟量。本文用的一款ADI公司高精度的视频IC,实则一款高带宽的视频DAC。因为VGA时序较为简单,并且网上的VGA驱动基本大同小异。本文也没有什么特别创新之处。注意点:(a)行扫描计数器和场扫描计数器需要与每个像素点、消隐数目想对应,这样才能得到正确的行列地址坐标。参考资料:《VESA_VGA时序标准》、《ADV7123a》源码1:逐行扫描的VGA控制器 1 `timescale 1 ns / 100 ps 2 `define RedWidth 10 3 `define GreenWidth 10 4... 阅读全文
posted @ 2013-08-21 09:17 loadomain 阅读(684) 评论(0) 推荐(0) 编辑

2013年8月12日 #

摘要: 前言:终于到了测试篇,不过悲剧了一下。按照之前《二》里面的思路,在顶层用一个复用器驱动读写独立模块的I2C总线确实失败。虽然综合过去了,不过警告里已经说明:底层的2个原本是inout三态口的数据线在顶层复用时候被综合成wire,这样在默认情况下顶层的inout总是输出有效,失去了三态口的作用。囧,看来为了测试I2C的写还是得把读模块并进去可避免这一尴尬……测试:DE2+Questasim10.0c+Q2_9.1;日期:2013七夕夜结果:以下2张图为仿真波形图与逻辑分析仪采样的时序波形图。之前还踩不到ACK信号,因为宏定义里读写器件的地址弄饭了。(若这里程序与之前的《一》《二》有出路须以此篇修 阅读全文
posted @ 2013-08-12 17:17 loadomain 阅读(2535) 评论(1) 推荐(0) 编辑

2013年8月11日 #

摘要: 前言:接着上一篇的I2C写操作,今天要实现一个I2C的读操作。虽然在ADV7181B配置内部寄存器时没有必要使用到读操作,但是为了进一步确认寄存器是否在I2C写模块下被正确配置,这一步是必不可少的。设计思路:由于最终的应用里I2C读模块在调试结束后还是要被剔除,因此决定还是另外建一个读的状态机独立于之前的写状态机。读状态机的思路基本和写状态机的思路一样,需要注意的是一次写操作需要两次的START信号和最后一字节传输结束后的NON-ACKNOWLEDGE。改进和注意点:相比之前的写模块,读模块完善了以下这些 (a)时钟信号在一系列写操作完毕之后拉高,不再跳变; (b)添加了使... 阅读全文
posted @ 2013-08-11 09:13 loadomain 阅读(980) 评论(0) 推荐(0) 编辑

2013年8月9日 #

摘要: 前言:之前申请了ADI公司的一款ADV7181CBSTZ的视频解码芯片,正好原装DE2板子安的是同系列的ADV7181BBSTZ。虽然都是ADV7181的宗出,但是寄存器配置等等还是有些诧异,引脚也不兼容。而且ADI已经停产了ADV7181B,现在主推C系列的。关于7181不同系列配置和操作问题可以在http://ez.analog.com社区,ADI公司的工程师都会直接帮你回答,我搜索了一部分Q&A,里面的问题基本都能得到不错解决。ps.其实从工程师解答的方式,对比一下自己遇到问题首先该怎么思考解决方法,这一点是可以学到很多知识。 设计思路:废话多说了,I2C总线协议主要用来给模拟和 阅读全文
posted @ 2013-08-09 10:23 loadomain 阅读(1753) 评论(0) 推荐(1) 编辑

2013年8月5日 #

摘要: 开发工具:Quartus II 9.1;仿真软件:Questa Sim 10.0c;硬件平台:Terasic DE2-115(EP2C35F672C6);外设:MAX3232;3个工程文件:"uart_baud.v" + "uart_rx.v" + "uart_tx.v";2个仿真文件::"uart_rx_tsb.v" + "uart_tx_tsb.v"设计思路:略注意事项:波特率模块采样脉冲式分频; 接收模块仅在一个时刻采样,若需要考虑误码率可在状态机里插入0-1计数器;partI:uart_ 阅读全文
posted @ 2013-08-05 12:05 loadomain 阅读(2138) 评论(1) 推荐(0) 编辑

2013年7月30日 #

摘要: 开发工具:Quartus II 9.1;仿真软件:Questa Sim 10.0c;硬件平台:Terasic DE2-115(EP2C35F672C6);外设:hd44780控制器lcd1602;3个工程文件:"lcd1602_cgram_controller.v" + "lcd1602_cgram_driver.v" + "lcd1602_cgram_driver_tsb.v";设计思路: 底层直接操作lcd1602的模块为"*_controller.v"文件,三段式状态机,完成初始化液晶工作模式(无光标、5X8 阅读全文
posted @ 2013-07-30 10:51 loadomain 阅读(888) 评论(0) 推荐(0) 编辑