使用Verilog HDL对FPGA的图像处理

FPGA. 项目 旨在详细介绍如何处理图像 verilog. 从读取Verilog中的输入位图图像(.bmp),处理和将处理结果写入Verilog中的输出位图映像。 这 full Verilog code for reading image, 图像处理提供和写入图像。

使用Verilog HDL对FPGA的图像处理

在这方面 FPGA. Verilog项目,一些简单的处理操作在Verilog中实现,例如反转,亮度控制和阈值操作。通过“参数”文件选择图像处理操作,然后,将处理后的图像数据写入位图图像输出.BMP以进行验证目的。 The 图像读数 Verilog澳门在线作为图像传感器/摄像机的Verilog模型运行,这可以实际上有助于实时功能验证 FPGA. 图像处理项目。当您希望在BMP格式中看到输出图像时,图像写入部分也非常有用。在这个项目中,我将一些简单的图像处理澳门在线添加到阅读部分中以制定图像处理的示例,但您可以轻松地将其删除以获取原始图像数据。学生提出的所有相关问题都在本文的底部回答。

首先,Verilog不能 阅读图像 directly. 要在Verilog中读取.bmp映像,则需要从位图格式转换为十六进制格式。下面是MATLAB示例澳门在线,用于将位图图像转换为.hex文件。输入图像大小为768x512,图像.hex文件包括位图图像的R,G,B数据。
b=imread('kodim24.bmp'); % 24-bit BMP image RGB888 

k=1;
for i=512:-1:1 % image is written from the last row to the first row
for j=1:768
a(k)=b(i,j,1);
a(k+1)=b(i,j,2);
a(k+2)=b(i,j,3);
k=k+3;
end
end
fid = fopen('kodim24.hex', 'wt');
fprintf(fid, '%x\n', a);
disp('Text file write done');disp(' ');
fclose(fid);
% fpga4student.com FPGA projects, Verilog projects, VHDL projects
要读取图像十六进制数据文件,Verilog使用此命令:$ ReadMemh或$ ReadMemb如果图像数据处于二进制文本文件中。在读取图像.hex文件后,RGB图像数据被保存到内存中并读出处理。

以下是图像读取和处理部分的Verilog澳门在线:

/******************************************************************************/
/******************  Module for reading and processing image     **************/
/******************************************************************************/
`include "参数.."       // Include definition file
// hzgifts.cn:  FPGA. 项目s for students
//  FPGA. 项目: Image processing in Verilog
module image_read
#(
  parameter     WIDTH  = 768,   // Image width
         HEIGHT  = 512,   // Image height
  INFILE  = "./img/kodim01.hex",  // image file
  START_UP_DELAY = 100, // Delay during start up time
  HSYNC_DELAY = 160,// Delay between HSYNC pulses 
  VALUE= 100, // value for Brightness operation
  THRESHOLD= 90, // Threshold value for Threshold operation
  SIGN=1         // Sign value using for brightness operation
  // SIGN = 0: Brightness subtraction           
  // SIGN = 1: Brightness addition
)
(
  input HCLK,          // clock     
  input HRESETn,         // Reset (active low)
  output VSYNC,        // Vertical synchronous pulse
 // This signal is often a way to indicate that one entire image is transmitted.
 // Just create and is not used, will be used once a video or many images are transmitted.
  output reg HSYNC,        // Horizontal synchronous pulse
 // An HSYNC indicates that one line of the image is transmitted.
 // Used to be a horizontal synchronous signals for writing bmp file.
  output reg [7:0]  DATA_R0,  // 8 bit Red data (even)
  output reg [7:0]  DATA_G0,  // 8 bit Green data (even)
  output reg [7:0]  DATA_B0,  // 8 bit Blue data (even)
  output reg [7:0]  DATA_R1,  // 8 bit Red  data (odd)
  output reg [7:0]  DATA_G1,  // 8 bit Green data (odd)
  output reg [7:0]  DATA_B1,  // 8 bit Blue data (odd)
  // Process and transmit 2 pixels in parallel to make the process faster, you can modify to transmit 1 pixels or more if needed
  output     ctrl_done     // Done flag
);   
//-------------------------------------------------
// Internal Signals
//-------------------------------------------------
parameter sizeOfWidth = 8;   // data width
parameter sizeoflengthreal. = 1179648;   // image data : 1179648 bytes: 512 * 768 *3 
// local parameters for FSM
localparam  ST_IDLE  = 2'b00,// idle state
   ST_VSYNC = 2'b01,// state for creating vsync 
   ST_HSYNC = 2'b10,// state for creating hsync 
   ST_DATA  = 2'b11;// state for data processing 
reg [1:0] cstate,   // current state
nstate;    // next state   
reg start;         // start signal: trigger Finite state machine beginning to operate
reg HRESETn_d;   // delayed reset signal: use to create start signal
reg   ctrl_vsync_run; // control signal for vsync counter  
reg [8:0] ctrl_vsync_cnt; // counter for vsync
reg   ctrl_hsync_run; // control signal for hsync counter
reg [8:0] ctrl_hsync_cnt; // counter  for hsync
reg   ctrl_data_run; // control signal for data processing
reg [7 : 0]   total_memory [0 : sizeOfLengthReal-1];// memory to store  8-bit data image
// temporary memory to save image data : size will be WIDTH*HEIGHT*3
integer temp_BMP   [0 : WIDTH*HEIGHT*3 - 1];   
integer org_R  [0 : WIDTH*HEIGHT - 1];  // temporary storage for R component
integer org_G  [0 : WIDTH*HEIGHT - 1]; // temporary storage for G component
integer org_B  [0 : WIDTH*HEIGHT - 1]; // temporary storage for B component
// counting variables
integer i, j;
// temporary signals for calculation: details in the paper.
integer tempR0,tempR1,tempG0,tempG1,tempB0,tempB1; // temporary variables in contrast and brightness operation

integer value,value1,value2,value4;// temporary variables in invert and threshold operation
reg [ 9:0] row; // row index of the image
reg [10:0] col; // column index of the image
reg [18:0] data_count; // data counting for entire pixels of the image
//-------------------------------------------------//
// -------- Reading data from input file ----------//
//-------------------------------------------------//
initial begin
    $readmemh(INFILE,total_memory,0,sizeOfLengthReal-1); // read file from INFILE
end
// use 3 intermediate signals RGB to save image data
always@(start) begin
    if(start == 1'b1) begin
        for(i=0; i<WIDTH*HEIGHT*3 ; i=i+1) begin
            temp_BMP[i] = total_memory[i+0][7:0]; 
        end
        
        for(i=0; i<HEIGHT; i=i+1) begin
            for(j=0; j<WIDTH; j=j+1) begin
     // Matlab code writes image from the last row to the first row
     // Verilog code does the same in reading to correctly save image pixels into 3 separate RGB mem
                org_R[WIDTH*i+j] = temp_BMP[WIDTH*3*(HEIGHT-i-1)+3*j+0]; // save Red component
                org_G[WIDTH*i+j] = temp_BMP[WIDTH*3*(HEIGHT-i-1)+3*j+1];// save Green component
                org_B[WIDTH*i+j] = temp_BMP[WIDTH*3*(HEIGHT-i-1)+3*j+2];// save Blue component
            end
        end
    end
end
//----------------------------------------------------//
// ---Begin to read image file once reset was high ---//
// ---by creating a starting pulse (start)------------//
//----------------------------------------------------//
always@(posedge HCLK, negedge HRESETn)
begin
    if(!HRESETn) begin
        start <= 0;
  HRESETn_d <= 0;
    end
    else begin           //          ______     
        HRESETn_d <= HRESETn;       //        |  |
  if(HRESETn == 1'b1 && HRESETn_d == 1'b0)  // __0___| 1 |___0____ : starting pulse
   start <= 1'b1;
  else
   start <= 1'b0;
    end
end
//-----------------------------------------------------------------------------------------------//
// Finite state machine for reading RGB888 data from memory and creating hsync and vsync pulses --//
//-----------------------------------------------------------------------------------------------//
always@(posedge HCLK, negedge HRESETn)
begin
    if(~HRESETn) begin
        cstate <= ST_IDLE;
    end
    else begin
        cstate <= nstate; // update next state 
    end
end
//-----------------------------------------//
//--------- State Transition --------------//
//-----------------------------------------//
// IDLE . VSYNC . HSYNC . DATA
always @(*) begin
 case(cstate)
  ST_IDLE: begin
   if(start)
    nstate = ST_VSYNC;
   else
    nstate = ST_IDLE;
  end   
  ST_VSYNC: begin
   if(ctrl_vsync_cnt == START_UP_DELAY) 
    nstate = ST_HSYNC;
   else
    nstate = ST_VSYNC;
  end
  ST_HSYNC: begin
   if(ctrl_hsync_cnt == HSYNC_DELAY) 
    nstate = ST_DATA;
   else
    nstate = ST_HSYNC;
  end  
  ST_DATA: begin
   if(ctrl_done)
    nstate = ST_IDLE;
   else begin
    if(col == WIDTH - 2)
     nstate = ST_HSYNC;
    else
     nstate = ST_DATA;
   end
  end
 endcase
end
// ------------------------------------------------------------------- //
// --- counting for time period of vsync, hsync, data processing ----  //
// ------------------------------------------------------------------- //
always @(*) begin
 ctrl_vsync_run = 0;
 ctrl_hsync_run = 0;
 ctrl_data_run  = 0;
 case(cstate)
  ST_VSYNC:  begin ctrl_vsync_run = 1; end  // trigger counting for vsync
  ST_HSYNC:  begin ctrl_hsync_run = 1; end // trigger counting for hsync
  ST_DATA:  begin ctrl_data_run  = 1; end // trigger counting for data processing
 endcase
end
// counters for vsync, hsync
always@(posedge HCLK, negedge HRESETn)
begin
    if(~HRESETn) begin
        ctrl_vsync_cnt <= 0;
  ctrl_hsync_cnt <= 0;
    end
    else begin
        if(ctrl_vsync_run)
   ctrl_vsync_cnt <= ctrl_vsync_cnt + 1; // counting for vsync
  else 
   ctrl_vsync_cnt <= 0;
   
        if(ctrl_hsync_run)
   ctrl_hsync_cnt <= ctrl_hsync_cnt + 1; // counting for hsync  
  else
   ctrl_hsync_cnt <= 0;
    end
end
// counting column and row index  for reading memory 
always@(posedge HCLK, negedge HRESETn)
begin
    if(~HRESETn) begin
        row <= 0;
  col <= 0;
    end
 else begin
  if(ctrl_data_run) begin
   if(col == WIDTH - 2) begin
    row <= row + 1;
   end
   if(col == WIDTH - 2) 
    col <= 0;
   else 
    col <= col + 2; // reading 2 pixels in parallel
  end
 end
end
//-------------------------------------------------//
//----------------Data counting---------- ---------//
//-------------------------------------------------//
always@(posedge HCLK, negedge HRESETn)
begin
    if(~HRESETn) begin
        data_count <= 0;
    end
    else begin
        if(ctrl_data_run)
   data_count <= data_count + 1;
    end
end
assign VSYNC = ctrl_vsync_run;
assign ctrl_done = (data_count == 196607)? 1'b1: 1'b0; // done flag
//-------------------------------------------------//
//-------------  Image processing   ---------------//
//-------------------------------------------------//
always @(*) begin
 
 HSYNC   = 1'b0;
 DATA_R0 = 0;
 DATA_G0 = 0;
 DATA_B0 = 0;                                       
 DATA_R1 = 0;
 DATA_G1 = 0;
 DATA_B1 = 0;                                         
 if(ctrl_data_run) begin
  
  HSYNC   = 1'b1;
  `ifdef BRIGHTNESS_OPERATION 
  /**************************************/  
  /*  BRIGHTNESS ADDITION OPERATION */
  /**************************************/
  if(SIGN == 1) begin
  // R0
  tempR0 = org_R[WIDTH * row + col   ] + VALUE;
  if (tempR0 > 255)
   DATA_R0 = 255;
  else
   DATA_R0 = org_R[WIDTH * row + col   ] + VALUE;
  // R1 
  tempR1 = org_R[WIDTH * row + col+1   ] + VALUE;
  if (tempR1 > 255)
   DATA_R1 = 255;
  else
   DATA_R1 = org_R[WIDTH * row + col+1   ] + VALUE; 
  // G0 
  tempG0 = org_G[WIDTH * row + col   ] + VALUE;
  if (tempG0 > 255)
   DATA_G0 = 255;
  else
   DATA_G0 = org_G[WIDTH * row + col   ] + VALUE;
  tempG1 = org_G[WIDTH * row + col+1   ] + VALUE;
  if (tempG1 > 255)
   DATA_G1 = 255;
  else
   DATA_G1 = org_G[WIDTH * row + col+1   ] + VALUE;  
  // B
  tempB0 = org_B[WIDTH * row + col   ] + VALUE;
  if (tempB0 > 255)
   DATA_B0 = 255;
  else
   DATA_B0 = org_B[WIDTH * row + col   ] + VALUE;
  tempB1 = org_B[WIDTH * row + col+1   ] + VALUE;
  if (tempB1 > 255)
   DATA_B1 = 255;
  else
   DATA_B1 = org_B[WIDTH * row + col+1   ] + VALUE;
 end
 else begin
 /**************************************/  
 /* BRIGHTNESS SUBTRACTION OPERATION */
 /**************************************/
  // R0
  tempR0 = org_R[WIDTH * row + col   ] - VALUE;
  if (tempR0 < 0)
   DATA_R0 = 0;
  else
   DATA_R0 = org_R[WIDTH * row + col   ] - VALUE;
  // R1 
  tempR1 = org_R[WIDTH * row + col+1   ] - VALUE;
  if (tempR1 < 0)
   DATA_R1 = 0;
  else
   DATA_R1 = org_R[WIDTH * row + col+1   ] - VALUE; 
  // G0 
  tempG0 = org_G[WIDTH * row + col   ] - VALUE;
  if (tempG0 < 0)
   DATA_G0 = 0;
  else
   DATA_G0 = org_G[WIDTH * row + col   ] - VALUE;
  tempG1 = org_G[WIDTH * row + col+1   ] - VALUE;
  if (tempG1 < 0)
   DATA_G1 = 0;
  else
   DATA_G1 = org_G[WIDTH * row + col+1   ] - VALUE;  
  // B
  tempB0 = org_B[WIDTH * row + col   ] - VALUE;
  if (tempB0 < 0)
   DATA_B0 = 0;
  else
   DATA_B0 = org_B[WIDTH * row + col   ] - VALUE;
  tempB1 = org_B[WIDTH * row + col+1   ] - VALUE;
  if (tempB1 < 0)
   DATA_B1 = 0;
  else
   DATA_B1 = org_B[WIDTH * row + col+1   ] - VALUE;
  end
  `endif
         /**************************************/  
  /*  INVERT_OPERATION       */
  /**************************************/
  `ifdef INVERT_OPERATION 
   value2 = (org_B[WIDTH * row + col  ] + org_R[WIDTH * row + col  ] +org_G[WIDTH * row + col  ])/3;
   DATA_R0=255-value2;
   DATA_G0=255-value2;
   DATA_B0=255-value2;
   value4 = (org_B[WIDTH * row + col+1  ] + org_R[WIDTH * row + col+1  ] +org_G[WIDTH * row + col+1  ])/3;
   DATA_R1=255-value4;
   DATA_G1=255-value4;
   DATA_B1=255-value4;  
  `endif
  /**************************************/  
  /********THRESHOLD OPERATION  *********/
  /**************************************/
  `ifdef THRESHOLD_OPERATION
  value = (org_R[WIDTH * row + col   ]+org_G[WIDTH * row + col   ]+org_B[WIDTH * row + col   ])/3;
  if(value > THRESHOLD) begin
   DATA_R0=255;
   DATA_G0=255;
   DATA_B0=255;
  end
  else begin
   DATA_R0=0;
   DATA_G0=0;
   DATA_B0=0;
  end
  value1 = (org_R[WIDTH * row + col+1   ]+org_G[WIDTH * row + col+1   ]+org_B[WIDTH * row + col+1   ])/3;
  if(value1 > THRESHOLD) begin
   DATA_R1=255;
   DATA_G1=255;
   DATA_B1=255;
  end
  else begin
   DATA_R1=0;
   DATA_G1=0;
   DATA_B1=0;
  end  
  `endif
 end
end

endmodule
这 image processing operation is selected in the following "参数.." file. To change the processing operation, just switch the comment line.
/***************************************/
 /****************** Definition file ********/ 
/************** **********************************************/ 
`define INPUTFILENAME "your_image.hex" // Input file name 
`define OUTPUTFILENAME "output.bmp" // Output file name 
// Choose the operation of code by delete 
// in the beginning of the selected line 
//`define BRIGHTNESS_OPERATION 
 `define INVERT_OPERATION 
//`define THRESHOLD_OPERATION
// hzgifts.cn FPGA projects, Verilog projects, VHDL projects
这 "参数.." file is also to define paths and names of the input and output file. 在处理图像之后,需要将处理的数据写入输出图像以进行验证。 

