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

Subversion Repositories socgen

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /socgen/trunk/common/opencores.org/Testbench/bfms/uart_host/rtl/verilog
    from Rev 131 to Rev 134
    Reverse comparison

Rev 131 → Rev 134

/copyright.v File deleted
/tasks
0,0 → 1,60
 
task automatic next;
input [31:0] num;
repeat (num) @ (posedge clk);
endtask
 
 
 
task clear_rx_host;
begin
next(1);
end
endtask
 
 
task send_byte;
input [7:0] byte_out;
 
begin
while(!txd_buffer_empty) next(1);
$display("%t %m %2h",$realtime ,byte_out);
txd_data_in <= byte_out;
next(1);
txd_load <= 1'b1;
next(1);
txd_load <= 1'b0;
next(1);
end
endtask // send_byte
 
 
 
task rcv_byte;
input [7:0] byte_in;
begin
exp_rxd_data_out <= byte_in;
while(!rxd_data_avail) next(1);
$display("%t %m checking %h",$realtime,byte_in);
mask_rxd_stop_error <= 1'b1;
mask_rxd_parity_error <= 1'b1;
mask_rxd_data_out <= 8'hff;
next(1);
mask_rxd_stop_error <= 1'b0;
mask_rxd_parity_error <= 1'b0;
mask_rxd_data_out <= 8'h00;
rxd_data_avail_stb <= 1'b1;
next(1);
rxd_data_avail_stb <= 1'b0;
next(1);
end
endtask
 
/copyright
0,0 → 1,43
 
/**********************************************************************/
/* */
/* ------- */
/* / SOC \ */
/* / GEN \ */
/* / SIM \ */
/* ============== */
/* | | */
/* |____________| */
/* */
/* uart host model for simulations */
/* */
/* */
/* Author(s): */
/* - John Eaton, jt_eaton@opencores.org */
/* */
/**********************************************************************/
/* */
/* Copyright (C) <2010> <Ouabache Design Works> */
/* */
/* 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 */
/* */
/**********************************************************************/
/top.sim
47,40 → 47,70
module uart_host_def (
input wire clk,
input wire reset,
output reg parity_enable,
output reg txd_parity,
input wire rxd_data_avail,
input wire rxd_stop_error,
input wire rxd_parity_error,
input wire txd_buffer_empty,
input wire [7:0] rxd_data_out,
output reg parity_enable,
output reg rxd_data_avail_stb,
output reg rxd_force_parity,
output reg rxd_parity,
output reg txd_break,
output reg txd_force_parity,
output reg [7:0] txd_data_in,
input wire txd_buffer_empty,
output reg txd_load,
output reg txd_break,
output reg rxd_parity,
output reg rxd_force_parity,
output reg rxd_data_avail_stb,
inout wire [7:0] rxd_data_out,
input wire rxd_data_avail,
inout wire rxd_stop_error,
inout wire rxd_parity_error
output reg txd_parity,
output reg [7:0] txd_data_in
 
);
 
reg exp_rxd_stop_error;
reg exp_rxd_parity_error;
reg exp_rxd_stop_error;
reg exp_rxd_parity_error;
reg [7:0] exp_rxd_data_out;
 
reg mask_rxd_stop_error;
reg mask_rxd_parity_error;
reg mask_rxd_stop_error;
reg mask_rxd_parity_error;
reg [7:0] mask_rxd_data_out;
 
 
task automatic next;
input [31:0] num;
repeat (num) @ (posedge clk);
endtask
 
 
io_probe_in
#(.MESG("uart_host receive error"),
.WIDTH(8))
rxd_data_out_prb
(
.clk ( clk ),
.expected_value ( exp_rxd_data_out ),
.mask ( mask_rxd_data_out ),
.signal ( rxd_data_out )
);
 
io_probe_in
#(.MESG("uart_host stop error"))
rxd_stop_error_prb
(
.clk ( clk ),
.expected_value ( exp_rxd_stop_error ),
.mask ( mask_rxd_stop_error ),
.signal ( rxd_stop_error )
);
 
 
 
 
io_probe_in
#(.MESG("uart_host parity error"))
rxd_parity_error_prb
(
.clk ( clk ),
.expected_value ( exp_rxd_parity_error ),
.mask ( mask_rxd_parity_error ),
.signal ( rxd_parity_error )
 
);
 
always@(posedge clk)
if(reset)
106,6 → 136,17
end
 
 
 
task automatic next;
input [31:0] num;
repeat (num) @ (posedge clk);
endtask
 
 
 
task clear_rx_host;
begin
next(1);
152,60 → 193,6
end
endtask
 
