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

Subversion Repositories w11

[/] [w11/] [tags/] [w11a_V0.6/] [rtl/] [vlib/] [serport/] [serport_uart_rxtx_ab.vhd] - Blame information for rev 24

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 19 wfjm
-- $Id: serport_uart_rxtx_ab.vhd 476 2013-01-26 22:23:53Z mueller $
2 2 wfjm
--
3 13 wfjm
-- Copyright 2007-2011 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
4 2 wfjm
--
5
-- This program is free software; you may redistribute and/or modify it under
6
-- the terms of the GNU General Public License as published by the Free
7
-- Software Foundation, either version 2, or at your option any later version.
8
--
9
-- This program is distributed in the hope that it will be useful, but
10
-- WITHOUT ANY WARRANTY, without even the implied warranty of MERCHANTABILITY
11
-- or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
12
-- for complete details.
13
--
14
------------------------------------------------------------------------------
15
-- Module Name:    serport_uart_rxtx_ab - syn
16
-- Description:    serial port UART - transmitter-receiver + autobauder
17
--
18
-- Dependencies:   serport_uart_autobaud
19
--                 serport_uart_rxtx
20
-- Test bench:     -
21
-- Target Devices: generic
22 13 wfjm
-- Tool versions:  xst 8.2, 9.1, 9.2, 11.4, 12.1, 13.1; ghdl 0.18-0.29
23 9 wfjm
--
24
-- Synthesized (xst):
25
-- Date         Rev  ise         Target      flop lutl lutm slic t peri
26
-- 2010-12-25   348 12.1    M53d xc3s1000-4    99  197    -  124 s  9.8
27
--
28 2 wfjm
-- Revision History: 
29
-- Date         Rev Version  Comment
30 13 wfjm
-- 2011-10-22   417   1.1.1  now numeric_std clean
31 9 wfjm
-- 2010-12-26   348   1.1    add ABCLKDIV port for clock divider setting
32 2 wfjm
-- 2007-06-24    60   1.0    Initial version 
33
------------------------------------------------------------------------------
34
 
35
library ieee;
36
use ieee.std_logic_1164.all;
37 13 wfjm
use ieee.numeric_std.all;
38 2 wfjm
 
39
use work.slvtypes.all;
40 19 wfjm
use work.serportlib.all;
41 2 wfjm
 
42
entity serport_uart_rxtx_ab is          -- serial port uart: rx+tx+autobaud
43
  generic (
44
    CDWIDTH : positive := 13;           -- clk divider width
45
    CDINIT: natural := 15);             -- clk divider initial/reset setting
46
  port (
47
    CLK : in slbit;                     -- clock
48
    CE_MSEC : in slbit;                 -- 1 msec clock enable
49
    RESET : in slbit;                   -- reset
50
    RXSD : in slbit;                    -- receive serial data (uart view)
51
    RXDATA : out slv8;                  -- receiver data out
52
    RXVAL : out slbit;                  -- receiver data valid
53
    RXERR : out slbit;                  -- receiver data error (frame error)
54
    RXACT : out slbit;                  -- receiver active
55
    TXSD : out slbit;                   -- transmit serial data (uart view)
56
    TXDATA : in slv8;                   -- transmit data in
57
    TXENA : in slbit;                   -- transmit data enable
58
    TXBUSY : out slbit;                 -- transmit busy
59
    ABACT : out slbit;                  -- autobaud active; if 1 clkdiv invalid
60 9 wfjm
    ABDONE : out slbit;                 -- autobaud resync done
61
    ABCLKDIV : out slv(CDWIDTH-1 downto 0) -- autobaud clock divider setting
62 2 wfjm
  );
63
end serport_uart_rxtx_ab;
64
 
65
architecture syn of serport_uart_rxtx_ab is
66
 
67 13 wfjm
  signal CLKDIV : slv(CDWIDTH-1 downto 0) := slv(to_unsigned(0, CDWIDTH));
68 2 wfjm
  signal ABACT_L : slbit := '0';        -- local readable copy of ABACT
69
  signal UART_RESET : slbit := '0';
70
 
71
begin
72
 
73
  AB : serport_uart_autobaud
74
    generic map (
75
      CDWIDTH => CDWIDTH,
76
      CDINIT  => CDINIT)
77
    port map (
78
      CLK     => CLK,
79
      CE_MSEC => CE_MSEC,
80
      RESET   => RESET,
81
      RXSD    => RXSD,
82
      CLKDIV  => CLKDIV,
83
      ACT     => ABACT_L,
84
      DONE    => ABDONE
85
    );
86
 
87
  UART_RESET <= ABACT_L or RESET;
88
  ABACT      <= ABACT_L;
89 9 wfjm
  ABCLKDIV   <= CLKDIV;
90 2 wfjm
 
91
  RXTX : serport_uart_rxtx
92
    generic map (
93
      CDWIDTH => CDWIDTH)
94
    port map (
95
      CLK    => CLK,
96
      RESET  => UART_RESET,
97
      CLKDIV => CLKDIV,
98
      RXSD   => RXSD,
99
      RXDATA => RXDATA,
100
      RXVAL  => RXVAL,
101
      RXERR  => RXERR,
102
      RXACT  => RXACT,
103
      TXSD   => TXSD,
104
      TXDATA => TXDATA,
105
      TXENA  => TXENA,
106
      TXBUSY => TXBUSY
107
    );
108
 
109
end syn;

powered by: WebSVN 2.1.0

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