OpenCores
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
    from Rev 24 to Rev 23
    Reverse comparison

Rev 24 → Rev 23

/trunk/axis_video_frame_class/src/axis_video_frame.sv
0,0 → 1,195
//////////////////////////////////////////////////////////////////////
//// ////
//// Copyright (C) 2015 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 ////
//// ////
//////////////////////////////////////////////////////////////////////
 
 
module
axis_video_frame
#(
BYTES_PER_PIXEL = 2,
AVF_OUTPUTS = 4,
AVF_TILES = 1
)
(
input aclk,
input aresetn
);
 
// --------------------------------------------------------------------
//
import axis_video_frame_pkg::*;
localparam AVF_N = BYTES_PER_PIXEL * AVF_OUTPUTS; // data bus width in bytes
localparam AVF_U = 1; // TUSER width
localparam AVF_B = BYTES_PER_PIXEL * 8; // bits per pixel on TDATA
 
axis_if #(.N(AVF_N), .U(AVF_U)) avf_axis[AVF_TILES](.*);
 
for(genvar j = 0; j < AVF_TILES; j++)
assign avf_axis[j].tready = 1;
 
 
// --------------------------------------------------------------------
//
axis_video_frame_class #(BYTES_PER_PIXEL, AVF_OUTPUTS) f_tx_h[AVF_TILES];
 
for(genvar j = 0; j < AVF_TILES; j++)
initial
begin
f_tx_h[j] = new(avf_axis[j]);
 
f_tx_h[j].init
(
.avf_width(32),
.avf_height(16),
.avf_bits_per_pixel(16),
.avf_name("AVF"),
.avf_type("tx")
);
 
f_tx_h[j].make_counting();
end
 
 
// --------------------------------------------------------------------
//
axis_video_frame_class #(BYTES_PER_PIXEL, AVF_OUTPUTS) f_rx_h[AVF_TILES];
 
for(genvar j = 0; j < AVF_TILES; j++)
initial
begin
f_rx_h[j] = new(avf_axis[j]);
 
f_rx_h[j].init
(
.avf_width(32),
.avf_height(16),
.avf_bits_per_pixel(16),
.avf_name("AVF"),
.avf_type("rx")
);
end
 
 
// --------------------------------------------------------------------
//
logic put_frame_active = 0;
 
task automatic
put_frame;
 
if(put_frame_active)
begin
$display("^^^ %16.t | %m | ERROR! Already put a frame.", $time);
return;
end
 
$display("^^^ %16.t | %m | Putting a frame.", $time);
put_frame_active = 1;
 
fork
begin
 
foreach(f_tx_h[i])
f_tx_h[i].avf_tx(RIGHT_DOWN, 0);
 
wait fork;
put_frame_active = 0;
$display("^^^ %16.t | %m | Put a frame.", $time);
 
end
join_none
 
 
endtask: put_frame
 
 
// --------------------------------------------------------------------
//
logic get_frame_active = 0;
 
task automatic
get_frame;
 
if(get_frame_active)
begin
$display("^^^ %16.t | %m | ERROR! Already getting a frame.", $time);
return;
end
 
$display("^^^ %16.t | %m | getting a frame.", $time);
get_frame_active = 1;
 
fork
begin
 
foreach(f_rx_h[i])
f_rx_h[i].avf_rx(RIGHT_DOWN);
 
wait fork;
get_frame_active = 0;
$display("^^^ %16.t | %m | Got a frame.", $time);
 
end
join_none
 
 
endtask: get_frame
 
 
// --------------------------------------------------------------------
//
import video_frame_pkg::*;
video_frame_class f_h;
 
function automatic
int compare_frame;
 
int mismatch_count[AVF_TILES];
 
foreach(f_rx_h[i])
begin
 
$display("^^^ %16.t | %m | Got a frame.", $time);
 
f_h = f_tx_h[i];
 
mismatch_count[i] = f_rx_h[i].compare(8, f_h);
end
 
 
endfunction: compare_frame
 
 
// --------------------------------------------------------------------
//
for(genvar j = 0; j < AVF_TILES; j++)
axis_video_debug #(BYTES_PER_PIXEL, AVF_OUTPUTS) avf_debug(avf_axis[j]);
 
 
endmodule
 
 
 
/trunk/axis_video_frame_class/src/axis_video_frame_pkg.sv
0,0 → 1,375
//////////////////////////////////////////////////////////////////////
//// ////
//// Copyright (C) 2015 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 axis_video_frame_pkg;
 
typedef enum
{
RIGHT_DOWN,
RIGHT_UP,
LEFT_DOWN,
LEFT_UP
} avf_direction_t;
 
// --------------------------------------------------------------------
//
import video_frame_pkg::*;
 
class axis_video_frame_class #(BYTES_PER_PIXEL = 2, AVF_OUTPUTS = 1) extends video_frame_class;
 
localparam AVF_N = BYTES_PER_PIXEL * AVF_OUTPUTS; // data bus width in bytes
localparam AVF_U = 1; // TUSER width
localparam AVF_B = BYTES_PER_PIXEL * 8; // bits per pixel on TDATA
int avf_width = 16;
int avf_height = 16;
// int unsigned avf_delay = 0;
string avf_name = "";
string avf_type = "";
virtual axis_if #(.N(AVF_N), .U(AVF_U)) avf_axis_if;
 
 
//--------------------------------------------------------------------
function new
(
virtual axis_if #(.N(AVF_N), .U(AVF_U)) avf_axis_if
);
 
super.new;
this.avf_axis_if = avf_axis_if;
 
endfunction: new
 
 
// --------------------------------------------------------------------
//
function void init
(
input int avf_width,
input int avf_height,
input int avf_bits_per_pixel,
input string avf_name,
input string avf_type
);
 
super.init
(
.pixels_per_line(avf_width),
.lines_per_frame(avf_height),
.bits_per_pixel(avf_bits_per_pixel)
);
 
this.avf_width = avf_width;
this.avf_height = avf_height;
this.avf_name = avf_name;
this.avf_type = avf_type;
 
if(avf_type == "rx")
begin
avf_axis_if.cb_s.tready <= 1;
end
else if(avf_type == "tx")
begin
avf_axis_if.cb_m.tvalid <= 0;
avf_axis_if.cb_m.tdata <= 0;
avf_axis_if.cb_m.tlast <= 0;
avf_axis_if.cb_m.tuser <= 0;
end
else
begin
$display("^^^ %16.t | %m | ERROR! avf_type %s is invalid", $time, avf_type);
end
 
$display("^^^ %16.t | %m | initialization of %s for %s", $time, avf_name, avf_type);
 
endfunction: init
 
// --------------------------------------------------------------------
//
task automatic
avf_direction
(
input avf_direction_t direction,
output frame_coordinate_t inc
);
 
case(direction)
RIGHT_DOWN: inc = '{ 1, 1};
RIGHT_UP: inc = '{ 1, -1};
LEFT_DOWN: inc = '{-1, 1};
LEFT_UP: inc = '{-1, -1};
default: $display("^^^ %16.t | %m | ERROR!!! Incorrect AVF direction.", $time );
endcase
 
endtask: avf_direction
 
// --------------------------------------------------------------------
//
task automatic
set_tready
(
input data
);
 
avf_axis_if.cb_s.tready <= data;
 
endtask: set_tready
 
 
// --------------------------------------------------------------------
//
task automatic
avf_calculate
(
input avf_direction_t direction,
output frame_coordinate_t start,
output frame_coordinate_t inc,
output int x_end,
output int y_end,
output int x_eol
);
 
