1.前言
ModelSim仿真最麻烦的就是仿真平台的搭建,对于图像仿真来说,图像的输入输出就是搭建仿真平台的关键。本文介绍一下如何在ModelSim中实现图像的输入输出。
2.框图
在testbench中主要有两个模块,一个是图像输入模块driver,一个是图像输出模块monitor。Driver模块负责把bmp位图转换成RGB并行数据,Monitor模块负责把RGB并行数据转成bmp位图并存储下来。
3.图像输入
图像输入模块driver根据输入bmp位图的文件名,分辨率信息,把图像数据转换成常见RGB/hs/vs/de格式数据。
Video_syntime_config模块负责把参数转换成视频时序参数,因为为了仿真快速需要,通常使用一些小图片仿真,所以这些时序参数与VESA标准不完全相同。可根据实际需要自行调整。
Video_gen_syn模块负责根据视频时序参数参数hs/vs/de信号,用于输出和提供给视频数据产生模块。
Video_gen_data模块负责把bmp位图文件中的图像数据转换成RGB888格式数据。至于bmp位图文件格式网上有很多介绍,这里不专门叙述。简单来说转换方法就是定义大的二维数组,将读取的文件数据去除文件头后,将图像数据按顺序存入数组,然后再按时序从数组中把数据输出。
4.图像输出
图像输出模块monitor负责将RGB/hs/vs/de格式数据转换成bmp位图输出。过程跟视频数据产生过程相反。先定义大的二维数组,将图像数据写入数组,然后利用写入文件的命令把数据写入bmp文件,同时还要记得把bmp的文件头写入。
5.仿真
整体功能比较简单,利用modelsim仿真工具即可实现。如果已安装modelsim,通过直接双击运行.bat文件即可开始。本文中设计作为图像仿真的基础平台,可以在此基础上仿真自己设计的其他功能模块,只要在输入输出模块中间插入其他功能模块即可。
仿真代码及工程上传至 https://download.csdn.net/download/cjie221/11010293
声明:本设计只作为个人学习交流使用,不做商业用途。