这 following Verilog code is to write the processed image data to a bitmap image for verification:

/****************** Module for writing .bmp image *************/ 
/***********************************************************/ 
// hzgifts.cn  FPGA. 项目s,  verilog.  projects, VHDL projects
// Verilog project: Image processing in Verilog
module image_write #(parameter 
WIDTH = 768, // Image width 
HEIGHT = 512, // Image height 
INFILE = "output.bmp", // Output image 
BMP_HEADER_NUM = 54 // Header for bmp image 
) 
( 
input HCLK, // Clock input 
HRESETn, // Reset active low 
input hsync, // Hsync pulse 
input [7:0] DATA_WRITE_R0, // Red 8-bit data (odd) 
input [7:0] DATA_WRITE_G0, // Green 8-bit data (odd) 
input [7:0] DATA_WRITE_B0, // Blue 8-bit data (odd) 
input [7:0] DATA_WRITE_R1, // Red 8-bit data (even) 
input [7:0] DATA_WRITE_G1, // Green 8-bit data (even) 
input [7:0] DATA_WRITE_B1, // Blue 8-bit data (even) 
output reg Write_Done 
); 
// hzgifts.cn FPGA projects, Verilog projects, VHDL projects
//-----------------------------------// 
//-------Header data for bmp image-----// 
//-------------------------------------// 
// Windows BMP files begin with a 54-byte header
initial  begin 
BMP_header[ 0] = 66;BMP_header[28] =24; 
BMP_header[ 1] = 77;BMP_header[29] = 0; 
BMP_header[ 2] = 54;BMP_header[30] = 0; 
BMP_header[ 3] = 0;BMP_header[31] = 0;
BMP_header[ 4] = 18;BMP_header[32] = 0;
BMP_header[ 5] = 0;BMP_header[33] = 0; 
BMP_header[ 6] = 0;BMP_header[34] = 0; 
BMP_header[ 7] = 0;BMP_header[35] = 0; 
BMP_header[ 8] = 0;BMP_header[36] = 0; 
BMP_header[ 9] = 0;BMP_header[37] = 0; 
BMP_header[10] = 54;BMP_header[38] = 0; 
BMP_header[11] = 0;BMP_header[39] = 0; 
BMP_header[12] = 0;BMP_header[40] = 0; 
BMP_header[13] = 0;BMP_header[41] = 0; 
BMP_header[14] = 40;BMP_header[42] = 0; 
BMP_header[15] = 0;BMP_header[43] = 0; 
BMP_header[16] = 0;BMP_header[44] = 0; 
BMP_header[17] = 0;BMP_header[45] = 0; 
BMP_header[18] = 0;BMP_header[46] = 0; 
BMP_header[19] = 3;BMP_header[47] = 0;
BMP_header[20] = 0;BMP_header[48] = 0;
BMP_header[21] = 0;BMP_header[49] = 0; 
BMP_header[22] = 0;BMP_header[50] = 0; 
BMP_header[23] = 2;BMP_header[51] = 0; 
BMP_header[24] = 0;BMP_header[52] = 0; 
BMP_header[25] = 0;BMP_header[53] = 0; 
BMP_header[26] = 1; BMP_header[27] = 0; 
end
//---------------------------------------------------------//
//--------------Write .bmp file  ----------------------//
//----------------------------------------------------------//
initial begin
    fd = $fopen(INFILE, "wb+");