case(direction)
RIGHT_DOWN: start = '{0, 0 };
RIGHT_UP: start = '{0, avf_height - 1 };
LEFT_DOWN: start = '{avf_width - 1, 0 };
LEFT_UP: start = '{avf_width - 1, avf_height - 1 };
default: $display("^^^ %16.t | %m | [%04d, %04d] | ERROR!!! Incorrect AVF direction.", $time, start.x, start.y );
endcase
 
avf_direction(direction, inc);
 
x_end = (start.x + (avf_width * inc.x));
y_end = (start.y + (avf_height * inc.y));
inc.x *= AVF_OUTPUTS; // increment stride by number of outputs
x_eol = x_end - inc.x;
// $display("^^^ %16.t | %m | [%04d, %04d] | inc.x = %d", $time, start.x, start.y, inc.x);
// $display("^^^ %16.t | %m | [%04d, %04d] | inc.y = %d", $time, start.x, start.y, inc.y);
// $display("^^^ %16.t | %m | [%04d, %04d] | x_end = %d", $time, start.x, start.y, x_end);
// $display("^^^ %16.t | %m | [%04d, %04d] | y_end = %d", $time, start.x, start.y, y_end);
// $display("^^^ %16.t | %m | [%04d, %04d] | x_eol = %d", $time, start.x, start.y, x_eol);
 
endtask: avf_calculate
 
 
// --------------------------------------------------------------------
//
task automatic
debug_print
(
int l,
int p
);
$display("^^^ %16.t | %m | AVF %s configured for %s", $time, avf_name, avf_type);
 
if((p == 0))
$display("^^^ %16.t | %m || [%04d, %04d] = 0x%06x", $time, p, l, this.lines[l].pixel[p]);
 
if((p == 1))
$display("^^^ %16.t | %m || [%04d, %04d] = 0x%06x", $time, p, l, this.lines[l].pixel[p]);
 
if((p == 2))
$display("^^^ %16.t | %m || [%04d, %04d] = 0x%06x", $time, p, l, this.lines[l].pixel[p]);
 
if((p == 157))
$display("^^^ %16.t | %m || [%04d, %04d] = 0x%06x", $time, p, l, this.lines[l].pixel[p]);
 
if((p == 158))
$display("^^^ %16.t | %m || [%04d, %04d] = 0x%06x", $time, p, l, this.lines[l].pixel[p]);
 
if((p == 159))
$display("^^^ %16.t | %m || [%04d, %04d] = 0x%06x", $time, p, l, this.lines[l].pixel[p]);
 
endtask: debug_print
 
// --------------------------------------------------------------------
//
task automatic
avf_rx
(
input avf_direction_t direction
);
frame_coordinate_t start;
frame_coordinate_t inc;
int x_end;
int y_end;
int x_eol;
int pixel_count = 0;
int l;
int p;
 
avf_calculate
(
.start(start),
.direction(direction),
.inc(inc),
.x_end(x_end),
.y_end(y_end),
.x_eol(x_eol)
);
 
fork
begin
 
$display("^^^ %16.t | %m | %s_%s |", $time, avf_name, avf_type);
 
wait(avf_axis_if.cb_s.tuser & avf_axis_if.cb_s.tvalid);
 
for(l = start.y; y_end != l; l = l + inc.y)
for(p = start.x; x_end != p; p = p + inc.x)
begin
 
wait(avf_axis_if.cb_s.tvalid);
 
for(int i = 0; i < AVF_OUTPUTS; i++)
this.lines[l].pixel[p + i] = avf_axis_if.cb_s.tdata[i*AVF_B +: AVF_B];
 
if(p == x_eol)
if(~avf_axis_if.cb_s.tlast)
$display("^^^ %16.t | %m | [%04d, %04d] | %s_%s | ERROR! x_eol without tlast | x_eol = %04d | 0x%06x", $time, p, l, avf_name, avf_type, x_eol, this.lines[l].pixel[p]);
 
if(avf_axis_if.cb_s.tlast)
if(p != x_eol)
$display("^^^ %16.t | %m | [%04d, %04d] | %s_%s | ERROR! tlast without x_eol | x_eol = %04d | 0x%06x", $time, p, l, avf_name, avf_type, x_eol, this.lines[l].pixel[p]);
 
@(avf_axis_if.cb_s);
 
end
end
join_none
 
#0;
 
endtask: avf_rx
 
// --------------------------------------------------------------------
//
task automatic
output_pixels
(
input int l,
input int p
);
for(int i = 0; i < AVF_OUTPUTS; i++)
avf_axis_if.cb_m.tdata[i*AVF_B +: AVF_B] <= this.lines[l].pixel[p + i];
endtask: output_pixels
 
// --------------------------------------------------------------------
//
task automatic
avf_tx
(
input avf_direction_t direction,
input int unsigned avf_delay
);
frame_coordinate_t start;
frame_coordinate_t inc;
int x_end;
int y_end;
int x_eol;
int pixel_count = 0;
int l;
int p;
avf_calculate
(
.start(start),
.direction(direction),
.inc(inc),
.x_end(x_end),
.y_end(y_end),
.x_eol(x_eol)
);
 
fork
begin
@(avf_axis_if.cb_m);
repeat(avf_delay) @(avf_axis_if.cb_m);
 
$display("^^^ %16.t | %m | %s_%s |", $time, avf_name, avf_type);
 
avf_axis_if.cb_m.tvalid <= 1; // assert first pixel
avf_axis_if.cb_m.tuser <= 1;
output_pixels(start.y, start.x);
for(l = start.y; y_end != l; l = l + inc.y)
for(p = start.x; x_end != p; p = p + inc.x)
begin
if((l == start.y) & (p == start.x)) // first pixel already asserted
continue;
@(avf_axis_if.cb_m iff avf_axis_if.cb_m.tready)
begin
avf_axis_if.cb_m.tvalid <= 1;
output_pixels(l, p);
// if((l == start.y) & (p == start.x))
// debug_print(l, p);
avf_axis_if.cb_m.tuser <= 0;
if(p == x_eol)
avf_axis_if.cb_m.tlast <= 1;
else
avf_axis_if.cb_m.tlast <= 0;
 
end
end
@(avf_axis_if.cb_m)
begin
avf_axis_if.cb_m.tlast <= 0;
avf_axis_if.cb_m.tvalid <= 0;
end
 
end
join_none
 
endtask: avf_tx
 
 
// --------------------------------------------------------------------
//
 
endclass: axis_video_frame_class
 
endpackage: axis_video_frame_pkg
 
/trunk/axis_video_frame_class/src/avf_rx.sv
0,0 → 1,195
//////////////////////////////////////////////////////////////////////
//// ////
//// Copyright (C) 2015 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 ////
//// ////
//////////////////////////////////////////////////////////////////////
 
 
module
avf_rx
#(
BYTES_PER_PIXEL = 2,
AVF_OUTPUTS = 4,
AVF_TILES = 1
)
(
input aclk,
input aresetn
);
 
// --------------------------------------------------------------------
//
import axis_video_frame_pkg::*;
localparam AVF_N = BYTES_PER_PIXEL * AVF_OUTPUTS; // data bus width in bytes
localparam AVF_U = 1; // TUSER width
localparam AVF_B = BYTES_PER_PIXEL * 8; // bits per pixel on TDATA
 
axis_if #(.N(AVF_N), .U(AVF_U)) avf_axis[AVF_TILES](.*);
 
