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

Subversion Repositories tv80

[/] [tv80/] [branches/] [restruc1/] [env/] [tb_top.v] - Blame information for rev 28

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

Line No. Rev Author Line
1 2 ghutchis
module tb_top;
2
 
3
  reg         clk;
4
  reg         reset_n;
5
  reg         wait_n;
6
  reg         int_n;
7
  reg         nmi_n;
8
  reg         busrq_n;
9
  wire        m1_n;
10
  wire        mreq_n;
11
  wire        iorq_n;
12
  wire        rd_n;
13
  wire        wr_n;
14
  wire        rfsh_n;
15
  wire        halt_n;
16
  wire        busak_n;
17
  wire [15:0] A;
18
  wire [7:0]  di;
19
  wire [7:0]  do;
20
  wire        ram_rd_cs, ram_wr_cs, rom_rd_cs;
21
 
22
  always
23
    begin
24
      clk = 1;
25
      #5;
26
      clk = 0;
27
      #5;
28
    end
29
 
30
  assign rom_rd_cs = !mreq_n & !rd_n & !A[15];
31
  assign ram_rd_cs = !mreq_n & !rd_n & A[15];
32
  assign ram_wr_cs = !mreq_n & !wr_n & A[15];
33
 
34
  tv80s tv80s_inst
35
    (
36
     // Outputs
37
     .m1_n                              (m1_n),
38
     .mreq_n                            (mreq_n),
39
     .iorq_n                            (iorq_n),
40
     .rd_n                              (rd_n),
41
     .wr_n                              (wr_n),
42
     .rfsh_n                            (rfsh_n),
43
     .halt_n                            (halt_n),
44
     .busak_n                           (busak_n),
45
     .A                                 (A[15:0]),
46
     .do                                (do[7:0]),
47
     // Inputs
48
     .reset_n                           (reset_n),
49
     .clk                               (clk),
50
     .wait_n                            (wait_n),
51
     .int_n                             (int_n),
52
     .nmi_n                             (nmi_n),
53
     .busrq_n                           (busrq_n),
54
     .di                                (di[7:0]));
55
 
56
  async_mem ram
57
    (
58
     // Outputs
59
     .rd_data                           (di),
60
     // Inputs
61
     .wr_clk                            (clk),
62
     .wr_data                           (do),
63
     .wr_cs                             (ram_wr_cs),
64
     .addr                              (A[14:0]),
65
     .rd_cs                             (ram_rd_cs));
66
 
67
  async_mem rom
68
    (
69
     // Outputs
70
     .rd_data                           (di),
71
     // Inputs
72
     .wr_clk                            (),
73
     .wr_data                           (),
74
     .wr_cs                             (1'b0),
75
     .addr                              (A[14:0]),
76
     .rd_cs                             (rom_rd_cs));
77
 
78
  env_io env_io_inst
79
    (
80
     // Outputs
81
     .DI                                (di[7:0]),
82
     // Inputs
83
     .clk                               (clk),
84
     .iorq_n                            (iorq_n),
85
     .rd_n                              (rd_n),
86
     .wr_n                              (wr_n),
87
     .addr                              (A[7:0]),
88
     .DO                                (do[7:0]));
89
 
90
  initial
91
    begin
92 28 ghutchis
      //dumpon;
93
      clear_ram;
94 2 ghutchis
      reset_n = 0;
95
      wait_n = 1;
96
      int_n  = 1;
97
      nmi_n  = 1;
98
      busrq_n = 1;
99
      $readmemh (`PROGRAM_FILE,  tb_top.rom.mem);
100
      repeat (20) @(negedge clk);
101
      reset_n = 1;
102
    end
103
 
104
`include "env_tasks.v"
105
 
106
endmodule // tb_top

powered by: WebSVN 2.1.0

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