io_probe_def
#(.MESG("uart_host receive error"),
.WIDTH(8))
rxd_data_out_prb
(
.clk ( clk ),
.drive_value (8'bzzzzzzzz ),
.expected_value ( exp_rxd_data_out ),
.mask ( mask_rxd_data_out ),
.signal ( rxd_data_out )
 
);
 
 
 
 
io_probe_def
#(.MESG("uart_host stop error"))
rxd_stop_error_prb
(
.clk ( clk ),
.drive_value (1'bz ),
.expected_value ( exp_rxd_stop_error ),
.mask ( mask_rxd_stop_error ),
.signal ( rxd_stop_error )
 
);
 
 
 
 
io_probe_def
#(.MESG("uart_host parity error"))
rxd_parity_error_prb
(
.clk ( clk ),
.drive_value (1'bz ),
.expected_value ( exp_rxd_parity_error ),
.mask ( mask_rxd_parity_error ),
.signal ( rxd_parity_error )
 
);
 
 
 
endmodule
/top.syn
57,10 → 57,10
output reg rxd_parity,
output reg rxd_force_parity,
output reg rxd_data_avail_stb,
inout wire [7:0] rxd_data_out,
input wire [7:0] rxd_data_out,
input wire rxd_data_avail,
inout wire rxd_stop_error,
inout wire rxd_parity_error
input wire rxd_stop_error,
input wire rxd_parity_error
);
 
reg exp_rxd_stop_error;
73,44 → 73,12
 
 
 
 
 
always@(posedge clk)
if(reset)
begin
parity_enable <= 1'b0;
txd_data_in <= 8'h00;
txd_parity <= 1'b0;
txd_force_parity <= 1'b0;
txd_load <= 1'b0;
txd_break <= 1'b0;
rxd_parity <= 1'b0;
rxd_force_parity <= 1'b0;
rxd_data_avail_stb <= 1'b0;
exp_rxd_stop_error <= 1'b0;
exp_rxd_parity_error <= 1'b0;
exp_rxd_data_out <= 8'h00;
 
mask_rxd_stop_error <= 1'b0;
mask_rxd_parity_error <= 1'b0;
mask_rxd_data_out <= 8'h00;
 
end
 
 
 
io_probe_def
io_probe_in
#(.MESG("uart_host receive error"),
.WIDTH(8))
rxd_data_out_prb
(
.clk ( clk ),
.drive_value (8'bzzzzzzzz ),
.expected_value ( exp_rxd_data_out ),
.mask ( mask_rxd_data_out ),
.signal ( rxd_data_out )
123,12 → 91,11
 
 
 
io_probe_def
io_probe_in
#(.MESG("uart_host stop error"))
rxd_stop_error_prb
(
.clk ( clk ),
.drive_value (1'bz ),
.expected_value ( exp_rxd_stop_error ),
.mask ( mask_rxd_stop_error ),
.signal ( rxd_stop_error )
139,12 → 106,11
 
 
 
io_probe_def
io_probe_in
#(.MESG("uart_host parity error"))
rxd_parity_error_prb
(
.clk ( clk ),
.drive_value (1'bz ),
.clk ( clk ),
.expected_value ( exp_rxd_parity_error ),
.mask ( mask_rxd_parity_error ),
.signal ( rxd_parity_error )
152,8 → 118,34
);
 
 
always@(posedge clk)
if(reset)
begin
parity_enable <= 1'b0;
txd_data_in <= 8'h00;
txd_parity <= 1'b0;
txd_force_parity <= 1'b0;
txd_load <= 1'b0;
txd_break <= 1'b0;
rxd_parity <= 1'b0;
rxd_force_parity <= 1'b0;
rxd_data_avail_stb <= 1'b0;
exp_rxd_stop_error <= 1'b0;
exp_rxd_parity_error <= 1'b0;
exp_rxd_data_out <= 8'h00;
 
mask_rxd_stop_error <= 1'b0;
mask_rxd_parity_error <= 1'b0;
mask_rxd_data_out <= 8'h00;
 
end
 
 
 
 
/code
0,0 → 1,26
assign drive_8 = 8'bzzzzzzzz;
assign drive_1 = 1'bz;
 
 
always@(posedge clk)
if(reset)
begin
parity_enable <= 1'b0;
txd_data_in <= 8'h00;
txd_parity <= 1'b0;
txd_force_parity <= 1'b0;
txd_load <= 1'b0;
txd_break <= 1'b0;
rxd_parity <= 1'b0;
rxd_force_parity <= 1'b0;
rxd_data_avail_stb <= 1'b0;
exp_rxd_stop_error <= 1'b0;
exp_rxd_parity_error <= 1'b0;
exp_rxd_data_out <= 8'h00;
mask_rxd_stop_error <= 1'b0;
mask_rxd_parity_error <= 1'b0;
mask_rxd_data_out <= 8'h00;
end
 

powered by: WebSVN 2.1.0

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