end
always@(Write_Done) begin // once the processing was done, bmp image will be created
    if(Write_Done == 1'b1) begin
        for(i=0; i<BMP_HEADER_NUM; i=i+1) begin
            $fwrite(fd, "%c", BMP_header[i][7:0]); // write the header
        end
        
        for(i=0; i<WIDTH*HEIGHT*3; i=i+6) begin
  // write R0B0G0 and R1B1G1 (6 bytes) in a loop
            $fwrite(fd, "%c", out_BMP[i  ][7:0]);
            $fwrite(fd, "%c", out_BMP[i+1][7:0]);
            $fwrite(fd, "%c", out_BMP[i+2][7:0]);
            $fwrite(fd, "%c", out_BMP[i+3][7:0]);
            $fwrite(fd, "%c", out_BMP[i+4][7:0]);
            $fwrite(fd, "%c", out_BMP[i+5][7:0]);
        end
    end
end
这 header data for the bitmap image is very important and it is published 这里 。如果没有标题数据,则无法正确显示书面图像。在Verilog HDL中,$ FWRITE命令用于将数据写入文件。

接下来,让我们编写一个测试台Verilog澳门在线来验证图像处理操作。

`timescale 1ns/1ps /**************************************************/ 
/******* Testbench for simulation ****************/
/*********************************************/ 
 // hzgifts.cn FPGA projects, Verilog projects, VHDL projects
// Verilog project: Image processing in Verilog
`include "参数.." // include definition file module tb_simulation; 
//------------------ // Internal Signals 
//------------------------------------------------- 
reg HCLK, HRESETn; 
wire vsync; 
wire hsync;
wire [ 7 : 0] data_R0; 
wire [ 7 : 0] data_G0; 
wire [ 7 : 0] data_B0; 
wire [ 7 : 0] data_R1; 
wire [ 7 : 0] data_G1; 
wire [ 7 : 0] data_B1; 
wire enc_done; 
image_read #(.INFILE(`INPUTFILENAME)) 
u_image_read 
( .HCLK (HCLK ), 
.HRESETn (HRESETn ),
 .VSYNC (vsync ), 
.HSYNC (hsync ), 
.DATA_R0 (data_R0 ),
 .DATA_G0 (data_G0 ), 
.DATA_B0 (data_B0 ), 
.DATA_R1 (data_R1 ), 
.DATA_G1 (data_G1 ), 
.DATA_B1 (data_B1 ), 
.ctrl_done (enc_done) 
); 
image_write #(.INFILE(`OUTPUTFILENAME)) 
u_image_write ( 
.HCLK(HCLK), 
.HRESETn(HRESETn),
 .hsync(hsync), 
.DATA_WRITE_R0(data_R0),
 .DATA_WRITE_G0(data_G0),
 .DATA_WRITE_B0(data_B0), 
.DATA_WRITE_R1(data_R1), 
.DATA_WRITE_G1(data_G1), 
.DATA_WRITE_B1(data_B1),
 .Write_Done()
 ); 
//------------- // Test Vectors 
//------------------------------------- 
initial 
begin 
HCLK = 0; 
forever #10 HCLK = ~HCLK; 
end 
initial 
begin 
HRESETn = 0; 
#25 HRESETn = 1; 
end endmodule
最后,我们拥有一切运行模拟以验证图像处理澳门在线。让我们使用以下映像作为输入位图文件:
 FPGA.  Verilog上的图像处理
输入位图映像
运行仿真6ms,关闭模拟并打开输出图像以检查结果。以下是由参数中所选操作处理的输出图像:
 FPGA.  Verilog上的图像处理
反转后输出位图图像

 FPGA.  Verilog上的图像处理
阈值操作后输出位图图像

 FPGA.  Verilog上的图像处理
减去亮度后输出位图图像
由于读取澳门在线是为模拟图像传感器/摄像机进行仿真目的,因此建议不要合成澳门在线。如果您真的想合成处理澳门在线并直接运行此操作 FPGA. ,您需要通过块存储器(RAM)和设计地址生成器来替换澳门在线中的这些图像阵列(Total_memory,Temp_BMP,ORG_R,ORG_B,ORG_G),以从块存储器读取图像数据。

收到与此项目相关的许多问题后,以下是您问题的答案:
1.有关如何运行模拟的说明和教程:

2. 可以下载此图像处理项目的完整Verilog澳门在线 这里 . 运行大约6ms并关闭模拟的模拟,然后您将能够看到输出图像。
3. 这 reading part operates as a Verilog model of an image sensor/camera (output RGB data, HSYNC, VSYNC, HCLK). 这 Verilog image reading code is extremely useful for functional verification in real-time FPGA image/video projects. 
4.在此项目中,我添加了图像处理部分以制定图像增强的示例。您可以轻松地删除处理部件以仅在您想要使用图像传感器模型以验证图像处理设计的情况下仅获取原始图像数据。
5.将图像保存为三个单独的RGB MEMS:因为MATLAB澳门在线将图像十六进制文件从最后一行写入第一行,RGB保存澳门在线(org_r,org_b,org_g)在读取temp_bmp内存中读取以保存RGB数据正确。如果您想以不同的方式执行此操作,您可以相应地更改它。
6.如果要更改图像大小,您可能会发现以下对BMP标头的说明:
图像尺寸= 768 * 512 * 3 = 1179648字节
BMP标题= 54字节
BMP文件大小=图像大小+ BMP标题= 1179702字节 
将其转换为十六进制数字:十进制= 120036以十六进制的十六进制数
这n 4-byte size of BMP file: 00H, 12 in Hexa = 18 Decimal, 00H, 36 in Hexa = 54 Decimal
这就是我们如何获得以下值:
bmp_header [2] = 54;
bmp_header [3] = 0;
BMP_HEADER [4] = 18;
bmp_header [5] = 0;
图像宽度= 768 =>在十六进制:0x0300中。图像宽度的4个字节为0,3,0,0。 这就是你得到以下值的方式:
bmp_header [18] = 0;
bmp_header [19] = 3;
bmp_header [20] = 0;
bmp_header [21] = 0; 
图像高度= 512 =>在十六进制:0x0200中。 图像宽度的4个字节为0,2,0,0。 这就是我们如何获得以下值:
BMP_HEADER [22] = 0;
BMP_HEADER [23] = 2;
bmp_header [24] = 0;
bmp_header [25] = 0;
7. 您不应该合成此澳门在线,因为它不设计用于在FPGA上运行, 但是对于功能验证目的而言 如果您真的想综合此澳门在线(读取和处理)和 将图像加载到FPGA中 用于直接处理FPGA,更换所有温度。块RAM的变量(org_r,org_b,org_b,tmp_bmp = total_memory)并生成地址以读取图像数据(删除始终@(start)和所有“for loops” - 这些是用于仿真目的)。有两种方式:1。使用$ READMEMH编写RAM澳门在线并将图像数据初始化为内存; 2.使用Xilinx核心生成器或Altera Megaf功能生成块内存,并将图像数据加载到存储器的初始值(用于Xilinx Core Gen的.MIF for .MIF for Altera Megafecunction),然后从内存中读取图像数据处理它(FSM设计)。 
8.在此项目中,同时读取两个偶数和旧像素,以加速处理,但您可以根据您的设计更改正在读取的像素数。   
9.写作 verilog. 澳门在线对于测试目的,澳门在线也非常有用,因为您可以在BMP格式中看到输出。
10。 如果要进行实时图像处理,可以检查此此内容是否为相机接口澳门在线: Basys 3 FPGA OV7670相机

推荐的 Verilog projects:
2. FIFO记忆的Verilog澳门在线
3. 16位单循环MIPS处理器的Verilog澳门在线
4.  verilog. HDL中的可编程数字延迟计时器
5. 数字电路中基本逻辑组件的Verilog澳门在线
6. 32位无符号分频器的Verilog澳门在线
7. 用于固定点矩阵乘法的Verilog澳门在线
8. 在Verilog HDL中的板牌识别
9. 携带外观前方乘法器的Verilog澳门在线
10。  微控制器的Verilog澳门在线
11.  4x4乘法器的Verilog澳门在线
12.  停车系统的Verilog澳门在线
13。  使用Verilog HDL对FPGA的图像处理
14。  如何使用Verilog HDL将文本文件加载到FPGA中
15.  交通灯控制器的Verilog澳门在线
16。   FPGA. 闹钟的Verilog澳门在线
17。  比较器设计的Verilog澳门在线
18。  VERILOG澳门在线D触发器
19。  完整加法器的Verilog澳门在线
20。  与测试台的计数器的Verilog澳门在线
21。  16位RISC处理器的Verilog澳门在线
22。   FPGA. 上的按钮的Verilog澳门在线
23。  如何为双向/ inout端口编写Verilog TestBench
28。  解码器的Verilog澳门在线
29。  多路复用器的Verilog澳门在线
 FPGA.  Verilog VHDL课程

227评论:

  1. van,

    我的名字是珠宝。一世'来自印度的米在Manipal大学做B.Tech你的澳门在线使用Verilog HDL的图像处理真的很有帮助。一世'm使用Verilog HDL进行JPEG编码器进行JPEG编码器的项目,用于灰度图像。你可以帮我有这个话题的澳门在线吗?

    问候,
    宝石Dominic Savio Antony

    回复 删除
    答案
    1. 请给我发电子邮件。谢谢。

      删除
    2. 班车!
      如果您有与JPEG压缩有关的澳门在线,请使用前进的离散余弦变换,请发送给我,我的电子邮件ID是[email protected]

      删除
    3. 我可以获得完整的图像处理VHDL

      删除
  2. 答案
    1. 通过电子邮件发送给您。请使用Verilog / VHDL FPGA4Student.com与FPGA项目保持联系。谢谢

      删除
    2. 你好van loi le,澳门在线非常有用。谢谢。你能给我发送完整的Verilog源澳门在线和测试台,你在这里使用的图像
      提前致谢
      [email protected]

      删除
  3. 答案
    1. You are welcome. Please help to like and share the site with your friends: //www.facebook.com/fpga4student and keep updates with coming projects.Thanks.

      删除
  4. 你好van loi le,澳门在线非常有用。谢谢。你能给我发我的完整Verilog源澳门在线吗?

    回复 删除
    答案
    1. 请使用Verilog / VHDL FPGA4Student.com与FPGA项目保持联系。谢谢

      删除
  5. 答案
    1. 通过电子邮件发送给您。请使用Verilog / VHDL FPGA4Student.com与FPGA项目保持联系。谢谢

      删除
    2. 你好,你可以将项目分享给我吗? [email protected]

      删除
  6. 嗨澳门在线非常有用,请发给我完整的澳门在线

    回复 删除
  7. 答案
    1. 通过电子邮件发送给您。请使用Verilog / VHDL FPGA4Student.com与FPGA项目保持联系。谢谢

      删除
  8. 请你发给我完整的Verilog源文件吗?我的邮件ID是[email protected]。它'd对我的图像处理中的项目非常有用。

    回复 删除
  9. 答案
    1. 嗨van,你能为我提供完整的源澳门在线,我想学习这个项目,thx很多
      我的电子邮件:[email protected]

      删除
  10. 您能否扼杀完整的Verilog源文件。我的电子邮件是[email protected]

    回复 删除
  11. 嗨,您的澳门在线对我非常有用。请分享项目我的电子邮件:[email protected]
    谢谢你。

    回复 删除
    答案
    1. 通过电子邮件发送给您。请使用Verilog / VHDL FPGA4Student.com与FPGA项目保持联系。谢谢

      删除
    2. 嗨,你能否自由分享我的澳门在线,因为我不能为此付出代价。如果你善待这件事,我会非常乐于助人。

      删除
  12. 嗨......我发现你的澳门在线在我的项目中更有用。 。你能分享我吗? 。我的电子邮件:[email protected]

    回复 删除
  13. 你好,
    请查看您的电子邮件

    回复 删除
    答案
    1. 优秀的实施。

      你能否转发我的整个Verilog文件,以便我可以在我的项目中使用,

      电子邮件:[email protected]

      我对使用的两个变量有疑问"total_memory" and "sizeOfLengthReal"。输入哪些值?

      删除
    2. 这se are size of the image memory. It depends on your image size.

      删除
  14. 嗨,我的电子邮件ID是:[email protected],可以给我发电子邮件源澳门在线。

    回复 删除
  15. vipul4336 @ gmail.com,谢谢:)

    回复 删除
  16. 使用Verilog HDL对FPGA的图像处理的精致教程。我感谢您分享它。 颜色校正服务 在图像操纵中起着至关重要的作用。

    回复 删除
  17. 请你分享这个澳门在线吗?我的邮件ID是[email protected] .....
    提前致谢。

    回复 删除
  18. 非常有用的来源。我需要在FPGA中加载视频文件。你能帮助我和程序我必须遵循什么?提前致谢。

    我的邮件ID是:[email protected]

    回复 删除
  19. 主席先生,自2016年以来,我曾跟着你的博客,目前我正在做一个关于使用小波变换算法设计编解码器的项目,先生,我需要你的帮助。你可以帮助我完成我的项目吗?

    回复 删除
  20. 非常好!!我想使用你的澳门在线。电子邮件[email protected]

    回复 删除
  21. 您好,如果您可以将澳门在线分享到[email protected],我会非常欣赏
    谢谢!

    回复 删除
  22. 请向我们发送完整澳门在线,我们需要zed-board处理输出吗?我的电子邮件地址是[email protected]。提前致谢...

    回复 删除
  23. 布拉沃先生。你做得很好,它将帮助新的学习者像我一样。先生,你能跟我分享澳门在线,所以我可以练习它。先生请在我的电子邮件地址与我分享全部澳门在线[email protected]
    提前致谢。祝你好运。

    回复 删除
  24. 请查看您的电子邮件。
    行政

    回复 删除
  25. 我需要完整的FPGA澳门在线..我可以有这么做吗?

    回复 删除
  26. 你的电子邮箱是什么?

    回复 删除
  27. 请你发给我源澳门在线。我的电子邮件地址是[email protected]。先感谢您!

    回复 删除
  28. 可以ı让这个过程的完整Verilog澳门在线在我的项目中使用吗?对我来说将如此乐于助人。邮件:[email protected]

    回复 删除
  29. 你能发给我完整的Verilog澳门在线吗?'对于我的项目非常有帮助。顺便说一句,作为一个新的学习者,它会帮助我很高兴。我的电子邮件:[email protected]

    回复 删除
  30. 你能给我发给我完整的Verilog澳门在线,我的电子邮件:[email protected],谢谢很多

    回复 删除
  31. 你能给我发送完整的Verilog澳门在线吗?
    电子邮件:[email protected]
    谢谢你

    回复 删除
  32. 请你发给我完整的Verilog澳门在线吗?'对于我的项目非常有帮助。
    电子邮件:[email protected]
    谢谢你

    回复 删除
  33. It'对我非常有用。你能发给我完整的Verilog澳门在线吗?
    我的电子邮件:[email protected]

    回复 删除
  34. 你好,

    这是惊人的,我可以问完整的Verilog澳门在线吗?一世'正在做一个个人项目和完整的澳门在线会帮助我感谢。

    电子邮件:[email protected]

    回复 删除
    答案
    1. 嘿冰霜@gmail.com.
      你能发给我澳门在线吗?
      电子邮件:[email protected]

      删除
  35. 请把它寄给我。我的电子邮件是[email protected]。谢谢

    回复 删除
  36. 请给我发给我的澳门在线。我的电子邮件ID是[email protected]

    回复 删除
  37. Loi Le Van ...请尽快给我邮寄全部澳门在线'紧急......谢谢
    我的邮件ID是[email protected]

    回复 删除
  38. 可以ı获取此过程的完整Verilog澳门在线在我的项目中使用。对我来说将如此乐于助人。邮件:[email protected]

    回复 删除
  39. 你可以在[email protected]上发给我全部澳门在线

    回复 删除
  40. 先生非常好的工作,我很想看看完整的澳门在线。

    请在[email protected]通过电子邮件发送给我

    回复 删除
  41. 伟大的工作先生,你能给我发给我澳门在线,[email protected]谢谢

    回复 删除
  42. 似乎非常有用的LOI,欣赏它如果您发送完整的源澳门在线,[email protected]

    回复 删除
  43. PLZ发送完整的源澳门在线到[email protected]

    回复 删除
  44. 我可以问你吗?
    我可以'使用Verilog使用图像处理。那么如何用图像输入并用图像输出?

    回复 删除
  45. 您使用的是哪种语言?

    回复 删除
    答案
    1. verilog. HDL。
      这 challenge is to process the output from the vedio driver to fpga.Since I'm a beginner, I can'甚至看到输入和输出。

      删除
  46. 请清楚,帖子显示了如何读写图像。

    回复 删除
    答案
    1. 谢谢,但澳门在线让我帮助。所以,请。

      删除
    2. 谢谢,但澳门在线让我帮助。所以,请。

      删除
  47. 您好,谢谢您的信息,你能给我发给我源澳门在线[email protected]谢谢

    回复 删除
  48. 谢谢,那个'太棒了。但是在你实施了这些澳门在线的哪个董事会?

    回复 删除
  49. 请求向我发送完整的澳门在线,我的电子邮件ID是[email protected]

    回复 删除
  50. 您好,谢谢您的信息,你能给我发给我源澳门在线[email protected]谢谢

    回复 删除
  51. 你能发送整个澳门在线吗?
    我的电子邮件[email protected]
    谢谢你...

    回复 删除
  52. 你好这个澳门在线非常有用。
    请发送到澳门在线
    [email protected]

    回复 删除
  53. 你好面包车。
    请你发给我完整的Verilog源文件吗?
    这对我来说非常有用。
    谢谢你。祝你今天过得愉快。
    我的电子邮件是Jcy[email protected]

    回复 删除
  54. 你好面包车,
    你能发给我VHDL澳门在线吗?谢谢
    [email protected]

    回复 删除
  55. 您好,谢谢您的信息,您也可以发给我源澳门在线[email protected]谢谢

    回复 删除
  56. 您好,人们可以给我这个项目的全部澳门在线我的电子邮件是[email protected]

    回复 删除
  57. 您好,人们可以给我这个项目的全部澳门在线我的电子邮件是[email protected]

    回复 删除
  58. 嗨lợi,你能给我发全澳门在线吗?我有一个关于使用机器学习的图像处理的项目,我不知道将文件读取到缓冲区并将数据从缓冲区传输到另一个缓冲区。我的电子邮件是[email protected]。你非常适合你的帮助!

    回复 删除
  59. 请发给我全澳门在线sir.i想要这件事作为我的项目。提前致谢。
    [email protected]

    回复 删除
  60. [email protected]
    你能发给我澳门在线吗?

    回复 删除
  61. 你好,你可以发给我源澳门在线吗? [email protected]

    回复 删除
  62. 检查您的电子邮件。谢谢。

    回复 删除
  63. 你好先生,请给我发电子邮件全部澳门在线([email protected])我'm尝试执行一个项目,其中我需要在FPGA中加载图像来对它进行一些处理,它非常有帮助您拥有完整的澳门在线。

    回复 删除
  64. 你能在[email protected]上给我发电子邮件给我发电子邮件

    回复 删除
  65. 请问我会在[email protected]上给我发电子邮件给我发电子邮件。我在前一次提供了一个错误的电子邮件ID。

    回复 删除
  66. 嗨......我发现你的澳门在线在我的项目中更有用。 。你能分享我吗? 。我的电子邮件:[email protected]

    回复 删除
  67. 你好,,,
    如果您有JPEG图像压缩的Verilog HDL澳门在线,请发送给我,,,
    我的电子邮件ID是[email protected]

    回复 删除
  68. 好的信息。
    我可以收到完整的源澳门在线吗?
    我的电子邮件Adrress是[email protected]

    回复 删除
  69. 好的信息。
    我可以收到完整的源澳门在线吗?
    我的电子邮件Adrress是[email protected]

    回复 删除
  70. I'm无法执行您给出的澳门在线,因为我没有'要了解输入和输出是什么,以及如何分配内存。你能帮我么...

    回复 删除
  71. 先生,我'm无法执行澳门在线,因为我不明白,总内存和sizeoflengthreal-1是什么。一世'm在那个项目上做一个项目。所以你能给我发给我澳门在线吗?
    我的g邮箱地址是:[email protected]

    回复 删除
  72. 这 provided code is a good start in image processing on FPGA. Spend some time to figure it out.
    总内存是从.hex文件读取图像数据的内存。
    sizeoflengthreal-1是总存储器的大小。图像尺寸为768x512像素。每个像素有3个数据(R-G-B)。每个基准R或G或B都有8位。然后您可以计算总内存大小。

    回复 删除
  73. 您的示例正如我所需要的那样。您可以通过电子邮件将源澳门在线发送给[email protected]

    回复 删除
  74. 这 provided code is good enough for you to start an image processing project on FPGA. Spend some time to figure it out.

    回复 删除
  75. 什么应该是I和J值..

    回复 删除
    答案
    1. 你好谢谢。我更新了I和J澳门在线值。基本上,I和J是用于读取图像的所有像素(R,G,B)的存储器的索引。

      删除
  76. 教育帖子。喜欢并欣赏它。继续共享。

    回复 删除
    答案
    1. 谢谢你的善意的话。非常欣赏它。肯定会继续提供更多教育FPGA项目。

      删除
  77. 谢谢,这篇文章非常经过教育,并以良好的方式解释。请邮寄给我完整的源澳门在线。我的邮件ID是[email protected]

    回复 删除
  78. 你能发给我源澳门在线吗? [email protected]

    回复 删除
  79. 任何人都可以解释他如何在字节中计算文件大小(2签名字节后的4个字节'BM'在位图标题中,请?一世'非常混淆。我试图转换为十六进制然后计算文件大小,但它看起来不是真的。

    bmp_header [2] = 54;
    bmp_header [3] = 0;
    BMP_HEADER [4] = 18;
    bmp_header [5] = 0;

    回复 删除
    答案
    1. 图像尺寸= 768 * 512 * 3 = 1179648字节
      BMP标题= 54字节
      BMP文件大小=图像大小+ BMP标题= 1179702字节
      将其转换为十六进制数字:十进制= 120036以十六进制的十六进制数
      这n 4-byte size of BMP file: 00H, 12 in Hexa = 18 Decimal, 00H, 36 in Hexa = 54 Decimal
      那'你如何获得价值观:
      bmp_header [2] = 54;
      bmp_header [3] = 0;
      BMP_HEADER [4] = 18;
      bmp_header [5] = 0;

      删除
  80. 这是一个非常好的项目....我可以获得完整的源澳门在线吗?
    如果是这样,请有人在[email protected]上向我发送给我

    回复 删除
  81. 大家好,
    这 provided information on this post are pretty enough for you to get started with image processing on FPGA. Please spend some time to figure it out so that you can learn a lot from the experience.
    此帖子是FPGA上的图像处理的教程。无法提供完整澳门在线。
    谢谢。
    行政

    回复 删除
  82. 如果您有任何疑问,可以通过[email protected]向我询问或在此处评论。我会帮助回答所有问题。

    回复 删除
  83. #错误:C:/modeltech_5.5e/examples/verilog1.v(2):近"#": expecting: ';'
    #错误:C:/modeltech_5.5e/examples/verilog1.v(49):近"[": expecting: ';'
    #错误:c:/modeltech_5.5e/examples/verilog1.v(55):靠近"]":syntax error
    #错误:c:/modeltech_5.5e/examples/verilog1.v(56):靠近"]":syntax error

    当我编译模块以进行读取和处理时,我正在收到这些错误。

    回复 删除
    答案
    1. 此帖子是FPGA上的图像处理的教程。没有给出完整澳门在线,但提供了读取和写入图像的主要部分。请花一些时间来解决这个问题,以便您可以从经验中学习很多。

      删除
    2. 是的,但我无法在语法错误的情况下,即使在写模块中,它会显示相同的错误,如附近"[": expecting: ';',如上所述,我不'知道如何纠正它。
      这re is also error for parameter in read as well as write module,near "#": expecting: ';'

      删除
    3. 您需要添加更多澳门在线来使其工作。花一些时间来搞清楚。

      删除
  84. 这段澳门在线非常有用!你能给我发送完整的澳门在线吗?我的电子邮件是[email protected]
    非常感谢你!

    回复 删除
  85. 此澳门在线非常有用。请把它寄给我。我的电子邮件是[email protected]
    谢谢!

    回复 删除
  86. 你能发给我完整的Verilog澳门在线吗?
    [email protected]

    回复 删除
  87. 嘿,
    这 site is very helpful, can you send me the full verilog code to my email.
    [email protected]

    回复 删除
  88. 你能发送完整的Verilog澳门在线吗?
    我的电子邮件是[email protected]
    谢谢

    回复 删除
  89. 有人可以发送完整的Verilog澳门在线。我的电子邮件是[email protected]
    谢谢。

    回复 删除
  90. 我的名字是锡。我是一名学生,我正在研究FPGA上实施的过滤器罐头。管理员在Canny Filter上有一个项目吗?帮我 。

    你能发给我吗?
    [email protected]

    谢谢你

    回复 删除
  91. 嗨,您的澳门在线非常有用。
    你能给我发全澳门在线吗?
    谢谢你

    电子邮件: - [email protected]

    回复 删除
  92. 嗨,您的澳门在线非常有用。
    你能给我发全澳门在线吗?
    谢谢你

    电子邮件: - [email protected]

    回复 删除
  93. 你能给我发给我fpga的完整Verilog澳门在线吗?
    谢谢你
    电子邮件:[email protected]

    回复 删除
  94. 嘿,你可以向Xilinx发给我完整的Verilog澳门在线吗?
    我的电子邮件是[email protected]

    你的帮助是赞赏的,谢谢

    回复 删除
  95. 我正在使用FPGA学习图像处理的基础知识
    你能告诉我澳门在线吗?
    这将是有很大帮助
    [email protected]

    回复 删除
  96. 请在我的电子邮件中发送我的澳门在线[email protected]

    回复 删除
  97. 嗨,我想知道什么"parameter.v" is.

    回复 删除
  98. 惊人...感谢您在线上传此项目。我是FPGA的新手,并尝试在FPGA上学习图像处理。这个项目是启动的理想选择。您能否在[email protected]上与我分享源澳门在线

    回复 删除
  99. 你能给我发给我完整的Verilog澳门在线吗?

    我的电子邮件:[email protected]

    谢谢您的帮助。

    回复 删除
  100. 嗨,您的澳门在线非常有用,我需要了解更多信息。
    你能给我发来源澳门在线吗?

    电子邮件:[email protected]

    回复 删除
  101. 您好,我是Xilinx FPGA的项目。
    目前,我无法在我的项目澳门在线中输入位图。
    如果您共享完整澳门在线。我的项目将升级。
    你能发给我完整的澳门在线吗?
    我的电子邮件地址是[email protected]
    谢谢您的帮助。

    回复 删除
  102. 您好,我是Xilinx FPGA的项目。
    目前,我无法在我的项目澳门在线中输入位图。
    如果您共享完整澳门在线。我的项目将升级。
    你能发给我完整的澳门在线吗?
    我的电子邮件地址是[email protected]
    谢谢您的帮助。

    回复 删除
  103. 你能发给我源澳门在线吗?谢谢你

    电子邮件:[email protected]

    回复 删除
  104. 嗨,我会为源澳门在线感到高兴,非常感谢!!
    巴拉克 [email protected]

    回复 删除
  105. 嗨,我会为源澳门在线感到高兴,非常感谢!!
    巴拉克 [email protected]

    回复 删除
  106. 嗨,首先,非常感谢您提出这些澳门在线。我用它作为参考材料来构建可以反转灰度图像的Verilog澳门在线。您在此处使用System Verilog函数,如$ FOPEN和$ FWIRTE。当我编译程序时,它指出这些系统功能不合成。你有同样的问题吗?

    回复 删除
    答案
    1. $ Fopen和$ FWRITE无法合成。这些用于在PC上编写图像文件进行验证。

      删除
  107. 你能给我发给我澳门在线吗?

    回复 删除
  108. 你能分享完整的Verilog澳门在线:[email protected]

    回复 删除
  109. 请您将完整的Verilog澳门在线分享到[email protected]

    回复 删除
  110. 你好面包车,

    您能否分享完整项目的澳门在线。这对我来说是一个巨大的帮助。

    我的电子邮件[email protected]

    谢谢
    蒙古

    回复 删除
  111. 请您能与此页面分享我的澳门在线:
    我的电子邮件是[email protected]

    回复 删除
  112. 您好..您的澳门在线对我的项目似乎非常有用。你能把完整的Verilog澳门在线发给我。谢谢..好工作
    电子邮件:[email protected]

    回复 删除
  113. 我可以完整编码吗?因为它是我FYP的非常有用的参考,这是在FPGA上实现分形图像压缩的。一旦我获得结果,我可以分享你的完整编码。我的电子邮件是矩阵[email protected]

    谢谢你 。你的帮助非常欣赏。

    回复 删除
  114. 豪士岛

    这对我来说非常有帮助。你也可以考虑发送给我源澳门在线。非常感谢你。我的电子邮件是:[email protected]

    真挚地,
    Zhiming.

    回复 删除
  115. 豪士岛

    这对我来说非常有帮助。你也可以考虑发送给我源澳门在线。非常感谢你。这是我的电子邮件:[email protected]

    真挚地,
    Zhiming.

    回复 删除
  116. 你能和我分享这个项目澳门在线吗?这将是一个巨大的帮助。
    我的电子邮件:[email protected]

    回复 删除
  117. 你也可以把它邮寄给我......完整的澳门在线...电子邮件:Aru[email protected]

    回复 删除
  118. 嗨,您的澳门在线有用。
    你能把澳门在线发送给我吗?
    非常感谢你。
    我的电子邮件:[email protected]

    回复 删除
  119. 这非常有帮助。你能尽快给我发送整个澳门在线。

    我的邮件ID是[email protected]

    回复 删除
  120. 先生,可以使用Verilog HDL共享图像处理的完整澳门在线
    电子邮件ID:[email protected]

    回复 删除
  121. 你好
    我想在我的笔记本电脑中使用图像作为TestBench.I不知道Verilog澳门在线..我的意思是我给出了图像的地址(我的图像保存在我的笔记本电脑中的地址的地址)并从该图像中使用如输入。请帮助我。谢谢你

    回复 删除
  122. 嗨,你能和我寄给我这个项目吗?谢谢
    [email protected]

    回复 删除
  123. 你可以发给我这个项目的完整澳门在线吗?
    我的邮件id [email protected]

    回复 删除
  124. 嗨,您的澳门在线在我的项目中非常有用。请您分享完整的Verilog澳门在线。

    电子邮件:[email protected]

    回复 删除
  125. 你好先生,你能给我发源澳门在线吗?将是一个巨大的帮助。谢谢
    我的电子邮件:[email protected]

    回复 删除
  126. van,我无法合成澳门在线,因为找不到参数。我该怎么办,你能给我发给我的v文件吗?我是一个新的图像处理

    回复 删除
  127. van,您可以为我提供Parameter.v文件,因为我收到该部分的错误。

    回复 删除
  128. 亲爱的管理员,
    我很感激这种知识转移。
    请发送MED参数.V文件和其他支持的文件以运行此模拟。
    [email protected]

    回复 删除
  129. 亲爱的管理员,
    你能把整个项目文件发送到此电子邮件吗?[email protected]
    提前致谢。

    回复 删除
  130. 大家好,因为有很多请求,我更新了这个项目的完整澳门在线。

    回复 删除
  131. 嗨,您的澳门在线对我非常有用。请分享项目我的电子邮件:[email protected]
    谢谢你。

    回复 删除
  132. 豪士岛
    我在处理图像时遇到了麻烦
    我可以't看到正确的输出结果
    这是我的电子邮件:[email protected]
    如果您看到此评论,您可以向我发送电子邮件,以便我可以告诉更多细节。
    非常感谢。

    回复 删除
  133. 有人可以告诉我如何创建十六进制文件吗?

    回复 删除
  134. 我可以为我的研究获得完整的VHDL澳门在线吗? PLZ.

    回复 删除
  135. 嗨,这是一个很好的资源,非常感谢分享。我正在尝试在Verilog中构建一个澳门在线,可以读取视频文件并分析光谱数据。如果您分享任何知识以及电子邮件为此提供全部源澳门在线,那将是非常有帮助的。我的电子邮件:[email protected]。将非常感谢您的帮助,非常感谢!

    回复 删除
  136. 请邮寄完整的澳门在线。.MY电子邮件ID是[email protected]

    回复 删除
  137. 请邮寄完整的澳门在线。.MY电子邮件ID是[email protected]

    回复 删除
  138. 你好van loi le,澳门在线非常有用。谢谢。你能给我发送完整的Verilog源澳门在线和测试台,你在这里使用的图像
    您可以帮助其他项目,我有一个与使用Verilog的图像注册相关的项目
    我的电子邮件地址是:[email protected]

    回复 删除
  139. 你好面包车。
    请你发给我完整的Verilog源文件吗?
    这对我来说非常有用。
    谢谢你。祝你今天过得愉快。
    我的电子邮件是:[email protected]

    我还使用Verilog澳门在线进行项目remitration,您可以帮助我吗?

    回复 删除

趋势FPGA项目