for(genvar j = 0; j < AVF_TILES; j++)
assign avf_axis[j].tready = 1;
 
 
// --------------------------------------------------------------------
//
axis_video_frame_class #(BYTES_PER_PIXEL, AVF_OUTPUTS) f_tx_h[AVF_TILES];
 
for(genvar j = 0; j < AVF_TILES; j++)
initial
begin
f_tx_h[j] = new(avf_axis[j]);
 
f_tx_h[j].init
(
.avf_width(32),
.avf_height(16),
.avf_bits_per_pixel(16),
.avf_name("AVF"),
.avf_type("tx")
);
 
f_tx_h[j].make_counting();
end
 
 
// --------------------------------------------------------------------
//
axis_video_frame_class #(BYTES_PER_PIXEL, AVF_OUTPUTS) f_rx_h[AVF_TILES];
 
for(genvar j = 0; j < AVF_TILES; j++)
initial
begin
f_rx_h[j] = new(avf_axis[j]);
 
f_rx_h[j].init
(
.avf_width(32),
.avf_height(16),
.avf_bits_per_pixel(16),
.avf_name("AVF"),
.avf_type("rx")
);
end
 
 
// --------------------------------------------------------------------
//
logic put_frame_active = 0;
 
task automatic
put_frame;
 
if(put_frame_active)
begin
$display("^^^ %16.t | %m | ERROR! Already put a frame.", $time);
return;
end
 
$display("^^^ %16.t | %m | Putting a frame.", $time);
put_frame_active = 1;
 
fork
begin
 
foreach(f_tx_h[i])
f_tx_h[i].avf_tx(RIGHT_DOWN, 0);
 
wait fork;
put_frame_active = 0;
$display("^^^ %16.t | %m | Put a frame.", $time);
 
end
join_none
 
 
endtask: put_frame
 
 
// --------------------------------------------------------------------
//
logic get_frame_active = 0;
 
task automatic
get_frame;
 
if(get_frame_active)
begin
$display("^^^ %16.t | %m | ERROR! Already getting a frame.", $time);
return;
end
 
$display("^^^ %16.t | %m | getting a frame.", $time);
get_frame_active = 1;
 
fork
begin
 
foreach(f_rx_h[i])
f_rx_h[i].avf_rx(RIGHT_DOWN);
 
wait fork;
get_frame_active = 0;
$display("^^^ %16.t | %m | Got a frame.", $time);
 
end
join_none
 
 
endtask: get_frame
 
 
// --------------------------------------------------------------------
//
import video_frame_pkg::*;
video_frame_class f_h;
 
function automatic
int compare_frame;
 
int mismatch_count[AVF_TILES];
 
foreach(f_rx_h[i])
begin
 
$display("^^^ %16.t | %m | Got a frame.", $time);
 
f_h = f_tx_h[i];
 
mismatch_count[i] = f_rx_h[i].compare(8, f_h);
end
 
 
endfunction: compare_frame
 
 
// --------------------------------------------------------------------
//
for(genvar j = 0; j < AVF_TILES; j++)
axis_video_debug #(BYTES_PER_PIXEL, AVF_OUTPUTS) avf_debug(avf_axis[j]);
 
 
endmodule
 
 
 
/trunk/axis_video_frame_class/src/avf_tx.sv
0,0 → 1,195
//////////////////////////////////////////////////////////////////////
//// ////
//// Copyright (C) 2015 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 ////
//// ////
//////////////////////////////////////////////////////////////////////
 
 
module
avf_tx
#(
BYTES_PER_PIXEL = 2,
AVF_OUTPUTS = 4,
AVF_TILES = 1
)
(
input aclk,
input aresetn
);
 
// --------------------------------------------------------------------
//
import axis_video_frame_pkg::*;
localparam AVF_N = BYTES_PER_PIXEL * AVF_OUTPUTS; // data bus width in bytes
localparam AVF_U = 1; // TUSER width
localparam AVF_B = BYTES_PER_PIXEL * 8; // bits per pixel on TDATA
 
axis_if #(.N(AVF_N), .U(AVF_U)) avf_axis[AVF_TILES](.*);
 
for(genvar j = 0; j < AVF_TILES; j++)
assign avf_axis[j].tready = 1;
 
 
// --------------------------------------------------------------------
//
axis_video_frame_class #(BYTES_PER_PIXEL, AVF_OUTPUTS) f_tx_h[AVF_TILES];
 
for(genvar j = 0; j < AVF_TILES; j++)
initial
begin
f_tx_h[j] = new(avf_axis[j]);
 
f_tx_h[j].init
(
.avf_width(32),
.avf_height(16),
.avf_bits_per_pixel(16),
.avf_name("AVF"),
.avf_type("tx")
);
 
f_tx_h[j].make_counting();
end
 
 
// --------------------------------------------------------------------
//
axis_video_frame_class #(BYTES_PER_PIXEL, AVF_OUTPUTS) f_rx_h[AVF_TILES];
 
for(genvar j = 0; j < AVF_TILES; j++)
initial
begin
f_rx_h[j] = new(avf_axis[j]);
 
f_rx_h[j].init
(
.avf_width(32),
.avf_height(16),
.avf_bits_per_pixel(16),
.avf_name("AVF"),
.avf_type("rx")
);
end
 
 
// --------------------------------------------------------------------
//
logic put_frame_active = 0;
 
task automatic
put_frame;
 
if(put_frame_active)
begin
$display("^^^ %16.t | %m | ERROR! Already put a frame.", $time);
return;
end
 
$display("^^^ %16.t | %m | Putting a frame.", $time);
put_frame_active = 1;
 
fork
begin
 
foreach(f_tx_h[i])
f_tx_h[i].avf_tx(RIGHT_DOWN, 0);
 
wait fork;
put_frame_active = 0;
$display("^^^ %16.t | %m | Put a frame.", $time);
 
end
join_none
 
 
endtask: put_frame
 
 
// --------------------------------------------------------------------
//
logic get_frame_active = 0;
 
task automatic
get_frame;
 
if(get_frame_active)
begin
$display("^^^ %16.t | %m | ERROR! Already getting a frame.", $time);
return;
end
 
$display("^^^ %16.t | %m | getting a frame.", $time);
get_frame_active = 1;
 
fork
begin
 
foreach(f_rx_h[i])
f_rx_h[i].avf_rx(RIGHT_DOWN);
 
wait fork;
get_frame_active = 0;
$display("^^^ %16.t | %m | Got a frame.", $time);
 
end
join_none
 
 
endtask: get_frame
 
 
// --------------------------------------------------------------------
//
import video_frame_pkg::*;
video_frame_class f_h;
 
function automatic
int compare_frame;
 
int mismatch_count[AVF_TILES];
 
foreach(f_rx_h[i])
begin
 
$display("^^^ %16.t | %m | Got a frame.", $time);
 
f_h = f_tx_h[i];
 
mismatch_count[i] = f_rx_h[i].compare(8, f_h);
end
 
 
endfunction: compare_frame
 
 
// --------------------------------------------------------------------
//
for(genvar j = 0; j < AVF_TILES; j++)
axis_video_debug #(BYTES_PER_PIXEL, AVF_OUTPUTS) avf_debug(avf_axis[j]);
 
 
endmodule
 
 
 
/trunk/axis_video_frame_class/sim/tests/tb_1_tile_4_outputs/wip.do
0,0 → 1,12
#
 
 
vlog -f ../../libs/sim_verilog/avf.f
 
# simulation $root
vlog ../../src/tb_1_tile_4_outputs.sv
 
