module shift_ram_3_8bit
#(
parameter Ram_Length = 'd640
)
(
clken,
clock,
shiftin,
shiftout,
taps0x,
taps1x); input clken;
input clock;
input [:] shiftin;
output [:] shiftout;
output [:] taps0x;
output [:] taps1x;
`ifndef ALTERA_RESERVED_QIS
// synopsys translate_off
`endif
tri1 clken;
`ifndef ALTERA_RESERVED_QIS
// synopsys translate_on
`endif wire [:] sub_wire0;
wire [:] sub_wire1;
wire [:] shiftout = sub_wire0[:];
wire [:] sub_wire3 = sub_wire1[:];
wire [:] sub_wire2 = sub_wire1[:];
wire [:] taps0x = sub_wire2[:];
wire [:] taps1x = sub_wire3[:]; altshift_taps ALTSHIFT_TAPS_component (
.clock (clock),
.clken (clken),
.shiftin (shiftin),
.shiftout (sub_wire0),
.taps (sub_wire1)
// synopsys translate_off
,
.aclr ()
// synopsys translate_on
);
defparam
ALTSHIFT_TAPS_component.intended_device_family = "Cyclone IV E",
ALTSHIFT_TAPS_component.lpm_hint = "RAM_BLOCK_TYPE=M9K",
ALTSHIFT_TAPS_component.lpm_type = "altshift_taps",
ALTSHIFT_TAPS_component.number_of_taps = ,
ALTSHIFT_TAPS_component.tap_distance = Ram_Length,
ALTSHIFT_TAPS_component.width = ; endmodule

不同的地方


//浠跨湡


