OpenCores
URL https://opencores.org/ocsvn/simple_agc/simple_agc/trunk

Subversion Repositories simple_agc

[/] [simple_agc/] [trunk/] [agc_tb.v] - Blame information for rev 2

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 tyer426
`timescale 1ns/1ns
2
 
3
module agc_tb;
4
 
5
        reg clk;
6
        reg rst;
7
        wire signed [15:0] x_in;
8
        wire signed [15:0] y_out;
9
        reg [15:0] ref;
10
        reg [7:0] addr;
11
        reg [7:0] sh;
12
        wire [7:0] data;
13
        reg [7:0] a_coef;
14
 
15
        reg [15:0] ref_lvl;
16
 
17
        always #20 clk = ~clk;
18
 
19
 
20
        always @(posedge clk or negedge rst)
21
                if(!rst) addr <= 'h0;
22
                else addr <= addr + 'h1;
23
 
24
        //always @(posedge clk or negedge rst)
25
        //      if(!rst) ref_lvl <= 'h0;
26
        //      else if (&addr) ref_lvl <= ref_lvl + 'hf;       
27
 
28
        assign x_in = {$signed(data - 8'h80) , 8'h0};
29
 
30
        //assign ref = ref_lvl;
31
 
32
        sine_rom SINE(
33
                .addr(addr),
34
                .data(data)
35
        );
36
 
37
        agc UUT(
38
                .clk(clk),
39
                .rst(rst),
40
                .x_in(x_in >>> sh),
41
                .a_coef(a_coef),
42
                .reference(ref),
43
                .y_out(y_out)
44
        );
45
 
46
 
47
        initial begin
48
                clk = 'b0;
49
                rst = 'b0;
50
                sh = 'h1;
51
                ref = 'h3fff;
52
                a_coef = 'h3f;
53
                #20 rst = 'b1;
54
 
55
                #100000
56
                sh = 'h2;
57
                #200000
58
                sh = 'h1;
59
                #100000
60
                sh = 'h0;
61
                #100000
62
                sh = 'h2;
63
                #250000
64
                sh = 'h3;
65
                #250000
66
                sh = 'h0;
67
                #250000
68
                sh = 'h2;
69
                #10000000
70
                $write("Simulation has finished");
71
                $finish;
72
        end
73
 
74
        initial begin
75
                $dumpfile("agc_tb.vcd");
76
                $dumpvars(0,agc_tb);
77
        end
78
 
79
endmodule
80
 
81
 
82
module sine_rom(
83
    input   [7:0] addr,
84
    output  [7:0] data
85
);
86
 
87
reg [7:0] mem [0:255];
88
 
89
initial
90
  $readmemh("sine.txt", mem);
91
 
92
assign data = mem[addr];
93
 
94
endmodule
95
 
96
 

powered by: WebSVN 2.1.0

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