# compile test last
vlog ./the_test.sv
 
/trunk/axis_video_frame_class/sim/tests/tb_1_tile_4_outputs/init_test.do
0,0 → 1,33
# ------------------------------------
#
# ------------------------------------
 
global env
 
set env(ROOT_DIR) ../../../../..
set env(PROJECT_DIR) ../../..
set env(SIM_TARGET) fpga
 
# load sim procedures
do $env(ROOT_DIR)/qaz_libs/scripts/sim_procs.do
 
radix -hexadecimal
 
make_lib work 1
 
# sim_compile_all FPGA
sim_compile_all sim
 
# simulation $root
vlog $env(PROJECT_DIR)/sim/src/tb_1_tile_4_outputs.sv
 
# compile test last
vlog ./the_test.sv
 
# vopt work.glbl tb_top -L secureip -L simprims_ver -L unisims_ver -f opt_tb_top.f -o opt_tb_top
 
# run the sim
sim_run_test
 
 
 
/trunk/axis_video_frame_class/sim/tests/tb_1_tile_4_outputs/the_test.sv
0,0 → 1,79
//////////////////////////////////////////////////////////////////////
//// ////
//// Copyright (C) 2015 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 ////
//// ////
//////////////////////////////////////////////////////////////////////
 
 
module
the_test(
input tb_clk,
input tb_rst
);
// --------------------------------------------------------------------
//
int mismatch_count = 0;
// --------------------------------------------------------------------
//
task run_the_test;
 
// --------------------------------------------------------------------
// insert test below
// --------------------------------------------------------------------
$display("^^^---------------------------------");
$display("^^^ %16.t | Testbench begun.\n", $time);
$display("^^^---------------------------------");
 
tb_top.tb.timeout_stop(500us);
 
wait(~tb_rst);
 
repeat(100) @(posedge tb_clk);
tb_top.avf_bfm.get_frame();
tb_top.avf_bfm.put_frame();
 
wait(~tb_top.avf_bfm.put_frame_active);
wait(~tb_top.avf_bfm.get_frame_active);
mismatch_count = tb_top.avf_bfm.compare_frame();
tb_top.avf_bfm.f_rx_h[0].lines[1].pixel[1] = 0;
mismatch_count = tb_top.avf_bfm.compare_frame();
repeat(100) @(posedge tb_clk);
 
// --------------------------------------------------------------------
// insert test above
// --------------------------------------------------------------------
 
endtask
 
 
endmodule
 
/trunk/axis_video_frame_class/sim/tests/tb_1_tile_4_outputs/sim.do
0,0 → 1,21
#
#
 
 
quit -sim
 
# vsim opt_tb_top
 
vsim -novopt work.tb_top
# vsim -novopt -L secureip -L simprims_ver -L unisims_ver work.glbl work.tb_top
 
# vsim -voptargs="+acc=rn+/tb_top/dut" -L secureip -L simprims_ver -L unisims_ver work.glbl work.tb_top
# vsim -pli "C:/Xilinx/Vivado/2015.4/lib/win64.o/libxil_vsim.dll" -novopt -L secureip -L simprims_ver -L unisims_ver work.glbl work.tb_top
 
 
# # log all signals
# log -r *
 
# run -all
 
 
/trunk/axis_video_frame_class/sim/tests/tb_4_tile_1_outputs/wip.do
0,0 → 1,12
#
 
 
vlog -f ../../libs/sim_verilog/avf.f
 
# simulation $root
vlog ../../src/tb_4_tile_1_outputs.sv
 
# compile test last
vlog ./the_test.sv
 
/trunk/axis_video_frame_class/sim/tests/tb_4_tile_1_outputs/init_test.do
0,0 → 1,33
# ------------------------------------
#
# ------------------------------------
 
global env
 
set env(ROOT_DIR) ../../../../..
set env(PROJECT_DIR) ../../..
set env(SIM_TARGET) fpga
 
# load sim procedures
do $env(ROOT_DIR)/qaz_libs/scripts/sim_procs.do
 
radix -hexadecimal
 
make_lib work 1
 
# sim_compile_all FPGA
sim_compile_all sim
 
# simulation $root
vlog $env(PROJECT_DIR)/sim/src/tb_4_tile_1_outputs.sv
 
# compile test last
vlog ./the_test.sv
 
# vopt work.glbl tb_top -L secureip -L simprims_ver -L unisims_ver -f opt_tb_top.f -o opt_tb_top
 
# run the sim
sim_run_test
 
 
 
/trunk/axis_video_frame_class/sim/tests/tb_4_tile_1_outputs/the_test.sv
0,0 → 1,79
//////////////////////////////////////////////////////////////////////
//// ////
//// Copyright (C) 2015 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 ////
//// ////
//////////////////////////////////////////////////////////////////////
 
 
module
the_test(
input tb_clk,
input tb_rst
);
// --------------------------------------------------------------------
//
int mismatch_count = 0;
// --------------------------------------------------------------------
//
task run_the_test;
 
// --------------------------------------------------------------------
// insert test below
// --------------------------------------------------------------------
$display("^^^---------------------------------");
$display("^^^ %16.t | Testbench begun.\n", $time);
$display("^^^---------------------------------");
 
tb_top.tb.timeout_stop(500us);
 
wait(~tb_rst);
 
repeat(100) @(posedge tb_clk);
tb_top.avf_bfm.get_frame();
tb_top.avf_bfm.put_frame();
 
wait(~tb_top.avf_bfm.put_frame_active);
wait(~tb_top.avf_bfm.get_frame_active);
mismatch_count = tb_top.avf_bfm.compare_frame();
tb_top.avf_bfm.f_rx_h[0].lines[1].pixel[1] = 0;
mismatch_count = tb_top.avf_bfm.compare_frame();
repeat(100) @(posedge tb_clk);
 
// --------------------------------------------------------------------
// insert test above
// --------------------------------------------------------------------
 
endtask
 
 
endmodule
 
/trunk/axis_video_frame_class/sim/tests/tb_4_tile_1_outputs/sim.do
0,0 → 1,21
#
#
 
 
quit -sim
 
# vsim opt_tb_top
 
vsim -novopt work.tb_top
# vsim -novopt -L secureip -L simprims_ver -L unisims_ver work.glbl work.tb_top
 
# vsim -voptargs="+acc=rn+/tb_top/dut" -L secureip -L simprims_ver -L unisims_ver work.glbl work.tb_top
# vsim -pli "C:/Xilinx/Vivado/2015.4/lib/win64.o/libxil_vsim.dll" -novopt -L secureip -L simprims_ver -L unisims_ver work.glbl work.tb_top
 
 
# # log all signals
# log -r *
 
# run -all
 
 
/trunk/axis_video_frame_class/sim/src/tb_4_tile_1_outputs.sv
0,0 → 1,94
//////////////////////////////////////////////////////////////////////
//// ////
//// Copyright (C) 2015 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 ////
//// ////
//////////////////////////////////////////////////////////////////////
 
 
module tb_top();
 
// --------------------------------------------------------------------
// test bench clock & reset
wire clk_200mhz;
wire tb_clk = clk_200mhz;
wire tb_rst;
 
tb_base #( .PERIOD(5_000) ) tb( clk_200mhz, tb_rst );
 
 
// --------------------------------------------------------------------
//
wire aclk = tb_clk;
wire aresetn = ~tb_rst;
 
axis_video_frame #(.BYTES_PER_PIXEL(2), .AVF_OUTPUTS(1), .AVF_TILES(4))
avf_bfm(.*);
 
