URL
https://opencores.org/ocsvn/qaz_libs/qaz_libs/trunk
Subversion Repositories qaz_libs
Compare Revisions
- This comparison shows the changes necessary to convert path
/qaz_libs/trunk/BFM/src/tb
- from Rev 41 to Rev 45
- ↔ Reverse comparison
Rev 41 → Rev 45
/random_delay.svh
0,0 → 1,67
////////////////////////////////////////////////////////////////////// |
//// //// |
//// Copyright (C) 2018 Authors and OPENCORES.ORG //// |
//// //// |
//// This source file may be used and distributed without //// |
//// restriction provided that this copyright statement is not //// |
//// removed from the file and that any derivative work contains //// |
//// the original copyright notice and the associated disclaimer. //// |
//// //// |
//// This source file is free software; you can redistribute it //// |
//// and/or modify it under the terms of the GNU Lesser General //// |
//// Public License as published by the Free Software Foundation; //// |
//// either version 2.1 of the License, or (at your option) any //// |
//// later version. //// |
//// //// |
//// This source is distributed in the hope that it will be //// |
//// useful, but WITHOUT ANY WARRANTY; without even the implied //// |
//// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR //// |
//// PURPOSE. See the GNU Lesser General Public License for more //// |
//// details. //// |
//// //// |
//// You should have received a copy of the GNU Lesser General //// |
//// Public License along with this source; if not, download it //// |
//// from http://www.opencores.org/lgpl.shtml //// |
//// //// |
////////////////////////////////////////////////////////////////////// |
|
|
// -------------------------------------------------------------------- |
typedef enum |
{ |
NONE, |
SPORADIC, |
// BURSTY, |
REGULAR |
} random_delay_type_e; |
|
// -------------------------------------------------------------------- |
class random_delay; |
|
rand int unsigned delay = 0; |
time wait_timescale = 1ns; |
|
// -------------------------------------------------------------------- |
virtual function void set_delay(random_delay_type_e kind = REGULAR); |
case(kind) |
NONE: delay = 0; |
SPORADIC: assert(this.randomize() with{delay dist {0 := 96, [1:3] := 3, [4:7] := 1};}); |
REGULAR: assert(this.randomize() with{delay dist {0 := 60, [1:3] := 30, [4:7] := 10};}); |
default: delay = 0; |
endcase |
endfunction: set_delay |
|
// -------------------------------------------------------------------- |
virtual task next(random_delay_type_e kind = REGULAR); |
set_delay(kind); |
#(delay * wait_timescale); |
endtask: next |
|
// -------------------------------------------------------------------- |
virtual function int unsigned get(random_delay_type_e kind = REGULAR); |
set_delay(kind); |
return(delay); |
endfunction: get |
|
// -------------------------------------------------------------------- |
endclass: random_delay |
/tb_pkg.sv
0,0 → 1,34
////////////////////////////////////////////////////////////////////// |
//// //// |
//// Copyright (C) 2018 Authors and OPENCORES.ORG //// |
//// //// |
//// This source file may be used and distributed without //// |
//// restriction provided that this copyright statement is not //// |
//// removed from the file and that any derivative work contains //// |
//// the original copyright notice and the associated disclaimer. //// |
//// //// |
//// This source file is free software; you can redistribute it //// |
//// and/or modify it under the terms of the GNU Lesser General //// |
//// Public License as published by the Free Software Foundation; //// |
//// either version 2.1 of the License, or (at your option) any //// |
//// later version. //// |
//// //// |
//// This source is distributed in the hope that it will be //// |
//// useful, but WITHOUT ANY WARRANTY; without even the implied //// |
//// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR //// |
//// PURPOSE. See the GNU Lesser General Public License for more //// |
//// details. //// |
//// //// |
//// You should have received a copy of the GNU Lesser General //// |
//// Public License along with this source; if not, download it //// |
//// from http://www.opencores.org/lgpl.shtml //// |
//// //// |
////////////////////////////////////////////////////////////////////// |
|
package tb_pkg; |
|
// -------------------------------------------------------------------- |
`include "random_delay.svh" |
|
// -------------------------------------------------------------------- |
endpackage : tb_pkg |