2021-08-22 17:39:46 索煒達(dá)電子 928
項(xiàng)目編號(hào):E439
文件大?。?2M
源碼說明:帶中文注釋
開發(fā)環(huán)境:vivido
簡(jiǎn)要概述:
使用FPGA vivido根據(jù)數(shù)字的圖像特征給數(shù)字加邊界,并識(shí)別數(shù)字大小
該工程的識(shí)別原理和代碼講解可以參考基于FPGA的數(shù)字識(shí)別實(shí)現(xiàn),同時(shí)感謝這位博主的分享教程。該工程也是參考這位博主的教程完成的。
digital_identify文件夾為vivido工程文件夾
imgs文件夾包含工程中使用到的640*480的0~9源圖片、仿真結(jié)果、加邊界后的數(shù)字圖片,以及上板測(cè)試的結(jié)果。
matlab文件夾包含了將圖片轉(zhuǎn)為數(shù)字文件、顯示加邊界后的數(shù)字文件用到的matlab代碼。
digital_identify模塊為頂層模塊-
serial_data_gen模塊實(shí)現(xiàn)數(shù)據(jù)的讀入,使用rom IP核初始化matlab生成的.coe數(shù)據(jù)文件
edge_check模塊實(shí)現(xiàn)查找數(shù)字邊界值
edge_disp模塊實(shí)現(xiàn)輸出加邊界后的數(shù)據(jù)
num_recog模塊實(shí)現(xiàn)數(shù)字的識(shí)別
軟件環(huán)境 vivido 2018.3 matlab 2018b
硬件環(huán)境 zynq xc7z020clg400-2
目錄│文件列表:
└ fpga-digital-recognition
├ digital_identify
│ │ digital_identify.xpr
│ │ vivado.jou
│ │ vivado.log
│ ├ digital_identify.cache
│ │ └ wt
│ │ │ gui_handlers.wdf
│ │ │ java_command_handlers.wdf
│ │ │ project.wpc
│ │ │ webtalk_pa.xml
│ │ └ xsim.wdf
│ ├ digital_identify.hw
│ │ │ digital_identify.lpr
│ │ └ hw_1
│ │ └ hw.xml
│ ├ digital_identify.ip_user_files
│ │ │ README.txt
│ │ ├ ip
│ │ │ └ rom
│ │ │ │ rom.veo
│ │ │ └ rom.vho
│ │ ├ ipstatic
│ │ │ └ simulation
│ │ │ └ blk_mem_gen_v8_4.v
│ │ ├ mem_init_files
│ │ │ │ num_data.coe
│ │ │ │ num_data0.coe
│ │ │ │ num_data1.coe
│ │ │ │ num_data2.coe
│ │ │ │ num_data3.coe
│ │ │ │ num_data5.coe
│ │ │ │ num_data8.coe
│ │ │ │ rom.mif
│ │ │ └ summary.log
│ │ └ sim_scripts
│ │ └ rom
│ │ │ README.txt
│ │ ├ activehdl
│ │ │ │ compile.do
│ │ │ │ file_info.txt
│ │ │ │ glbl.v
│ │ │ │ num_data5.coe
│ │ │ │ README.txt
│ │ │ │ rom.mif
│ │ │ │ rom.sh
│ │ │ │ rom.udo
│ │ │ │ simulate.do
│ │ │ │ summary.log
│ │ │ └ wave.do
│ │ ├ ies
│ │ │ │ file_info.txt
│ │ │ │ glbl.v
│ │ │ │ num_data5.coe
│ │ │ │ README.txt
│ │ │ │ rom.mif
│ │ │ │ rom.sh
│ │ │ │ run.f
│ │ │ └ summary.log
│ │ ├ modelsim
│ │ │ │ compile.do
│ │ │ │ file_info.txt
│ │ │ │ glbl.v
│ │ │ │ num_data5.coe
│ │ │ │ README.txt
│ │ │ │ rom.mif
│ │ │ │ rom.sh
│ │ │ │ rom.udo
│ │ │ │ simulate.do
│ │ │ │ summary.log
│ │ │ └ wave.do
│ │ ├ questa
│ │ │ │ compile.do
│ │ │ │ elaborate.do
│ │ │ │ file_info.txt
│ │ │ │ glbl.v
│ │ │ │ num_data5.coe
│ │ │ │ README.txt
│ │ │ │ rom.mif
│ │ │ │ rom.sh
│ │ │ │ rom.udo
│ │ │ │ simulate.do
│ │ │ │ summary.log
│ │ │ └ wave.do
│ │ ├ riviera
│ │ │ │ compile.do
│ │ │ │ file_info.txt
│ │ │ │ glbl.v
│ │ │ │ num_data5.coe
│ │ │ │ README.txt
│ │ │ │ rom.mif
│ │ │ │ rom.sh
│ │ │ │ rom.udo
│ │ │ │ simulate.do
│ │ │ │ summary.log
│ │ │ └ wave.do
│ │ ├ vcs
│ │ │ │ file_info.txt
│ │ │ │ glbl.v
│ │ │ │ num_data5.coe
│ │ │ │ README.txt
│ │ │ │ rom.mif
│ │ │ │ rom.sh
│ │ │ │ simulate.do
│ │ │ └ summary.log
│ │ ├ xcelium
│ │ │ │ file_info.txt
│ │ │ │ glbl.v
│ │ │ │ num_data5.coe
│ │ │ │ README.txt
│ │ │ │ rom.mif
│ │ │ xsim.ini.bak
│ │ │ xvlog.log
│ │ │ xvlog.pb
│ │ └ xsim.dir
│ │ ├ rom_test_tb_behav
│ │ │ │ Compile_Options.txt
│ │ │ │ TempBreakPointFile.txt
│ │ │ │ xsim.dbg
│ │ │ │ xsim.mem
│ │ │ │ xsim.reloc
│ │ │ │ xsim.rlx
│ │ │ │ xsim.rtti
│ │ │ │ xsim.svtype
│ │ │ │ xsim.type
│ │ │ │ xsim.xdbg
│ │ │ │ xsimcrash.log
│ │ │ │ xsimk.exe
│ │ │ │ xsimkernel.log
│ │ │ │ xsimSettings.ini
│ │ │ ├ obj
│ │ │ │ │ xsim_0.win64.obj
│ │ │ │ │ xsim_1.c
│ │ │ │ └ xsim_1.win64.obj
│ │ │ └ webtalk
│ │ │ │ .xsim_webtallk.info
│ │ │ │ usage_statistics_ext_xsim.html
│ │ │ │ usage_statistics_ext_xsim.wdm
│ │ │ │ usage_statistics_ext_xsim.xml
│ │ │ └ xsim_webtalk.tcl
│ │ ├ top_tb_behav
│ │ │ │ Compile_Options.txt
│ │ │ │ TempBreakPointFile.txt
│ │ │ │ xsim.dbg
│ │ │ │ xsim.mem
│ │ │ │ xsim.reloc
│ │ │ │ xsim.rlx
│ │ │ │ xsim.rtti
│ │ │ │ xsim.svtype
│ │ │ │ xsim.type
│ │ │ │ xsim.xdbg
│ │ │ │ xsimcrash.log
│ │ │ │ xsimk.exe
│ │ │ │ xsimkernel.log
│ │ │ │ xsimSettings.ini
│ │ │ ├ obj
│ │ │ │ │ xsim_0.win64.obj
│ │ │ │ │ xsim_1.c
│ │ │ │ └ xsim_1.win64.obj
│ │ │ └ webtalk
│ │ │ │ .xsim_webtallk.info
│ │ │ │ usage_statistics_ext_xsim.html
│ │ │ │ usage_statistics_ext_xsim.wdm
│ │ │ │ usage_statistics_ext_xsim.xml
│ │ │ └ xsim_webtalk.tcl
│ │ └ xil_defaultlib
│ │ │ digital_identify.sdb
│ │ │ edge_check.sdb
│ │ │ edge_disp.sdb
│ │ │ glbl.sdb
│ │ │ num_recog.sdb
│ │ │ rom.sdb
│ │ │ rom_test_tb.sdb
│ │ │ serial_data_gen.sdb
│ │ │ top_tb.sdb
│ │ └ xil_defaultlib.rlx
│ └ digital_identify.srcs
│ ├ constrs_1
│ │ └ new
│ │ └ system.xdc
│ ├ sim_1
│ │ └ new
│ │ │ rom_test_tb.v
│ │ └ top_tb.v
│ └ sources_1
│ ├ ip
│ │ └ rom
│ │ │ rom.dcp
│ │ │ rom.mif
│ │ │ rom.veo
│ │ │ rom.vho
│ │ │ rom.xci
│ │ │ rom.xml
│ │ │ rom_ooc.xdc
│ │ │ rom_sim_netlist.v
│ │ │ rom_sim_netlist.vhdl
│ │ │ rom_stub.v
│ │ │ rom_stub.vhdl
│ │ │ summary.log
│ │ ├ doc
│ │ │ └ blk_mem_gen_v8_4_changelog.txt
│ │ ├ hdl
│ │ │ └ blk_mem_gen_v8_4_vhsyn_rfs.vhd
│ │ ├ misc
│ │ │ └ blk_mem_gen_v8_4.vhd
│ │ ├ sim
│ │ │ └ rom.v
│ │ ├ simulation
│ │ │ └ blk_mem_gen_v8_4.v
│ │ └ synth
│ │ └ rom.vhd
│ └ new
│ │ digital_identify.v
│ │ edge_check.v
│ │ edge_disp.v
│ │ num_recog.v
│ └ serial_data_gen.v
├ imgs
│ │ 0.png
│ │ 1.png
│ │ 2.png
│ │ 3.png
│ │ 4.png
│ │ 5.png
│ │ 6.png
│ │ 7.png
│ │ 8.png
│ │ 9.png
│ │ 上板測(cè)試結(jié)果.jpg
│ └ 仿真結(jié)果和加邊界圖片.docx
└ matlab
│ numRecognition.m
└ showimg.m