// --------------------------------------------------------------------
// sim models
// | | | | | | | | | | | | | | | | |
// \|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/
// ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' '
 
// --------------------------------------------------------------------
//
 
 
 
 
// ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' '
// /|\-/|\-/|\-/|\-/|\-/|\-/|\-/|\-/|\-/|\-/|\-/|\-/|\-/|\-/|\-/|\-/|\
// | | | | | | | | | | | | | | | | |
// sim models
// --------------------------------------------------------------------
 
 
// --------------------------------------------------------------------
// debug wires
 
 
// --------------------------------------------------------------------
// test
the_test test( tb_clk, tb_rst );
 
initial
begin
 
test.run_the_test();
 
$display("^^^---------------------------------");
$display("^^^ %16.t | Testbench done.", $time);
$display("^^^---------------------------------");
 
$display("^^^---------------------------------");
 
$stop();
 
end
 
endmodule
 
 
 
/trunk/axis_video_frame_class/sim/src/tb_1_tile_4_outputs.sv
0,0 → 1,94
//////////////////////////////////////////////////////////////////////
//// ////
//// Copyright (C) 2015 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 ////
//// ////
//////////////////////////////////////////////////////////////////////
 
 
module tb_top();
 
// --------------------------------------------------------------------
// test bench clock & reset
wire clk_200mhz;
wire tb_clk = clk_200mhz;
wire tb_rst;
 
tb_base #( .PERIOD(5_000) ) tb( clk_200mhz, tb_rst );
 
 
// --------------------------------------------------------------------
//
wire aclk = tb_clk;
wire aresetn = ~tb_rst;
 
axis_video_frame #(.BYTES_PER_PIXEL(2), .AVF_OUTPUTS(4), .AVF_TILES(1))
avf_bfm(.*);
 
// --------------------------------------------------------------------
// sim models
// | | | | | | | | | | | | | | | | |
// \|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/
// ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' '
 
// --------------------------------------------------------------------
//
 
 
 
 
// ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' '
// /|\-/|\-/|\-/|\-/|\-/|\-/|\-/|\-/|\-/|\-/|\-/|\-/|\-/|\-/|\-/|\-/|\
// | | | | | | | | | | | | | | | | |
// sim models
// --------------------------------------------------------------------
 
 
// --------------------------------------------------------------------
// debug wires
 
 
// --------------------------------------------------------------------
// test
the_test test( tb_clk, tb_rst );
 
initial
begin
 
test.run_the_test();
 
$display("^^^---------------------------------");
$display("^^^ %16.t | Testbench done.", $time);
$display("^^^---------------------------------");
 
$display("^^^---------------------------------");
 
$stop();
 
end
 
endmodule
 
 
 
/trunk/axis_video_frame_class/sim/src/tb_top.sv
0,0 → 1,229
//////////////////////////////////////////////////////////////////////
//// ////
//// Copyright (C) 2015 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 ////
//// ////
//////////////////////////////////////////////////////////////////////
 
 
module tb_top();
 
// --------------------------------------------------------------------
// test bench clock & reset
wire clk_200mhz;
wire tb_clk = clk_200mhz;
wire tb_rst;
 
tb_base #( .PERIOD(5_000) ) tb( clk_200mhz, tb_rst );
 
 
// --------------------------------------------------------------------
//
import axis_video_frame_pkg::*;
localparam BYTES_PER_PIXEL = 2;
localparam AVF_OUTPUTS = 4;
localparam AVF_TILES = 1;
localparam AVF_N = BYTES_PER_PIXEL * AVF_OUTPUTS; // data bus width in bytes
localparam AVF_U = 1; // TUSER width
localparam AVF_B = BYTES_PER_PIXEL * 8; // bits per pixel on TDATA
 
axis_if #(.N(AVF_N), .U(AVF_U)) avf_axis(.*);
 
assign avf_axis.tready = 1;
 
 
// --------------------------------------------------------------------
//
wire aclk = tb_clk;
wire aresetn = ~tb_rst;
 
axis_video_frame_class #(BYTES_PER_PIXEL, AVF_OUTPUTS) f_tx_h;
 
initial
begin
f_tx_h = new(avf_axis);
 
f_tx_h.init
(
.avf_width(32),
.avf_height(16),
.avf_bits_per_pixel(16),
.avf_name("AVF"),
.avf_type("tx")
);
 
f_tx_h.make_counting();
end
 
 
// --------------------------------------------------------------------
//
axis_video_frame_class #(BYTES_PER_PIXEL, AVF_OUTPUTS) f_rx_h;
 
initial
begin
f_rx_h = new(avf_axis);
 
f_rx_h.init
(
.avf_width(32),
.avf_height(16),
.avf_bits_per_pixel(16),
.avf_name("AVF"),
.avf_type("rx")
);
end
 
// --------------------------------------------------------------------
// sim models
// | | | | | | | | | | | | | | | | |
// \|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/
// ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' '
 
// --------------------------------------------------------------------
//
logic put_frame_active = 0;
 
task automatic
put_frame;
 
if(put_frame_active)
begin
$display("^^^ %16.t | %m | ERROR! Already put a frame.", $time);
return;
end
 
$display("^^^ %16.t | %m | Putting a frame.", $time);
put_frame_active = 1;
 
fork
begin
 
// foreach(f_tx_h[i])
f_tx_h.avf_tx(RIGHT_DOWN, 0);
 
wait fork;
put_frame_active = 0;
$display("^^^ %16.t | %m | Put a frame.", $time);
 
end
join_none
 
 
endtask: put_frame
 
 
// --------------------------------------------------------------------
//
logic get_frame_active = 0;
 
task automatic
get_frame;
 
if(get_frame_active)
begin
$display("^^^ %16.t | %m | ERROR! Already getting a frame.", $time);
return;
end
 
$display("^^^ %16.t | %m | getting a frame.", $time);
get_frame_active = 1;
 
fork
begin
 
// foreach(f_rx_h[i])
f_rx_h.avf_rx(RIGHT_DOWN);
 
wait fork;
get_frame_active = 0;
$display("^^^ %16.t | %m | Got a frame.", $time);
 
end
join_none
 
 
endtask: get_frame
 
 
// --------------------------------------------------------------------
//
import video_frame_pkg::*;
video_frame_class f_h;
function automatic
int compare_frame;
 
int mismatch_count = 0;
 
$display("^^^ %16.t | %m | Got a frame.", $time);
f_h = f_tx_h;
 
mismatch_count = f_rx_h.compare(8, f_h);
 
 
endfunction: compare_frame
 
 
// --------------------------------------------------------------------
//
axis_video_debug #(BYTES_PER_PIXEL, AVF_OUTPUTS) avf_debug(avf_axis);
 
 
 
 
// ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' '
// /|\-/|\-/|\-/|\-/|\-/|\-/|\-/|\-/|\-/|\-/|\-/|\-/|\-/|\-/|\-/|\-/|\
// | | | | | | | | | | | | | | | | |
// sim models
// --------------------------------------------------------------------
 
 
// --------------------------------------------------------------------
// debug wires
 
 
// --------------------------------------------------------------------
// test
the_test test( tb_clk, tb_rst );
 
initial
begin
 
test.run_the_test();
 
$display("^^^---------------------------------");
$display("^^^ %16.t | Testbench done.", $time);
$display("^^^---------------------------------");
 
$display("^^^---------------------------------");
 
$stop();
 
end
 
endmodule
 
 
 
