FPGA-3X3矩阵的生成

简介: FPGA-3X3矩阵的生成

这里的话我用的是vivado的开发工具

配置shift ram可以实现两行数据的移位,

那再串上一行就可以实现说行数据的移位功能

配置下图:

image.png

其他的默认就行,这里我因为是对200*200 *8bit图片数据的进行处理,所以就主要把 位宽和深度定义为自己想要的就好了

moduleShift_RAM_3X3(
//globalsignalsinputclk,                        
inputrst_n,                          
//Imagedataprepredtobeprocessdinputper_clken,//PreparedImagedataoutput/captureenableclockinput           [7:0]   per_img_Y,//PreparedImagebrightnessinput//Imagedatahasbeenprocessdoutputmatrix_clken,   //PreparedImagedataoutput/captureenableclockoutputreg     [7:0]   matrix_p11,                     
outputreg     [7:0]   matrix_p12,                     
outputreg     [7:0]   matrix_p13, //3X3Matrixoutputoutputreg     [7:0]   matrix_p21,                     
outputreg     [7:0]   matrix_p22,                     
outputreg     [7:0]   matrix_p23,                     
outputreg     [7:0]   matrix_p31,                     
outputreg     [7:0]   matrix_p32,                     
outputreg     [7:0]   matrix_p33    );
//----------------------------------------------//consume1clkwire    [7:0]   row1_data;//framedataofthe1throwwire    [7:0]   row2_data;//framedataofthe2throwreg     [7:0]   row3_data;//framedataofthe3throwalways@(posedgeclkornegedgerst_n)beginif(!rst_n)
row3_data<=8'b0;elsebeginif(per_clken)
row3_data<=per_img_Y;
elserow3_data<=row3_data;
endend//----------------------------------------------------------//moduleofshiftramforrowdatawireshift_clk_en=per_clken;
//Shift_RAM_3X3_8bit1Shift_RAM_3X3_8bitu1_Shift_RAM_3X3_8bit (
  .D(row3_data),        //inputwire [7 : 0] D  .CLK(shift_clk_en),    //inputwireCLK  .SCLR(~rst_n),  //inputwireSCLR  .Q(row2_data)        //outputwire [7 : 0] Q);
//Shift_RAM_3X3_8bit2Shift_RAM_3X3_8bitu2_Shift_RAM_3X3_8bit (
  .D(row2_data),        //inputwire [7 : 0] D  .CLK(shift_clk_en),    //inputwireCLK  .SCLR(~rst_n),  //inputwireSCLR  .Q(row1_data)        //outputwire [7 : 0] Q);
//-------------------------------------------//per_clkendelay3clkreg     [1:0]   per_clken_r;
always@(posedgeclkornegedgerst_n)beginif(!rst_n)
per_clken_r<=2'b0;elseper_clken_r<= {per_clken_r[0], per_clken};  
endwireread_clken=per_clken_r[0];
assignmatrix_clken=per_clken_r[1];
//---------------------------------------------------------------------/****************************************(1)readdatafromshift_RAM(2)caulatethesobel(3)steadydataaftersobelgenerate******************************************///wire  [23:0]  matrix_row1= {matrix_p11, matrix_p12,matrix_p13};//justfortest//wire  [23:0]  matrix_row2= {matrix_p21, matrix_p22,matrix_p23};
//wire  [23:0]  matrix_row3= {matrix_p31, matrix_p32,matrix_p33};
always@(posedgeclkornegedgerst_n)beginif(!rst_n)begin        {matrix_p11, matrix_p12, matrix_p13} <=24'h0;        {matrix_p21, matrix_p22, matrix_p23} <=24'h0;        {matrix_p31, matrix_p32, matrix_p33} <=24'h0;end//elseif(read_frame_href)beginelseif(read_clken)begin//shift_RAMdatareadclockenbale            {matrix_p11, matrix_p12, matrix_p13} <= {matrix_p12, matrix_p13, row1_data};//1thshiftinput            {matrix_p21, matrix_p22, matrix_p23} <= {matrix_p22, matrix_p23, row2_data};//2thshiftinput            {matrix_p31, matrix_p32, matrix_p33} <= {matrix_p32, matrix_p33, row3_data};//3thshiftinputendelsebegin        {matrix_p11, matrix_p12, matrix_p13} <= {matrix_p11, matrix_p12, matrix_p13};
        {matrix_p21, matrix_p22, matrix_p23} <= {matrix_p21, matrix_p22, matrix_p23};
        {matrix_p31, matrix_p32, matrix_p33} <= {matrix_p31, matrix_p32, matrix_p33};
