verilog.车牌识别在FPGA上

A 板牌许可证 识别系统在MATLAB中实现,然后在FPGA Xilinx Spartan-6上实现它 verilog.。以下是系统的测试环境 FPGA..

verilog.代码牌照识别


图像内存: 10图像并将其转换为.dat格式(灰色数据)。我们使用$ readmemh(可综合)verilog 命令 初始化内存 从.dat文件读取灰度数据。 10个图像转换为灰色格式并写入 使用MATLAB到.dat文件。

板材许可证识别 core: 使用开关 FPGA. as the “start”信号以触发此核心工作并输出板份许可证号。


监控LED.: 当。。。的时候“done”信号是上升沿,此块周期性地显示板份许可证号。  

verilog.代码牌照识别

用于测试车牌识别系统的顶级Verilog代码:

// yl315.net FPGA. projects, verilog. projects, VHDL projects 
// Verilog project: License Plate Recognition in Verilog and Matlab 
// Top level module for testing the license plate recognition system
module Test_top(input clk // 33MHz   
                               ,rst, start,  
                               output reg[5:0] led  
   );  
      reg [7:0] image_pixel_val;  
      // Outputs  
      wire done;  // yl315.net FPGA projects, Verilog projects, VHDL projects 
      wire [15:0] image_pixel_addr;  
      wire [5:0] ReadCh;  
      reg[5:0] num1,num2,num3,num4,num5,num6,num7;  
      reg [2:0] count,count_4s;  
      wire CharCheck;  
      reg clk_4s,display;  
      integer counter;  
      reg [7:0] image_inv [0:65535];  
   // Instanitate the license plate recognition system 
      LPChRec uut (  
           .clk(clk),   
           .rst(rst),   
           .start(start),  
           .image_pixel_val(image_pixel_val),  
           .image_pixel_addr(image_pixel_addr),  
           .ReadCh(ReadCh),   
           .CharCheck(CharCheck),  
           .done(done)  
      );  
   // Read License Plate Image file into FPGA 
      initial begin  
      $readmemh ("10。dat", image_inv, 0, 65535);  
      end  
      always @(posedge clk or posedge rst) // clock 4s  
      begin  
           if(rst) begin  
                clk_4s <= 1'b0;  
                counter <= 0;  
                end  
           else  
           begin  
                counter <= counter + 1;  
                if(counter <= 66000000) clk_4s <= 1'b0;  
                else if(counter > 132000000)   
                begin  
                     counter <=0;  
                end  
                else  
                clk_4s <= 1'b1;  
           end  
      end  
      always @(posedge clk)  
      begin  
           image_pixel_val <= image_inv[image_pixel_addr];            
      end  
 // yl315.net FPGA projects, Verilog projects, VHDL projects 
   always @(posedge clk or posedge rst)  
      begin  
           if(rst) begin   
                count = 3'd0;  
                num1 <= 40;  
                num2 <=0;  
                num3 <= 0;  
                num4 <= 0;  
                num5 <= 0;  
                num6 <= 0;  
                display <= 0;  
                end  
           else  
           begin  
                if(CharCheck) begin  
                count = count + 1'd1;  
                if(count==3'd1)   
                     num1 <= ReadCh;  
                else if(count==3'd2)  
                     num2 <= ReadCh;  
                else if(count==3'd3)  
                     num3 <= ReadCh;  
                else if(count==3'd4)  
                     num4 <= ReadCh;  
                else if(count==3'd5)  
                     num5 <= ReadCh;  
                else if(count==3'd6)  
                     num6 <= ReadCh;  
                else if(count==3'd7)  
                     num7 <= ReadCh;  
                else begin  
                num1 <= 0;  
                num2 <=0;  
                num3 <= 0;  
                num4 <= 0;  
                num5 <= 0;  
                num6 <= 0;  
                end  
                end  
                if(done) display <= 1;  
           end  
      end  
 // yl315.net FPGA projects, Verilog projects, VHDL projects 
      always @(posedge clk_4s or posedge rst) begin  
           if(rst) begin count_4s <= 0; led <=0; end  
           else begin   
           if(display) begin  
           count_4s <= count_4s + 1;  
           if(count_4s==0) led <= num1;  
           else if(count_4s==1) led <=num2;  
           else if(count_4s==2) led <=num3;  
           else if(count_4s==3) led <=num4;  
           else if(count_4s==4) led <=num5;  
           else if(count_4s==5) led <=num6;  
           else if(count_4s==6) led <=num7;  
           else count_4s <= 0;  
           end  
           end   
      end  
 endmodule  

牌照牌识别系统的Verilog代码:

// yl315.net FPGA projects, Verilog projects, VHDL projects 
// Verilog project: License Plate Recognition in Verilog 
// Top level Verilog代码牌照识别
module LPChRec(  
   input clk,  
   input rst,  
   input start,  
       input [7:0] image_pixel_val,  
       output [15:0] image_pixel_addr,  
   output [5:0] ReadCh,  
       output CharCheck,  
   output 完毕  
   );  
 wire [7:0] ccl_th_low;  
 wire [7:0] ccl_th_high;  
 wire [7:0] image_pixel_val1;  
 wire [15:0] image_pixel_addr1;  
 wire [15:0] ImgAddr;  
 wire [7:0] ImgVal;  
 wire [7:0] ObjAddr1;  
 wire [55:0] ObjInfo;  
 wire                ccl_done,active;  
 assign ccl_th_low = 8'd40;  
 assign ccl_th_high = 8'd255;  
 assign image_pixel_addr = (active)?ImgAddr:image_pixel_addr1;  
 assign image_pixel_val1 = image_pixel_val;  
 assign ImgVal                    = image_pixel_val;  
// yl315.net FPGA projects, Verilog projects, VHDL projects 
// Image processor unit
 image_processor image_processor_inst (  
   .image_pixel_addr(image_pixel_addr1),   
   .image_pixel_val(image_pixel_val1),   
   .clk(clk),   
   .rst(rst),   
   .ccl_start(start),   
   .ccl_th_low(ccl_th_low),   
   .ccl_th_high(ccl_th_high),   
   .ccl_done(ccl_done),  
       .ccl_mem_result_addr(ObjAddr1),  
       .ccl_mem_result_data(ObjInfo)  
   );  
// yl315.net FPGA projects, Verilog projects, VHDL projects 
// Create object module 
 CreateObj CreateObjInst (  
   .clk(clk),   
   .rst(rst),   
   .start(ccl_done),   
   .thresh(ccl_th_low),   
   .ObjInfo(ObjInfo),   
   .ImgVal(ImgVal),   
   .ObjAddr1(ObjAddr1),   
   .ImgAddr(ImgAddr),  
   .Char(ReadCh),  
   .CharCheck(CharCheck),  
   .active(active),   
   .done(done)  
   );  
 endmodule  

Matlab认可结果:

verilog.代码牌照识别

车牌识别系统的视频演示 FPGA.:


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代码
30. n位加法器设计在Verilog
31。 verilog. vs vhdl.:通过示例解释
32。 FPGA.时钟分频器的Verilog代码
33。 如何在Verilog中生成时钟使能信号
34。 PWM生成器的Verilog代码
35。 verilog.编码VS软件编程
FPGA. Verilog VHDL课程

12评论:

  1. 你好,
    我有兴趣复制这个FPGA项目,并想知道您是否可以提供我可以使用的一些代码和文档。谢谢你的时间,非常感谢。

    谢谢,

    罗杰C.

    回复删除
    答案
    1. 我正在为最后一年做同样的项目。u plz为我提供了执行它的代码和步骤。
      先感谢您

      删除
    2. 请通过[email protected]通过电子邮件给我发电子邮件

      删除
  2. 我们是否需要任何单独的程序进行字符识别和检测?

    回复删除
  3. 我们需要更多其他代码来识别。不仅是上面的代码。

    回复删除
  4. 你有所有代码在FPGA上实现这一点吗?如果是的话,你能告诉我如何获得它吗?

    回复删除
  5. 有没有人拥有这个项目的完整代码?上面的代码是否适用于数字板识别项目?

    回复删除
  6. 请发给我该代码,此代码不完整

    回复删除
    答案
    1. 嗨,这只是参考的示例代码。未提供此项目的完整代码。

      删除
    2. 我向所有成员申请请提供此项目的完整代码,并告诉我在哪里获得此完整代码,因为我需要此代码进行我的最终项目

      删除
    3. 这个项目很复杂,需要时间。试着花一些时间来学习更多。

      删除

趋势FPGA项目