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

Subversion Repositories lcd_block

[/] [lcd_block/] [trunk/] [hdl/] [iseProject/] [testLcd_controller.v] - Blame information for rev 10

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 5 leonardoar
`timescale 1ns / 1ps
2
 
3
module testLcd_controller;
4
 
5
        // Inputs
6
        reg rst;
7
        reg clk;
8 8 leonardoar
        reg rs_in;
9 5 leonardoar
        reg [7:0] data_in;
10
        reg strobe_in;
11
        reg [7:0] period_clk_ns;
12
 
13
        // Outputs
14
        wire lcd_e;
15
        wire [3:0] lcd_nibble;
16
        wire lcd_rs;
17
        wire lcd_rw;
18
        wire disable_flash;
19
        wire done;
20
 
21
        // Instantiate the Unit Under Test (UUT)
22
        lcd_controller uut (
23
                .rst(rst),
24
                .clk(clk),
25 8 leonardoar
                .rs_in(rs_in),
26 5 leonardoar
                .data_in(data_in),
27
                .strobe_in(strobe_in),
28
                .period_clk_ns(period_clk_ns),
29
                .lcd_e(lcd_e),
30
                .lcd_nibble(lcd_nibble),
31
                .lcd_rs(lcd_rs),
32
                .lcd_rw(lcd_rw),
33
                .disable_flash(disable_flash),
34
                .done(done)
35
        );
36
 
37 6 leonardoar
        // Create clock
38
        always
39
        begin
40
                #10 clk = ~clk; // Toogle the clock each 10ns (20ns period is 50Mhz)
41
        end
42
 
43
        initial
44
        begin
45 5 leonardoar
                // Initialize Inputs
46 6 leonardoar
                $display($time, " << Starting the Simulation >>");
47 10 leonardoar
                $monitor ("lcd_e=%b,lcd_nibble=%b,done=%b", lcd_e,lcd_nibble,done);
48 6 leonardoar
                rst = 1;
49 5 leonardoar
                clk = 0;
50 10 leonardoar
                rs_in = 0;
51 5 leonardoar
                data_in = 0;
52
                strobe_in = 0;
53 6 leonardoar
                period_clk_ns = 20;     // Indicate the number of time at each cycle (20 ns in our case)
54 5 leonardoar
 
55 6 leonardoar
                // Wait for one clock cycle to reset
56
                #20;
57
                rst = 0;
58 5 leonardoar
 
59 8 leonardoar
                // One advantege over of Verilog over VHDL (Access to internal signals...)
60
                // Like wait until... from Verilog              
61
                @(posedge uut.lcd_init_done);
62
                data_in = 65;
63
                #20 strobe_in = 1; #20 strobe_in = 0;
64
                @(posedge done);
65 10 leonardoar
 
66
                // Finish simulation (on VHDL assert false report...)
67
                $finish;
68 5 leonardoar
        end
69
 
70
endmodule
71
 

powered by: WebSVN 2.1.0

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