/trunk/axis_video_frame_class/sim/libs/sim_verilog/tb_lib.f
0,0 → 1,16
#
 
-mfcu
 
${ROOT_DIR}/qaz_libs/tb_class/src/tb_clk_class.sv
 
${ROOT_DIR}/qaz_libs/tb_class/src/tb_clk.sv
${ROOT_DIR}/qaz_libs/tb_class/src/tb_base.sv
 
 
 
 
 
 
 
 
/trunk/axis_video_frame_class/sim/libs/sim_verilog/avf.f
0,0 → 1,8
#
 
-mfcu
 
${ROOT_DIR}/qaz_libs/video_frame_class/src/video_frame_pkg.sv
${ROOT_DIR}/qaz_libs/axis_video_frame_class/src/axis_video_frame_pkg.sv
${ROOT_DIR}/qaz_libs/axis_video_frame_class/src/axis_video_frame.sv
 
/trunk/axis_video_frame_class/sim/libs/sim_verilog/axis.f
0,0 → 1,8
#
 
-mfcu
 
${ROOT_DIR}/qaz_libs/axi4_stream_lib/src/axis_if.sv
${ROOT_DIR}/qaz_libs/axi4_stream_lib/src/axis_video_debug.sv
${ROOT_DIR}/qaz_libs/axi4_stream_lib/src/data_to_axis_fsm.sv
 
/trunk/tb_class/src/tb_base.sv
22,15 → 22,15
(
input time reset_assert
);
 
reset = 1;
$display( "-#- %16.t | %m | reset asserted!", $time );
 
#reset_assert;
 
reset = 0;
$display( "-#- %16.t | %m | reset deasserted!", $time );
 
endtask
 
 
40,13 → 40,13
(
input time timeout
);
 
$display("-#- %16.t | %m | timeout_stop at %t", $time, timeout);
 
fork
#(timeout) $stop;
join_none
 
endtask
 
 
57,25 → 57,26
assign clock = tb_clk_driver.clk;
time reset_assert = (PERIOD * 5) + (PERIOD / 3);
logic init_done = 0;
 
initial
begin
 
reset = 1;
 
tb_clk_c = new( tb_clk_driver );
 
if( PERIOD != 0 )
tb_clk_c.init_basic_clock( PERIOD );
 
if( ASSERT_TIME != 0 )
assert_reset( ASSERT_TIME );
else if( reset_assert != 0 )
assert_reset( reset_assert );
 
init_done = 1;
 
end
endmodule
 
 
trunk/axi4_lib Property changes : Deleted: svn:global-ignores ## -1 +0,0 ## -reference Index: trunk/video_frame_class/src/video_frame_pkg.sv =================================================================== --- trunk/video_frame_class/src/video_frame_pkg.sv (revision 24) +++ trunk/video_frame_class/src/video_frame_pkg.sv (revision 23) @@ -44,8 +44,6 @@ rand int lines_per_frame; rand int bits_per_pixel; line_s lines[]; - string name = ""; - string pattern = ""; constraint default_pixels_per_line { @@ -72,42 +70,13 @@ this.frame_id = 0; endfunction: new - - // -------------------------------------------------------------------- - // - function void init + extern function void init ( - input int pixels_per_line, - input int lines_per_frame, - input int bits_per_pixel, - string name = "" + input int pixels_per_line, + input int lines_per_frame, + input int bits_per_pixel ); - $display("^^^ %16.t | %m", $time); - - this.pixels_per_line = pixels_per_line; - this.lines_per_frame = lines_per_frame; - this.bits_per_pixel = bits_per_pixel; - this.name = name; - - this.make_constant( 0 ); - - endfunction: init - - - // -------------------------------------------------------------------- - // - extern virtual task write_pixel - ( - input frame_coordinate_t coordinate, - input int pixel - ); - - extern virtual function int read_pixel - ( - input frame_coordinate_t coordinate - ); - extern virtual function void make_constant ( input int pixel @@ -115,25 +84,19 @@ extern virtual function void make_counting(); - extern virtual function void make_horizontal(); - - extern virtual function void make_vertical(); - extern virtual function void make_random(); extern virtual function void copy ( - ref video_frame_class from + ref video_frame_class to ); - extern virtual function video_frame_class clone(); - extern virtual function int compare ( input int max_mismatches, ref video_frame_class to ); - + extern virtual function void print_line ( input int line, @@ -141,37 +104,29 @@ input int count ); - extern virtual function void print_config(); - endclass: video_frame_class // -------------------------------------------------------------------- // - task - video_frame_class::write_pixel - ( - input frame_coordinate_t coordinate, - input int pixel - ); - - this.lines[coordinate.y].pixel[coordinate.x] = pixel; - - endtask: write_pixel - - - // -------------------------------------------------------------------- - // - function int video_frame_class::read_pixel + function void video_frame_class::init ( - input frame_coordinate_t coordinate + input int pixels_per_line, + input int lines_per_frame, + input int bits_per_pixel ); + + $display("^^^ %16.t | %m", $time); + + this.pixels_per_line = pixels_per_line; + this.lines_per_frame = lines_per_frame; + this.bits_per_pixel = bits_per_pixel; + + this.make_constant( 0 ); + + endfunction: init - read_pixel = this.lines[coordinate.y].pixel[coordinate.x]; - endfunction: read_pixel - - // -------------------------------------------------------------------- // function void video_frame_class::make_constant @@ -178,7 +133,7 @@ ( input int pixel ); - + $display("^^^ %16.t | %m", $time); this.lines = new[lines_per_frame]; @@ -193,8 +148,6 @@ end - pattern = "constant"; - endfunction: make_constant @@ -201,7 +154,7 @@ // -------------------------------------------------------------------- // function void video_frame_class::make_counting(); - + $display("^^^ %16.t | %m", $time); this.lines = new[lines_per_frame]; @@ -216,61 +169,13 @@ end - pattern = "counting"; - endfunction: make_counting // -------------------------------------------------------------------- // - function void video_frame_class::make_horizontal(); - - $display("^^^ %16.t | %m", $time); - - this.lines = new[lines_per_frame]; - - foreach( this.lines[l] ) - begin - - this.lines[l].pixel = new[pixels_per_line]; - - foreach( this.lines[l].pixel[p] ) - this.lines[l].pixel[p] = p; - - end - - pattern = "horizontal"; - - endfunction: make_horizontal - - - // -------------------------------------------------------------------- - // - function void video_frame_class::make_vertical(); - - $display("^^^ %16.t | %m", $time); - - this.lines = new[lines_per_frame]; - - foreach( this.lines[l] ) - begin - - this.lines[l].pixel = new[pixels_per_line]; - - foreach( this.lines[l].pixel[p] ) - this.lines[l].pixel[p] = l; - - end - - pattern = "vertical"; - - endfunction: make_vertical - - - // -------------------------------------------------------------------- - // function void video_frame_class::make_random(); - + $display("^^^ %16.t | %m", $time); this.lines = new[lines_per_frame]; @@ -285,8 +190,6 @@ end - pattern = "random"; - endfunction: make_random @@ -294,24 +197,26 @@ // function void video_frame_class::copy ( - ref video_frame_class from + ref video_frame_class to ); - + $display("^^^ %16.t | %m", $time); - this.frame_id = from.frame_id; - this.pixels_per_line = from.pixels_per_line; - this.lines_per_frame = from.lines_per_frame; - this.bits_per_pixel = from.bits_per_pixel; - this.name = from.name; - this.lines = new[lines_per_frame]; + to.frame_id = this.frame_id; + to.pixels_per_line = this.pixels_per_line; + to.lines_per_frame = this.lines_per_frame; + to.bits_per_pixel =this.bits_per_pixel ; + to.lines = new[lines_per_frame]; + foreach( this.lines[l] ) begin - this.lines[l].pixel = new[pixels_per_line]; + to.lines[l].pixel = new[pixels_per_line]; + foreach( this.lines[l].pixel[p] ) - this.lines[l].pixel[p] = from.lines[l].pixel[p]; + to.lines[l].pixel[p] = this.lines[l].pixel[p]; + end endfunction: copy @@ -318,18 +223,6 @@ // -------------------------------------------------------------------- // - function video_frame_class video_frame_class::clone(); - - $display("^^^ %16.t | %m", $time); - - clone = new(); - clone.copy(this); - - endfunction: clone - - - // -------------------------------------------------------------------- - // function int video_frame_class::compare ( input int max_mismatches, @@ -337,24 +230,24 @@ ); int mismatch_count = 0; - + $display("^^^ %16.t | %m", $time); if( to.pixels_per_line != this.pixels_per_line ) begin - $display( "^^^ %16.t | ERROR! to.pixels_per_line != this.pixels_per_line | %s", $time, name ); + $display( "^^^ %16.t | to.pixels_per_line != this.pixels_per_line", $time ); return( -1 ); end if( to.lines_per_frame != this.lines_per_frame ) begin - $display( "^^^ %16.t | ERROR! to.lines_per_frame != this.lines_per_frame | %s", $time, name ); + $display( "^^^ %16.t | to.lines_per_frame != this.lines_per_frame", $time ); return( -2 ); end if( to.bits_per_pixel != this.bits_per_pixel ) begin - $display( "^^^ %16.t | ERROR! to.bits_per_pixel != this.bits_per_pixel | %s", $time, name ); + $display( "^^^ %16.t | to.bits_per_pixel != this.bits_per_pixel", $time ); return( -3 ); end @@ -367,7 +260,7 @@ if( max_mismatches > 0 ) mismatch_count++; - $display( "^^^ %16.t | ERROR! mismatch @ frame[%4h][%4h] | to == %4h | this == %4h | %s", $time, l, p, to.lines[l].pixel[p], this.lines[l].pixel[p], name ); + $display( "^^^ %16.t | mismatch @ frame[%4h][%4h] | to == %4h | this == %4h ", $time, l, p, to.lines[l].pixel[p], this.lines[l].pixel[p] ); if( mismatch_count > max_mismatches ) return( mismatch_count ); @@ -390,25 +283,12 @@ ); $display("^^^ %16.t | %m", $time); - + for( int i = 0; i < count; i++ ) - $display( "^^^ %16.t | %4h @ frame[%4h][%4h] | %s", $time, this.lines[line].pixel[(pixel + i)], line, (pixel + i), name ); + $display( "^^^ %16.t | %4h @ frame[%4h][%4h]", $time, this.lines[line].pixel[(pixel + i)], line, (pixel + i) ); endfunction: print_line - // -------------------------------------------------------------------- - // - function void video_frame_class::print_config(); - - $display("^^^ %16.t | %m | frame_id = %06d | %s", $time, frame_id, name); - $display("^^^ %16.t | %m | pixels_per_line = %06d | %s", $time, pixels_per_line, name); - $display("^^^ %16.t | %m | lines_per_frame = %06d | %s", $time, lines_per_frame, name); - $display("^^^ %16.t | %m | bits_per_pixel = %06d | %s", $time, bits_per_pixel, name); - $display("^^^ %16.t | %m | pattern = %s | %s", $time, pattern, name); - - endfunction: print_config - - endpackage: video_frame_pkg
/trunk/cli/cli/sys_cmd.c
1,29 → 1,4
//////////////////////////////////////////////////////////////////////
//// ////
//// Copyright (C) 2015 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 ////
//// ////
//////////////////////////////////////////////////////////////////////
/*-----------------------------------------------------------*/
 
