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

Subversion Repositories uart2bus_testbench

[/] [uart2bus_testbench/] [trunk/] [tb/] [uart_top.sv] - Blame information for rev 2

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

Line No. Rev Author Line
1 2 HanySalah
//-----------------------------------------------------------------------------
2
//
3
//                             UART2BUS VERIFICATION
4
//
5
//-----------------------------------------------------------------------------
6
// CREATOR    : HANY SALAH
7
// PROJECT    : UART2BUS UVM TEST BENCH
8
// UNIT       : TOP MODULE
9
//-----------------------------------------------------------------------------
10
// TITLE      : UART Top
11
// DESCRIPTION: This
12
//-----------------------------------------------------------------------------
13
// LOG DETAILS
14
//-------------
15
// VERSION      NAME        DATE        DESCRIPTION
16
//    1       HANY SALAH    11012016    FILE CREATION
17
//-----------------------------------------------------------------------------
18
// ALL COPYRIGHTS ARE RESERVED FOR THE PRODUCER ONLY .THIS FILE IS PRODUCED FOR
19
// OPENCORES MEMBERS ONLY AND IT IS PROHIBTED TO USE THIS MATERIAL WITHOUT THE
20
// CREATOR'S PERMISSION
21
//-----------------------------------------------------------------------------
22
  `include "defin_lib.svh"
23
  `include "uart2bus_top.v"
24
 
25
module uart_top_tb;
26
 
27
  import uvm_pkg::*;
28
  import uart_pkg::*;
29
 
30
  `include "uvm_macros.svh"
31
 
32
  logic clk_glob;
33
 
34
  logic clk_uart;
35
 
36
  logic reset;
37
 
38
  assign rf_inf.int_req = arb_inf.int_req;
39
  assign rf_inf.int_gnt = arb_inf.int_gnt;
40
 
41
  uart_interface  uart_inf (.reset(reset),
42
                            .clock(clk_uart));
43
 
44
  rf_interface    rf_inf (.reset(reset),
45
                          .clock(clk_glob));
46
 
47
  uart_arbiter    arb_inf (.reset (reset),
48
                           .clock(clk_glob));
49
 
50
  uart2bus_top      dut(  .clock(clk_glob),
51
                          .reset(reset),
52
                          //.ser_in(serial_out),
53
                          .ser_in(uart_inf.ser_out),
54
                          .ser_out(uart_inf.ser_in),
55
                          .int_address(rf_inf.int_address),
56
                          .int_wr_data(rf_inf.int_wr_data),
57
                          .int_write(rf_inf.int_write),
58
                          .int_rd_data(rf_inf.int_rd_data),
59
                          .int_read(rf_inf.int_read),
60
                          .int_req(arb_inf.int_req),
61
                          //.int_gnt(arb_inf.int_gnt));
62
                          .int_gnt(1'b1));
63
 
64
 
65
 
66
  initial
67
    begin
68
    reset = 1'b1;
69
    clk_glob = 1'b0;
70
    clk_uart = 1'b0;
71
    #100;
72
    reset = 1'b0;
73
    end
74
 
75
  initial
76
    begin
77
    fork
78
      forever
79
        begin
80
        #(`glob_clk_period/2) clk_glob = ~clk_glob;
81
        #((`glob_clk_period/2)+1) clk_glob = ~clk_glob;
82
        end
83
      forever
84
        begin
85
        #(`buad_clk_period/2) clk_uart = ~clk_uart;
86
        #((`buad_clk_period/2)+1) clk_uart = ~clk_uart;
87
        end
88
        begin
89
        #(500000000);
90
        $error("Exceed the maximum limited time for simulation ..");
91
        $finish;
92
        end
93
    join
94
    end
95
 
96
 
97
  initial
98
    begin
99
    uvm_config_db#(virtual uart_interface)::set(uvm_root::get(), "*", "uart_inf",uart_inf);
100
 
101
    uvm_config_db#(virtual rf_interface)::set(uvm_root::get(), "*", "rf_inf",rf_inf);
102
 
103
    uvm_config_db#(virtual uart_arbiter)::set(uvm_root::get(),"*","arb_inf",arb_inf);
104
 
105
    run_test("write_text_mode");
106
    //run_test("read_text_mode");
107
    //run_test("nop_command_mode");
108
    //run_test("read_command_mode");
109
    //run_test("write_command_mode");
110
    end
111
 
112
 
113
endmodule:uart_top_tb

powered by: WebSVN 2.1.0

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