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

Subversion Repositories ssbcc

[/] [ssbcc/] [trunk/] [example/] [hello_world/] [tb.v] - Blame information for rev 2

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 sinclairrf
/*******************************************************************************
2
 *
3
 * Copyright 2012, Sinclair R.F., Inc.
4
 *
5
 * Test bench for hello_world.v.
6
 *
7
 ******************************************************************************/
8
 
9
`timescale 1ns/1ps
10
 
11
module tb;
12
 
13
// 100 MHz clock (as per hello_world.9x8/baudmethod)
14
reg s_clk = 1'b1;
15
always @ (s_clk) s_clk <= #5 ~s_clk;
16
 
17
reg s_rst = 1'b1;
18
initial begin
19
  repeat (5) @ (posedge s_clk);
20
  s_rst <= 1'b0;
21
  repeat((13+1)*10*((100_000_000+115200/2)/115200+12)) @ (posedge s_clk);
22
  $finish;
23
end
24
 
25
wire s_UART_Tx;
26
hello_world uut(
27
  // synchronous reset and processor clock
28
  .i_rst        (s_rst),
29
  .i_clk        (s_clk),
30
  // outport ports
31
  .o_UART_Tx    (s_UART_Tx)
32
);
33
 
34
localparam baud = 115200;
35
localparam dt_baud = 1.0e9/baud;
36
reg [8:0] deser = 9'h1FF;
37
initial forever begin
38
  @ (negedge s_UART_Tx);
39
  #(dt_baud/2.0);
40
  repeat (9) begin
41
    #dt_baud;
42
    deser = { s_UART_Tx, deser[1+:8] };
43
  end
44
  if (deser[8] != 1'b1)
45
    $display("%13d : Malformed UART transmition", $time);
46
  else if ((8'h20 <= deser[0+:8]) && (deser[0+:8]<=8'h80))
47
    $display("%13d : Sent 0x%02H : %c", $time, deser[0+:8], deser[0+:8]);
48
  else
49
    $display("%13d : Sent 0x%02H", $time, deser[0+:8]);
50
end
51
 
52
initial begin
53
  $dumpfile("tb.vcd");
54
  $dumpvars();
55
end
56
 
57
endmodule

powered by: WebSVN 2.1.0

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