#include <stdio.h>
#include <stdlib.h>
/trunk/cli/cli/sys_cli.c
1,29 → 1,4
//////////////////////////////////////////////////////////////////////
//// ////
//// Copyright (C) 2015 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 ////
//// ////
//////////////////////////////////////////////////////////////////////
/*-----------------------------------------------------------*/
 
#include <stdio.h>
#include <stdlib.h>
/trunk/cli/cli/sys_cmd.h
1,33 → 1,8
//////////////////////////////////////////////////////////////////////
//// ////
//// Copyright (C) 2015 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 ////
//// ////
//////////////////////////////////////////////////////////////////////
/*-----------------------------------------------------------*/
 
 
#ifndef _QAZ_SYS_CMD_H_
#define _QAZ_SYS_CMD_H_
#ifndef _SYS_CMD_H_
#define _SYS_CMD_H_
 
#define INPUT_LINE_LENGTH 50
#define MAX_CMD_LENGTH 20
56,11 → 31,9
extern void sys_cli_task(void);
extern cli_cmd_tab_t *cli_find_command( cli_cmd_tab_t *cmd_to_check );
extern void cli_init( void );
extern char func_mw( const unsigned char argc, const char *argv[] );
extern char func_md( const unsigned char argc, const char *argv[] );
 
 
/*-----------------------------------------------------------*/
 
 
#endif // _QAZ_SYS_CMD_H_
#endif // _SYS_CMD_H_
/trunk/cli/cli/sys_error.c
1,29 → 1,4
//////////////////////////////////////////////////////////////////////
//// ////
//// Copyright (C) 2015 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 ////
//// ////
//////////////////////////////////////////////////////////////////////
/*-----------------------------------------------------------*/
 
