原创 摸索中前进

2010-3-27 16:59 1885 2 4 分类: FPGA/CPLD

        忙碌的一周又过去了,上周计划的LCD没有调通,很是郁闷,不过令我欣慰的是高速数据传输方面有了新的进展,呵呵……


       先说说LCD吧,如下图所示,是一块1602液晶,我以前用单片机控制过,几句C语言就可以搞定。板子上的这块液晶稍有不同,就是他的数据总线是4位的,每次得分两次传送。


ebc5f567-c091-4f7d-a6df-595043f7172d.gif


        惯例,我查看了这款液晶的手册,了解了它的控制指令和时序,,但要用VHDL来实现,这对我来说是个挑战,一是我刚学VHDL不久,二是VHDL写起来不像C语言那么方便,。查看了一些资料后,我定了如下方案,首先需要编写状态机,每个状态里面向液晶发送不同的控制指令和数据,由于每个状态所需时间不同,还需有一个模块去控制每一个状态的时间,两个模块分别对应两个进程,两个进程互相作用。按这样的思路我写了一个程序,让液晶显示‘a’,仿真觉得没什么问题,但是下进板子里面就没有显示,又是液晶还闪几下,觉得很奇怪,查了很长一段时间,觉得问题可能是控制字没有写对,再就是我的程序本身有问题,因为是第一次写状态机,不是很熟练,这些问题只能留到下周去查了。大家有什么好的方法可以在这里和我讨论,我想听听大家意见,互相学习嘛。


再说说高速数据传输的实验吧,这个板子上有两个SATA口,是全双工的,用的传输线和电脑硬盘那个是一样的。


76956775-6b90-4269-aed5-40f9a84fa239.gif


这个实验其实很简单,因为有IP核以及详细的操作向导,最终可以生成一个实例,程序只需改动很少,然后编译就可以下载到板子上了,但要观察实验结果就需用到chipscope,它可以在线观查实验数据。花了一天时间学习了chipscope操作方法,但在实验时却总是看不到波形,非常郁闷,找师兄上来看了一下午,还是没有结果,但收到师兄的启发,晚上的时候我研究了一下程序,发现约束文件里面有两个管脚没有按我们的意图约束到相应的地方,改动之后再用chipscope看时果然有了数据,此时时间也不早了,回到宿舍休息,心情激动……^_^


        第二天早上过来继续研究,发现波形不是很对,发送的两个端口都有数据,接收的只有一个端口有数据,这个问题我们又讨论了很久,从向导设置到程序到看了好多遍,结果还是一样,最终我将SATA线拔掉,在查看波形,发现接收端口竟然还有数据,这很诡异啊!只有一种可能—向导产生的实例根本就不是SATA模块的,分析之后,它是SPI模块上的,产生这个错误完全是由于这个板子的原理图所导致的,画的有问题!改正之后,在chipscope上产生了完美的波形,发送接收数据完全一致,哈哈,终于搞通了,周末好好放松一下,下周继续研究它……

PARTNER CONTENT

文章评论2条评论)

登录后参与讨论

用户531580 2010-3-28 00:27

谢谢高手指点啊!

用户1122702 2010-3-27 21:14

首先,用状态机控制LCD是吃力不讨好的事情,可扩展性差,如果只是学习的话,建议在FPGA的嵌入式系统学习的时候使用LCD; 不知道你的代码有没有仿真,如果仿真时序正常的话,先仿真,然后看顶层文件是否正确连线;综合后的资源利用是否合理;
相关推荐阅读
用户531580 2010-05-13 13:29
海明码详解
海明码是奇偶校验的一种扩充。它采用多位校验码的方式,在这些校验位中的每一位都对不同的信息数据位进行奇偶校验,通过合理地安排每个校验位对原始数据进行校验位组合,可以达到发现错误,纠正错误的目的。<...
用户531580 2010-04-17 23:19
又进一步
        终于有时间写日志了,这几周还真是忙啊,呵呵!        高速数据传输方面有了新的进展。我将向导生成的例子从头到尾研究了几遍,发现它包含以下几个模块:ROCKETIO模块,发送数据模...
用户531580 2010-04-10 11:32
XILINX IP核定制ROM
        FPGA内部有BLOCK RAM和分布式RAM,这些资源都可以作为ROM(ROM只是有初始值的RAM,而且该初始值不能改变)。有些低端的FPGA可能没有BLOCK RAM。本文主要介绍...
用户531580 2010-03-21 14:51
我们为什么要写testbench?
与写testbench相对应的功能手段还有画波形图,两者相比,画波形图的方法更加直观和易于入门,那为什么我们还要写Testbench呢?原因有以下五点:第一,画波形图只能提供极低的功能覆盖。! \  ...
用户531580 2010-03-20 15:02
开工
       搬到老校区已有一周了,这学期我的主要任务是做毕业设计,题目是用FPGA实现宽带信号的可靠传输,其实题目上学期已经拿到,但之前一直在做38所DSP函数库的项目,因此也就没有时间准备这个课题...
EE直播间
更多
我要评论
2
2
关闭 站长推荐上一条 /3 下一条