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

Subversion Repositories srdydrdy_lib

[/] [srdydrdy_lib/] [trunk/] [env/] [verilog/] [scoreboard/] [sb_monitor.v] - Blame information for rev 18

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

Line No. Rev Author Line
1 18 ghutchis
// combination refmodel/monitor for scoreboard
2
 
3
module sb_monitor
4
  #(parameter width=8,
5
    parameter items=64,
6
    parameter use_txid=0,
7
    parameter use_mask=0,
8
    parameter txid_sz=2,
9
    parameter asz=$clog2(items))
10
  (input      clk,
11
   input      reset,
12
 
13
   input      c_srdy,
14
   input      c_drdy,
15
   input      c_req_type, // 0=read, 1=write
16
   input [txid_sz-1:0] c_txid,
17
   input [width-1:0] c_mask,
18
   input [width-1:0] c_data,
19
   input [asz-1:0]   c_itemid,
20
 
21
   input     p_srdy,
22
   output reg   p_drdy,
23
   input  [txid_sz-1:0] p_txid,
24
   input [width-1:0]   p_data
25
   );
26
 
27
 
28
  reg [width-1:0]      sbmem [0:items-1];
29
 
30
  always @(posedge clk)
31
    begin
32
      if (c_srdy & c_drdy & (c_req_type == 1))
33
        begin
34
          sbmem[c_itemid] <= #20 (sbmem[c_itemid] & ~c_mask) | (c_data & c_mask);
35
        end
36
 
37
      if (p_srdy & p_drdy)
38
        begin
39
          if (p_data != sbmem[p_txid])
40
            begin
41
              $display ("%t: ERROR: sb returned %x, expected %x",
42
                        $time, p_data, sbmem[p_txid]);
43
            end
44
        end
45
    end
46
 
47
  initial
48
    begin
49
      p_drdy = 1;
50
    end
51
 
52
endmodule // sb_monitor

powered by: WebSVN 2.1.0

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