概述
导言:在调试FPGA做图像数据的时候,希望将图像数据导出,在电脑上显示,有助于调试代码。有两种方法:
- 1.直接在testbench中处理,将数据转换成为bmp图像;
- 2.将图像数据在testbench中输出到TXT中。
方法1:输出bmp图像格式
fpga实现sobel边缘检测modelsim仿真代码
参考大磊FPGA的这个代码(我设置的是0积分下载,放心食用),他代码里面有这个功能。
方法2:输出TXT图像数据,接着将16进制的txt图像数据转成图像
参考网址:Testbench编写指南(2)文件的读写操作
我用的是第二段代码,这段代码不足的是没有关闭文件操作,所以当输出数据输出完成后,但是你打开TXT文件,数据是缺失的!需要你把FPGA开发软件(比如我是用vivado)关了,他才会填充补满。这就很操蛋了,一直要开关vivado。下面是加了fclose的代码,简单来说在它的基础上添加一个信号去出发fclose:
integer file_out;
initial
begin
file_out = $fopen("D:\......目录\output_file.txt","w+");//记得用\分开
if (!file_out) begin
$display("can't open file");
$finish;
end
end
reg data_en_delay;
wire data_en_neg;
always @(posedge hdmi_clk) begin
data_en_delay <= data_en;
end
assign data_en_neg= (~data_en) & data_en_delay ;
//data_en为href行有效信号,当en=1时候,输出image_data,你的图像数据
always @ (posedge hdmi_clk) begin
if(data_en) begin
$fdisplay(file_out, "%h", image_data);//将数据写到TXT文件中,并且自动换行
end
end
always @ (posedge hdmi_clk) begin
if(data_en_neg == 1'b1) begin
$fclose(file_out);
end
end
获得图像数据后,要显示图像,方法就很多了,可以通过matlab, python等。下面介绍两种方法:
-
1.软件 图像显示上位机
这是之前上传的,现在积分有点贵。 -
2.Ptyhon
需要下载opencv, numpy
import cv2
import numpy as np
a = np.loadtxt('image_data.txt', converters={_:lambda s: int(s, 16) for _ in range(1)})
cv2.imwrite("image_data.bmp", a.reshape(64,64))#换成你图像尺寸, 在程序目录会输出图像
最后
以上就是单纯鼠标为你收集整理的FPGA调试技巧:将仿真图像数据输出到TXT或者输出成为BMP文件的全部内容,希望文章能够帮你解决FPGA调试技巧:将仿真图像数据输出到TXT或者输出成为BMP文件所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复