OpenCores
URL https://opencores.org/ocsvn/fpga-median/fpga-median/trunk

Subversion Repositories fpga-median

[/] [fpga-median/] [trunk/] [sim/] [tb/] [median_tb.v] - Blame information for rev 2

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 joaocarlos
// +----------------------------------------------------------------------------
2
// Universidade Federal da Bahia
3
//------------------------------------------------------------------------------
4
// PROJECT: FPGA Median Filter
5
//------------------------------------------------------------------------------
6
// FILE NAME            : median_tb.v
7
// AUTHOR               : João Carlos Bittencourt
8
// AUTHOR'S E-MAIL      : joaocarlos@ieee.org
9
// -----------------------------------------------------------------------------
10
// RELEASE HISTORY
11
// VERSION  DATE        AUTHOR        DESCRIPTION
12
// 1.0      2013-08-27  joao.nunes    initial version
13
// -----------------------------------------------------------------------------
14
// KEYWORDS: median, filter, image processing
15
// -----------------------------------------------------------------------------
16
// PURPOSE: Testbench for Median filter.
17
// -----------------------------------------------------------------------------
18
module median_tb;
19
 
20
    localparam PERIOD = 10;
21
    localparam PIXEL_DATA_WIDTH = 8;
22
    localparam LUT_ADDR_WIDTH = 10; // Input LUTs
23
    localparam MEM_ADDR_WIDTH = 10; // Output Memory
24
 
25
    reg clk;
26
    reg rst_n;
27
    always #(PERIOD/2) clk = ~clk;
28
 
29
    reg [(PIXEL_DATA_WIDTH*4)-1:0] word0;
30
    reg [(PIXEL_DATA_WIDTH*4)-1:0] word1;
31
    reg [(PIXEL_DATA_WIDTH*4)-1:0] word2;
32
 
33
    wire [PIXEL_DATA_WIDTH-1:0] pixel1;
34
    wire [PIXEL_DATA_WIDTH-1:0] pixel2;
35
    wire [PIXEL_DATA_WIDTH-1:0] pixel3;
36
    wire [PIXEL_DATA_WIDTH-1:0] pixel4;
37
 
38
    wire [9:0] raddr_a;
39
    wire [9:0] raddr_b;
40
    wire [9:0] raddr_c;
41
 
42
    wire [9:0] waddr;
43
 
44
    median
45
    #(
46
        .MEM_DATA_WIDTH(PIXEL_DATA_WIDTH*4),
47
        .PIXEL_DATA_WIDTH(PIXEL_DATA_WIDTH),
48
        .LUT_ADDR_WIDTH(LUT_ADDR_WIDTH),
49
        .MEM_ADDR_WIDTH(MEM_ADDR_WIDTH)
50
    ) dut_u0 (
51
        .clk(clk), // Clock
52
        .rst_n(rst_n), // Asynchronous reset active low
53
 
54
        .word0(word0),
55
        .word1(word1),
56
        .word2(word2),
57
 
58
        .pixel1(pixel1),
59
        .pixel2(pixel2),
60
        .pixel3(pixel3),
61
        .pixel4(pixel4),
62
        .raddr_a(raddr_a),
63
        .raddr_b(raddr_b),
64
        .raddr_c(raddr_c),
65
 
66
        .waddr(waddr)
67
    );
68
 
69
    initial begin
70
        clk = 1;
71
        rst_n = 0;
72
        word0 = 0;
73
        word1 = 0;
74
        word2 = 0;
75
        #(PERIOD*3)
76
        rst_n = 1;
77
        word0 = {8'd160,8'd171,8'd164,8'd142};
78
        word1 = {8'd123,8'd141,8'd149,8'd154};
79
        word2 = {8'd163,8'd177,8'd171,8'd136};
80
        #PERIOD
81
        word0 = {8'd167,8'd193,8'd171,8'd160};
82
        word1 = {8'd174,8'd150,8'd123,8'd166};
83
        word2 = {8'd142,8'd165,8'd162,8'd171};
84
        #PERIOD
85
        word0 = {8'd168,8'd179,8'd146,8'd173};
86
        word1 = {8'd171,8'd160,8'd152,8'd154};
87
        word2 = {8'd156,8'd142,8'd147,8'd167};
88
        #PERIOD
89
        word0 = {8'd123,8'd141,8'd149,8'd154};
90
        word1 = {8'd163,8'd177,8'd171,8'd136};
91
        word2 = {8'd204,8'd151,8'd140,8'd140};
92
        #PERIOD
93
        word0 = {8'd174,8'd150,8'd123,8'd166};
94
        word1 = {8'd142,8'd165,8'd162,8'd171};
95
        word2 = {8'd142,8'd158,8'd149,8'd128};
96
        #PERIOD
97
        word0 = {8'd171,8'd160,8'd152,8'd154};
98
        word1 = {8'd156,8'd142,8'd147,8'd167};
99
        word2 = {8'd159,8'd128,8'd131,8'd160};
100
        repeat (100) @(negedge clk);
101
        $stop;
102
    end
103
 
104
endmodule

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.