对于咱们大家学习FPGA技术来讲,截止到昨天,课程学习也有一个月了,今天通过2道考题来对大家为期一个月的学习进行测试模拟,看大家在一个月里边的学习情况掌握的如何,2道考题:

考题突出重点:

FPGA的设计流程(最基本的);

FPGA的实验文档设计(从项目开发的角度出发,先有设计文档,项目开发模块架构);

FPGA的testbench测试激励文件;

FPGA的模块划分及模块内部信号定义的专业化;

FPGA实验的仿真波形图,通过modelsim进行时序仿真,对信号进行抓取分析,分析信号的行为;

FPGA的层次化设计(重点),FPGA的设计思想-自顶向下设计(重点);

考核题目:

利用串口将图片数据发送给下位机,下位机通过vga接口将图片数据发送给显示器,使显示器能够稳定显示图片。

要求:

大家在设计分析过程中,要有时序图,框图这些。

各个信号所表示的含义

各个模块之间是如何交互

仿真波形图或者在线逻辑仪分析图

设计分析:

根据我们的要求,利用串口将图片数据发送给下位机,首先我们可以通过第三方软件将图片数据提取出来,下位机就需要用到我们设计验证的串口的接收模块,将图片数据接收过来,由于我们要将数据给到vga接口,并通过显示器显示,vga接口的驱动时钟与串口接收模块的驱动时钟不一致,那么对于图片数据我们就需要进行跨时钟域处理。

结合我们前面学习,能够进行跨时钟域的逻辑可以选择ip核双端口ram以及fifo:

1, 如果我们利用双端口ram进行图片数据缓存及跨时钟域处理,那么双端口ram的写时钟应该为串口接收模块的驱动时钟,串口接收,模块确认接收到图片数据后写入到ram中,写入ram的控制逻辑包含写使能(写请求),写地址,写请求信号可以利用我们在接收模块产生的标志信号flag来表示,写地址也需要利用标志信号来进行控制。

forum.jpg

1-11

写入时序如上面时序图表示。

接下来我们考虑如何控制读取ram中图片数据?

第一种控制读形式:我们控制从ram中一直读取数据,在上位机没有发送图片数据时也一直读取ram中的数据,在图片显示区域拉高读使能信号,显示区域内每一行的变化为100次,地址变化100次,显示器在没有发送数据时的现象为:如果我们将图片数据初始化到ram中,显示器直接显示图片;如果我们没有将图片数据初始化到ram中,显示器在图片显示区域显示黑色;上位机开始发送数据,vga接口一直在读取ram中的数据,我们看到的现象为:图片就会按一个像素点依次点亮的过程,就像在打印图片一样,直到将图片数据全部发送完成后,显示器显示的图片才能够稳定。

第二种控制读形式:上位机将图片数据发送完成后再开始读取;在没有发送数据时,显示器在图片显示区域显示黑框,当开始发送数据时,在数据没有发送完成之前,显示器在图片显示区域显示黑框,当数据发送完成后,我们将图片的数据全部缓存再ram中了,我们开始读取ram中的数据,显示器会马上将图片显示出来。和我们将图片数据初始化到ram中的现象一样。

2, 如果考虑利用fifo进行图片数据的缓存和进行跨时钟域处理,ip核fifo与ip核ram的区别为:fifo空的时候是不能读取数据的,ram我们可以控制随时读取数据;fifo里面的数据只能够读取一次,如果想第二次读取只能先将这个数据写入进去才能够读取,ram只要将数据写入进去,我们可以控制一直读取该数据,不需要重新写入。不管我们有没有通过上位机发送图片数据,显示器图片显示区域我们看到的现象只能是黑框。

forum.jpg

1-12