end//end/*elsebegin        {matrix_p11, matrix_p12, matrix_p13} <=24'h0;        {matrix_p21, matrix_p22, matrix_p23} <=24'h0;        {matrix_p31, matrix_p32, matrix_p33} <=24'h0;end*/endendmodule
目录
相关文章
|
机器学习/深度学习 算法 搜索推荐
基于FPGA的中值滤波算法的实现
中值滤波法是一种非线性平滑技术,它将每一像素点的灰度值设置为该点某邻域窗口内的所有像素点灰度值的中值.
|
存储 缓存 测试技术
ZYNQ-AXI Interconnect IP介绍
ZYNQ-AXI Interconnect IP介绍
3009 0
ZYNQ-AXI Interconnect IP介绍
|
机器学习/深度学习 人工智能 运维
输电线路缺陷检测国内外研究现状
随着我国电网系统的不断发展,基层巡检作业负担越来越重,运维成本越来越高,如何实现输电线路部件缺陷的智能化检测变得愈发重要。同时,由于国家《新一代人工智能发展规划》的提出和国家电网"数字新基建"的部署,人工智能应用于电力设备运维的相关技术得到了快速发展,对输电线路部件视觉缺陷准确检测成为亟待解决的关键问题之一。
1885 0
|
8月前
|
人工智能 监控 算法
卷不过AI就驯服它!AI训练师速成攻略
这是一篇关于AI训练师职业的全面指南。文章从“驯服AI”的理念出发,将AI训练师比作“幼儿园老师”,详细描述了该职业的工作内容、入行技能要求、成长路径及工作日常。新手可以从基础的数据标注做起,逐步学习Python、数学知识和工具使用,通过三年计划实现职业进阶。文中还分享了摸鱼技巧、崩溃与高光时刻,以及避坑建议和未来转型方向。无论是在电商公司给商品打标签,还是训练医疗AI辅助诊断,这个职业都充满挑战与机遇。最后鼓励大家主动拥抱变化,把AI变成自己的左膀右臂,而非竞争对手。
1753 1
|
缓存 监控 安全
服务器荣获挖矿病毒,该如何处理?
【9月更文挑战第2天】若服务器不幸感染挖矿病毒,应立即断开网络连接,防止扩散;使用监控工具查找异常进程和文件,并全面扫描确认位置;谨慎删除病毒文件和进程,修复系统漏洞,安装最新补丁;加强安全防护,安装杀毒软件和防火墙,监控性能活动;最后从备份恢复数据,测试服务功能,确保正常运行。处理过程需谨慎耐心,强化安全管理。
1329 3
|
机器学习/深度学习 存储 人工智能
深度学习的发展趋势是什么?
【5月更文挑战第11天】深度学习的发展趋势是什么?
669 1
|
缓存 网络性能优化 SoC
ZYNQ-AXI_GP接口和AXI_HP接口的异同
ZYNQ-AXI_GP接口和AXI_HP接口的异同
1491 0
ZYNQ-AXI_GP接口和AXI_HP接口的异同
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp的社区养老服务系统的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue+uniapp的社区养老服务系统的详细设计和实现(源码+lw+部署文档+讲解等)
226 0
|
存储 算法 异构计算
基于FPGA的图像直方图统计实现,包括tb测试文件和MATLAB辅助验证
基于FPGA的图像直方图统计实现,包括tb测试文件和MATLAB辅助验证
《逻辑与计算机设计基础(原书第5版)》——2.7 门的传播延迟
本节书摘来自华章计算机《逻辑与计算机设计基础(原书第5版)》一书中的第2章,第2.7节,作者:(美)M.莫里斯·马诺(M. Morris Mano)著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
4285 1