void sys_error_fatal( unsigned int error )
{
/trunk/cli/cli/sys_error.h
1,32 → 1,7
//////////////////////////////////////////////////////////////////////
//// ////
//// Copyright (C) 2015 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 ////
//// ////
//////////////////////////////////////////////////////////////////////
/*-----------------------------------------------------------*/
 
#ifndef _QAZ_SYS_ERROR_H_
#define _QAZ_SYS_ERROR_H_
#ifndef _SYS_ERROR_H_
#define _SYS_ERROR_H_
 
typedef enum
{
38,5 → 13,5
/*-----------------------------------------------------------*/
void sys_error_fatal( unsigned int error );
 
#endif // _QAZ_SYS_ERROR_H_
#endif // _SYS_ERROR_H_
 
/trunk/cli/cli/sys_cmd_table.h
1,29 → 1,4
//////////////////////////////////////////////////////////////////////
//// ////
//// Copyright (C) 2015 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 ////
//// ////
//////////////////////////////////////////////////////////////////////
/*-----------------------------------------------------------*/
 
#include "sys_cmd.h"
 
/trunk/cli/util/util_bits.c
1,29 → 1,4
//////////////////////////////////////////////////////////////////////
//// ////
//// Copyright (C) 2015 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 ////
//// ////
//////////////////////////////////////////////////////////////////////
/*-----------------------------------------------------------*/
 
#include "util_bits.h"
 
/trunk/cli/util/uboot_lib.c
1,29 → 1,4
//////////////////////////////////////////////////////////////////////
//// ////
//// Copyright (C) 2015 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 ////
//// ////
//////////////////////////////////////////////////////////////////////
/*-----------------------------------------------------------*/
 
#include "uboot_lib.h"
 
/trunk/cli/util/util_mem.h
1,29 → 1,4
//////////////////////////////////////////////////////////////////////
//// ////
//// Copyright (C) 2015 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 ////
//// ////
//////////////////////////////////////////////////////////////////////
/*-----------------------------------------------------------*/
 
#ifndef _UTIL_MEM_H_
#define _UTIL_MEM_H_
/trunk/cli/util/util_bits.h
1,29 → 1,4
//////////////////////////////////////////////////////////////////////
//// ////
//// Copyright (C) 2015 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 ////
//// ////
//////////////////////////////////////////////////////////////////////
/*-----------------------------------------------------------*/
 
#ifndef _UTIL_BITS_H_
#define _UTIL_BITS_H_
/trunk/cli/util/uboot_lib.h
1,29 → 1,4
//////////////////////////////////////////////////////////////////////
//// ////
//// Copyright (C) 2015 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 ////
//// ////
//////////////////////////////////////////////////////////////////////
/*-----------------------------------------------------------*/
 
#ifndef _UBOOT_LIB_H_
#define _UBOOT_LIB_H_
/trunk/cli/util/util_mem.c
1,29 → 1,4
//////////////////////////////////////////////////////////////////////
//// ////
//// Copyright (C) 2015 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 ////
//// ////
//////////////////////////////////////////////////////////////////////
/*-----------------------------------------------------------*/
 
#include "util_mem.h"
 
/trunk/misc/bit_connect_big_to_little.v
1,29 → 1,6
//////////////////////////////////////////////////////////////////////
//// ////
//// Copyright (C) 2015 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 ////
//// ////
//////////////////////////////////////////////////////////////////////
// --------------------------------------------------------------------
//
// --------------------------------------------------------------------
 
 
module
/trunk/misc/bit_connect_little_to_big.v
1,29 → 1,6
//////////////////////////////////////////////////////////////////////
//// ////
//// Copyright (C) 2015 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 ////
//// ////
//////////////////////////////////////////////////////////////////////
// --------------------------------------------------------------------
//
// --------------------------------------------------------------------
 
 
module
/trunk/misc/synchronizer.v
1,29 → 1,6
//////////////////////////////////////////////////////////////////////
//// ////
//// Copyright (C) 2015 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 ////
//// ////
//////////////////////////////////////////////////////////////////////
// --------------------------------------------------------------------
//
// --------------------------------------------------------------------
 
 
module
/trunk/misc/bit_swap_big_to_little.v
1,29 → 1,6
//////////////////////////////////////////////////////////////////////
//// ////
//// Copyright (C) 2015 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 ////
//// ////
//////////////////////////////////////////////////////////////////////
// --------------------------------------------------------------------
//
// --------------------------------------------------------------------
 
 
module
/trunk/misc/bit_swap_little_to_big.v
1,29 → 1,6
//////////////////////////////////////////////////////////////////////
//// ////
//// Copyright (C) 2015 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 ////
//// ////
//////////////////////////////////////////////////////////////////////
// --------------------------------------------------------------------
//
// --------------------------------------------------------------------
 
 
module
/trunk/AXI/src/register_file.v
1,29 → 1,6
//////////////////////////////////////////////////////////////////////
//// ////
//// Copyright (C) 2015 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 ////
//// ////
//////////////////////////////////////////////////////////////////////
// --------------------------------------------------------------------
//
// --------------------------------------------------------------------
 
 
module
/trunk/AXI/src/wb_axi4lite_read_fsm.v
1,29 → 1,6
//////////////////////////////////////////////////////////////////////
//// ////
//// Copyright (C) 2015 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 ////
//// ////
//////////////////////////////////////////////////////////////////////
// --------------------------------------------------------------------
//
// --------------------------------------------------------------------
 
 
module
/trunk/AXI/src/wb_axi4lite_bridge.v
1,29 → 1,6
//////////////////////////////////////////////////////////////////////
//// ////
//// Copyright (C) 2015 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 ////
//// ////
//////////////////////////////////////////////////////////////////////
// --------------------------------------------------------------------
//
// --------------------------------------------------------------------
 
 
module
/trunk/AXI/src/wb_master_fsm.v
1,29 → 1,6
//////////////////////////////////////////////////////////////////////
//// ////
//// Copyright (C) 2015 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 ////
//// ////
//////////////////////////////////////////////////////////////////////
// --------------------------------------------------------------------
//
// --------------------------------------------------------------------
 
 
module
/trunk/AXI/src/wb_axi4lite_write_fsm.v
1,29 → 1,6
//////////////////////////////////////////////////////////////////////
//// ////
//// Copyright (C) 2015 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 ////
//// ////
//////////////////////////////////////////////////////////////////////
// --------------------------------------------------------------------
//
// --------------------------------------------------------------------
 
 
module
/trunk/AXI/src/reg_file_v1_0_S00_AXI.v
1,33 → 1,6
//////////////////////////////////////////////////////////////////////
//// ////
//// Copyright (C) 2015 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 ////
//// ////
//////////////////////////////////////////////////////////////////////
 
`timescale 1 ns / 1 ps
 
 
module reg_file_v1_0_S00_AXI #
(
// Users to add parameters here
/trunk/AXI/sim/src/tb_axi4lite_bfm_if.sv
1,29 → 1,5
//////////////////////////////////////////////////////////////////////
//// ////
//// Copyright (C) 2015 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 ////
//// ////
//////////////////////////////////////////////////////////////////////
// --------------------------------------------------------------------
//
 
 
interface
/trunk/AXI/sim/src/tb_unit_reg_file_v1_0_S00_AXI.sv
1,29 → 1,6
//////////////////////////////////////////////////////////////////////
//// ////
//// Copyright (C) 2015 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 ////
//// ////
//////////////////////////////////////////////////////////////////////
// --------------------------------------------------------------------
//
// --------------------------------------------------------------------
 
`ifndef AXI4PC_TYPES
`include "Axi4PC_ace_defs.v"
/trunk/AXI/sim/src/tb_unit_debug_unit_wb_axi4lite_bridge.sv
1,29 → 1,6
//////////////////////////////////////////////////////////////////////
//// ////
//// Copyright (C) 2015 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 ////
//// ////
//////////////////////////////////////////////////////////////////////
// --------------------------------------------------------------------
//
// --------------------------------------------------------------------
 
`ifndef AXI4PC_TYPES
`include "Axi4PC_ace_defs.v"
/trunk/AXI/sim/src/qaz_axi4_bfm_pkg.sv
1,29 → 1,5
//////////////////////////////////////////////////////////////////////
//// ////
//// Copyright (C) 2015 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 qaz_axi4_bfm_pkg;
/trunk/AXI/sim/tests/debug_unit_reg_file_v1_0_S00_AXI/the_test.sv
1,29 → 1,6
//////////////////////////////////////////////////////////////////////
//// ////
//// Copyright (C) 2015 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 ////
//// ////
//////////////////////////////////////////////////////////////////////
// --------------------------------------------------------------------
//
// --------------------------------------------------------------------
 
`timescale 1ps/1ps
 
/trunk/AXI/sim/tests/debug_unit_wb_axi4lite_bridge/the_test.sv
1,29 → 1,6
//////////////////////////////////////////////////////////////////////
//// ////
//// Copyright (C) 2015 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 ////
//// ////
//////////////////////////////////////////////////////////////////////
// --------------------------------------------------------------------
//
// --------------------------------------------------------------------
 
`timescale 1ps/1ps
 
trunk Property changes : Deleted: svn:global-ignores ## -1 +0,0 ## -__tmp

powered by: WebSVN 2.1.0

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