当前位置:   article > 正文

modelsim 仿真bmp图片实现RGB_YCrCb_modelsim生成的rgb文件在哪里

modelsim生成的rgb文件在哪里

用modelsim_se软件仿真bmp图片,可在modesim中实现一些图片处理算法和查看效果

本文以最简单的仿真一副bmp图像为例,实现RGB_YCrCb的modelsim仿真,带源工程

1、先在本地建立文件夹

2、首先打开moselsim

3、新建库和新建项目,保存到建立的文件夹里面

4、把设计文件,tb文件加入项目中(自己新建文件敲代码也可以)

5、编译文件(complile all),查找错误,修改bug

6、点击simulate --> start simulation--->点击Libraies -->   add...

这一步是将项目中所需要的库加入进去,选择设计的库路径即可,比如设计文件所在的路径,还有依赖的设计文件的路径,比如altera_mf.v所在的路径

点击ok   ---->cancel

7、再点击simulate --> start simulation,找到库中的tb文件, 

如果没在work库中找到tb文件,可以在自己建立的库中找一下,没找到会出现如下错误,这时可以重新新建一个库再simulation

8、仿真成功

添加波形

9、设计时间,点击run即可

代码解析

tb文件

代码中需要把bmp图片  转化成    rgb数据格式带有行场信号的信号,经过图像处理算法后再转化成bmp图片,以下是bmp图片的读取和结果图片的写入

  1. initial begin
  2. iBmpFileId = $fopen("D:\\study\\fpga\\modelsim_save\\img_gray\\PIC\\1_Jing_J66819.bmp","rb");
  3. //640 * 480图片
  4. //将输入BMP图片加载到数组中
  5. //rBmpData 读出是按字节为单位
  6. iCode = $fread(rBmpData,iBmpFileId);
  7. /*
  8. BMP文件头共14字节;BMP信息头共40字节;剩余部分为图像数据640 * 480 * 3(字节)
  9. 第18-21字节存图片宽度,大端存储模式
  10. 第22-25字节存图片高度
  11. */
  12. //根据BMP图片文件头的格式,分别计算出图片的 宽度 /高度 /像素数据偏移量 /图片字节数
  13. iBmpWidth = {rBmpData[21],rBmpData[20],rBmpData[19],rBmpData[18]};
  14. iBmpHight = {rBmpData[25],rBmpData[24],rBmpData[23],rBmpData[22]};
  15. iBmpSize = {rBmpData[ 5],rBmpData[ 4],rBmpData[ 3],rBmpData[ 2]};
  16. iDataStartIndex = {rBmpData[13],rBmpData[12],rBmpData[11],rBmpData[10]};
  17. //关闭输入BMP图片
  18. $fclose(iBmpFileId);
  19. //打开输出BMP图片
  20. oBmpFileId_1 = $fopen("D:\\study\\fpga\\modelsim_save\\img_gray\\PIC\\output_file_1.bmp","wb+");
  21. //延迟13ms,等待第一帧图片处理结束
  22. #13000000
  23. //输出第一张
  24. for (iIndex = 0; iIndex < iBmpSize; iIndex = iIndex + 1) begin
  25. if(iIndex < 54)
  26. Vip_BmpData_1[iIndex] = rBmpData[iIndex];
  27. else
  28. Vip_BmpData_1[iIndex] = vip_pixel_data_1[iIndex-54];
  29. end
  30. //将数组中的数据写到输出BMP图片中
  31. for (iIndex = 0; iIndex < iBmpSize; iIndex = iIndex + 4) begin
  32. rBmpWord = {Vip_BmpData_1[iIndex+3],Vip_BmpData_1[iIndex+2],Vip_BmpData_1[iIndex+1],Vip_BmpData_1[iIndex]};
  33. $fwrite(oBmpFileId_1,"%u",rBmpWord);
  34. end
  35. //关闭输出BMP图片
  36. $fclose(oBmpFileId_1);
  37. //打开输出的Txt文本
  38. oTxtFileId = $fopen("D:\\study\\fpga\\modelsim_save\\img_gray\\PIC\\output_file.txt","w+");
  39. //输出特征值
  40. /*
  41. for(i=0;i<8;i = i + 1)begin
  42. for(j=0;j<8;j = j + 1) begin
  43. //$fdisplay(oTxtFileId,"%b",char_feature[i][7-j]);
  44. $fdisplay(oTxtFileId,"%b",char_feature[i][j]);
  45. end
  46. $fdisplay(oTxtFileId,"\n");
  47. end
  48. */
  49. //将数组中的数据写到输出Txt文本中
  50. $fwrite(oTxtFileId,"%p",rBmpData);
  51. //关闭Txt文本
  52. $fclose(oTxtFileId);
  53. end

完整项目如下

https://download.csdn.net/download/eachanm/89107717

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/码创造者/article/detail/740960
推荐阅读
相关标签
  

闽ICP备14008679号