`timescale 1ns/1ns
module Generate_Matrix_3x3_8bit_tb;


//system
reg clk ; //时钟或是摄像头或是vga coms_clk , vga_clk
reg rst_n ; //复位
//coms or vga
reg pre_vs ; //行有效
reg pre_hs ; //场有效
reg pre_en ; //数据有效使能
reg [7:0] pre_img_Y ; //输出的灰度数据

wire [7:0] matrixp11,matrixp12,matrixp13;
wire [7:0] matrixp21,matrixp22,matrixp23;
wire [7:0] matrixp31,matrixp32,matrixp33;
wire matrix_vs ;
wire matrix_hs ;
wire matrix_en ;

initial clk = 1;
always #5 clk = ~clk;

initial begin
rst_n = 0;
pre_vs =0 ;
pre_hs = 0;
pre_en = 0;
pre_img_Y = 0;
#51;
rst_n = 1;
pre_vs = 1;
#20;
pre_hs = 1;
#20;
pre_en = 1;
#60;
pre_en = 0;
#20;
pre_hs = 0;
#20;
pre_hs = 1;
#20;
pre_en = 1;
#60;
pre_en = 0;
#20;
pre_hs = 0;
#20;
pre_hs = 1;
#20;
pre_en = 1;
#60;
pre_en = 0;
#20;
pre_hs = 0;
#20;
pre_hs = 1;
#20;
pre_en = 1;
#60;
pre_en = 0;
#20;
pre_hs = 0;
#20;
pre_hs = 1;
#20;
pre_en = 1;
#60;
pre_en = 0;
#20;
pre_hs = 0;
$stop;
end

reg [7:0] shiftin;
always@(posedge clk or negedge rst_n ) begin
if(!rst_n)
shiftin <= 'd1;
else if(pre_en)
shiftin <= shiftin + 1'b1;
else
shiftin <= shiftin;
end

Generate_Matrix_3x3_8bit Generate_Matrix_3x3_8bit(
//system
.clk (clk ), //时钟或是摄像头或是vga coms_clk , vga_clk
.rst_n (rst_n ), //复位
//coms or vga
.pre_vs (pre_vs ), //行有效
.pre_hs (pre_hs ), //场有效
.pre_en (pre_en ), //数据有效使能
.pre_img_Y ( shiftin ), //输出的灰度数据
.matrixp11 (matrixp11 ),
.matrixp12 (matrixp12 ),
.matrixp13 (matrixp13 ),
.matrixp21 (matrixp21 ),
.matrixp22 (matrixp22 ),
.matrixp23 (matrixp23 ),
.matrixp31 (matrixp31 ),
.matrixp32 (matrixp32 ),
.matrixp33 (matrixp33 ),
.matrix_vs (matrix_vs ),
.matrix_hs (matrix_hs ),
.matrix_en (matrix_en )
);

endmodule


FPGA-中值滤波(1)代码的更多相关文章

  1. 基于FPGA的中值滤波算法实现

    在这一篇开篇之前,我需要解决一个问题,上一篇我们实现了基于FPGA的均值滤波算法的实现,最后的显示效果图上发现有一些黑白色的斑点,我以为是椒盐噪声,然后在做基于FPGA的中值滤波算法的实验时,我发现黑 ...

  2. verilog实现中值滤波

    前言 项目需要,想要实现算法中的其中一步即中值滤波,同时,因为图像处理部分中值滤波相对来说还是比较简单的,将中值滤波的硬件实现作为进入FPGA领域的第一次尝试.虽然说网上有较多关于中值滤波的文档,可是 ...

  3. 基于MATLAB的中值滤波算法实现

    在实时图像采集中,不可避免的会引入噪声,尤其是干扰噪声和椒盐噪声,噪声的存在严重影响边缘检测的效果,中值滤波是一种基于排序统计理论的非线性平滑计数,能有效平滑噪声,且能有效保护图像的边缘信息,所以被广 ...

  4. 学习 opencv---(8)非线性滤波:中值滤波,双边滤波

    正如我们上一篇文章中讲到的,线性滤波可以实现很多种不同的图像变换.然而非线性滤波,如中值滤波器和双边滤波器,有时可以达到更好的实现效果. 邻域算子的其他一些例子还有对 二值图像进行操作的形态学算子,用 ...

  5. 基于MATLAB的中值滤波均值滤波以及高斯滤波的实现

    基于MATLAB的中值滤波均值滤波以及高斯滤波的实现 作者:lee神 1.   背景知识 中值滤波法是一种非线性平滑技术,它将每一像素点的灰度值设置为该点某邻域窗口内的所有像素点灰度值的中值. 中值滤 ...

  6. 3D Slicer中文教程(七)—图像中值滤波

    1.中值滤波概念 中值滤波是对一个滑动窗口内的诸像素灰度值排序,用其中值代替窗口中心象素的原来灰度值,它是一种非线性的图像平滑法,它对脉冲干扰级椒盐噪声的抑制效果好,在抑制随机噪声的同时能有效保护边缘 ...

  7. 机器学习进阶-阈值与平滑-图像平滑操作(去噪操作) 1. cv2.blur(均值滤波) 2.cv2.boxfilter(方框滤波) 3. cv2.Guassiannblur(进行高斯滤波) 4. cv2.medianBlur(进行中值滤波)

    1.cv2.blur(img, (3, 3))  进行均值滤波 参数说明:img表示输入的图片, (3, 3) 表示进行均值滤波的方框大小 2. cv2.boxfilter(img, -1, (3, ...

  8. PIE SDK中值滤波

    1.算法功能简介 中值滤波是一种最常用的非线性平滑滤波器,它将窗口内的所有像素值按高低排序后,取中间值作为中心像素的新值. 中值滤波对噪声有良好的滤除作用,特别是在滤除噪声的同时,能够保护信号的边缘, ...

  9. 中值滤波C语言优化

    中值滤波C语言优化 图像平滑是图像预处理的基本操作,本文首先用不同的方法对一张图片做预处理比较它们效果的不同,然后针对中值滤波,实现了一种快速实现.(其实是copy的opencv实现,呵呵).因为op ...

  10. verilog 实现中值滤波

    图像信号在形成.传输和记录的过程中,由于成像系统.传输介质.工作环境和记录设备等的固有缺陷,不可避免地产生各种类型的噪声,降低了图像的质量,进而影响后续处理(如边缘检测.图像分割.特征提取.模式识别等 ...

随机推荐

  1. 实战if-else 过多详解

    1.本文实例代码仅仅是俩个小例子. package com.example.demo.pattern.ifElse; import java.util.HashMap; import java.uti ...

  2. vue-cli3 按需引入 element-ui 报错

    报错信息: Cannot find module 'babel-preset-es2015' from .... 解决办法: 安装最新的 Babel 编译插件:@babel/preset-env 修改 ...

  3. [leetcode]1379. Find a Corresponding Node of a Binary Tree in a Clone of That Tree

    [leetcode]1379. Find a Corresponding Node of a Binary Tree in a Clone of That Tree 链接 leetcode 描述    ...

  4. matlab计算LZ复杂度

    我这个计算得14通道,每个通道截取3000个数据得复杂度,最后将计算得出得数据存储到本地txt文档中 function LZC(data) % 计算一维信号的复杂度 % data时间序列 % lzc: ...

  5. PrestoSPI安全扩展

    由于Presto官方文档和谷歌搜索都没有相关的内容,git项目中也没有支持sentry的安全插件扩展,因此只能从源码中寻找答案,在梳理完SPI包的安全相关源码结构后,已实现了一个自定义的安全插件,经验 ...

  6. Go gRPC进阶-go-grpc-middleware使用(八)

    前言 上篇介绍了gRPC中TLS认证和自定义方法认证,最后还简单介绍了gRPC拦截器的使用.gRPC自身只能设置一个拦截器,所有逻辑都写一起会比较乱.本篇简单介绍go-grpc-middleware的 ...

  7. vue2.x学习笔记(二十)

    接着前面的内容:https://www.cnblogs.com/yanggb/p/12631279.html. 循环引用 递归组件 组件是可以在它们自己的模板中调用自身的,不过它们只能通过[name] ...

  8. MVC-过滤器-Action

    四个方法执行顺序是OnActionExecuting——>OnActionExecuted——>OnResultExecuting——>OnResultExecuted. demo代 ...

  9. ADO.NET(二)

     对Command的拓展延伸 执行SQL语句. Command 对象需要取得将要执行的SQL语句,通过调用该类的多种方法,向数据库提交SQL语句. ExecuteNonQuery(),ExecuteR ...

  10. vue中解决时间在ios上显示NAN的问题

    最近在用vue,遇到倒计时在ios上显示为NAN的问题. 因为做的是倒计时支付,思路是获取服务器时间和下单时间,再转成秒级时间戳做差值. 在网上找到说是ios 不支持例如2018-09-01 10:0 ...