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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [orpsocv2/] [bench/] [verilog/] [uart_stim.v] - Blame information for rev 361

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 361 julius
//////////////////////////////////////////////////////////////////////
2
////                                                              ////
3
////  ORPSoC Testbench UART Stimulus                              ////
4
////                                                              ////
5
////  Description                                                 ////
6
////  ORPSoC Testbench UART input generator                       ////
7
////                                                              ////
8
////  To Do:                                                      ////
9
////                                                              ////
10
////                                                              ////
11
////  Author(s):                                                  ////
12
////      - jb, jb@orsoc.se                                       ////
13
////                                                              ////
14
////                                                              ////
15
//////////////////////////////////////////////////////////////////////
16
////                                                              ////
17
//// Copyright (C) 2010 Authors and OPENCORES.ORG                 ////
18
////                                                              ////
19
//// This source file may be used and distributed without         ////
20
//// restriction provided that this copyright statement is not    ////
21
//// removed from the file and that any derivative work contains  ////
22
//// the original copyright notice and the associated disclaimer. ////
23
////                                                              ////
24
//// This source file is free software; you can redistribute it   ////
25
//// and/or modify it under the terms of the GNU Lesser General   ////
26
//// Public License as published by the Free Software Foundation; ////
27
//// either version 2.1 of the License, or (at your option) any   ////
28
//// later version.                                               ////
29
////                                                              ////
30
//// This source is distributed in the hope that it will be       ////
31
//// useful, but WITHOUT ANY WARRANTY; without even the implied   ////
32
//// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR      ////
33
//// PURPOSE.  See the GNU Lesser General Public License for more ////
34
//// details.                                                     ////
35
////                                                              ////
36
//// You should have received a copy of the GNU Lesser General    ////
37
//// Public License along with this source; if not, download it   ////
38
//// from http://www.opencores.org/lgpl.shtml                     ////
39
////                                                              ////
40
//////////////////////////////////////////////////////////////////////
41
 
42
// Encodes 8-bit, 1 stop bit, no parity UART signals at 115200 buad
43
`timescale 1ns/1ns
44
module uart_stim(clk, uart_rx);
45
 
46
   input clk;
47
   output reg uart_rx;
48
 
49
 
50
 
51
   // Default baud of 115200, period (ns)
52
   parameter uart_baudrate_period_ns = 8680;
53
 
54
   // Uart Stim file - we include it
55
   parameter stim_file = "uart0_stim.v";
56
 
57
   // Something to trigger the task
58
   reg [7:0]  next_byte;
59
   parameter len = 11; // Number of chars in string
60
   reg [(len*8)-1:0] uart_string;
61
   integer      i;
62
 
63
   /*
64
   initial
65
     begin
66
        uart_rx = 1;
67
        uart_string = "dhry 100\n!\n";
68
 
69
        #12_000_000;
70
        for(i=0;i<len;i=i+1)
71
          begin
72
             uart_tx_byte(uart_string[(len*8)-1:(len*8)-8]);
73
             #20_000_000;
74
             // Shift along string
75
             uart_string = {uart_string[(len*8)-9:0],8'h00};
76
          end
77
     end
78
    */
79
   // Task to drive UART RX line (transmit a char) - 1 stop bit, no parity
80
   task uart_tx_byte;
81
    input [7:0] tx_byte;
82
      begin
83
         // Start bit
84
         uart_rx = 1'b0;
85
         #uart_baudrate_period_ns;
86
         uart_rx = tx_byte[0];
87
         #uart_baudrate_period_ns;
88
         uart_rx = tx_byte[1];
89
         #uart_baudrate_period_ns;
90
         uart_rx = tx_byte[2];
91
         #uart_baudrate_period_ns;
92
         uart_rx = tx_byte[3];
93
         #uart_baudrate_period_ns;
94
         uart_rx = tx_byte[4];
95
         #uart_baudrate_period_ns;
96
         uart_rx = tx_byte[5];
97
         #uart_baudrate_period_ns;
98
         uart_rx = tx_byte[6];
99
         #uart_baudrate_period_ns;
100
         uart_rx = tx_byte[7];
101
         #uart_baudrate_period_ns;
102
         // Stop bit
103
         uart_rx = 1'b1;
104
         #uart_baudrate_period_ns;
105
      end
106
   endtask // uart_tx_byte
107
 
108
endmodule // uart_decoder

powered by: WebSVN 2.1.0

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