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

Subversion Repositories xulalx25soc

[/] [xulalx25soc/] [trunk/] [README.md] - Blame information for rev 117

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 117 dgisselq
# Description
2
 
3
This project attempts to take two separate projects, the ZipCPU and Xess.com's XuLA2-LX25, and merge them together into a single system on a chip implementation.  As currently implemented, this SoC offers the following peripherals to the ZipCPU within:
4
 
5
- External peripherals
6
 
7
  - 14 GPIO inputs, 15 GPIO outputs
8
  - PWM output (can be swapped for an FM transmitter ...)
9
  - Rx and Tx UART ports
10
  - 1MB SPI flash, together with a read/write controller
11
  - 32MB SDRAM capable of non-stop pipeline reads and writes
12
  - SD Card, sharing the SPI wires of the flash
13
 
14
- Internal peripherals
15
 
16
  - Real-time clock and date4
17
  - Access to the FPGA configuration port, for unattended updates
18
  - ZipCPU debug/configuration port access from JTAG
19
 
20
- ZipCPU peripherals
21
 
22
  - 3x timers, each of which can be programmed either in a one shot mode or as a repeating interval timer
23
  - A watchdog timer, and a wishbone bus watchdog timer
24
  - Two interrupt controllers
25
  - Direct Memory Access (DMA) controller for unattended memory movement
26
 
27
# Current Status
28
 
29
The SoC is fully functional.  Keeping the project from being complete, however,
30
is the lack of an integrated specification document.  (Specification documents
31
do exist, however, for many of the peripheral components.)
32
 
33
# Unique Features
34
 
35
This System on a Chip (SoC) controller has some unique features associated with
36
it, above and beyond the peripherals listed above.  Primary among those is the
37
JTAG to 32-bit wishbone master conversion.  This makes it possible for an
38
external entity to read  from or write to the wishbone bus.  Uses include
39
verifying whether or not peripherals work, as well as configuring the CPU,
40
memory and flash for whatever purpose one might have.  This particular
41
capability was designed so that host (i.e. FPGA control) programs (external
42
to the FPGA) can call a common set of bus interface functions to communicate
43
with the FPGA, regardless of how the bus was implemented.
44
 
45
A second unique feature is a PWM driver that spreads its digital energy into
46
higher (non-auditory) frequencies which can then be filtered out easier
47
with a simple low-pass filter.  As an example, sending a zero, or half-pulse
48
width, will result in alternating digital ones and zeros from the driver.  While
49
I expect this will have a pleasing effect on the ear, especially since these
50
transactions will be outside of the normal hearing range, this is the first time
51
I have tried it and the jury's still out regarding whether or not it works or
52
even works well.
53
 
54
Finally, while it may not really be that unique, this core does feature a fully
55
functional SDRAM controller capable of sustaining one read cycle (or write
56
cycle) every two clocks when pipelined.  Unlike many other dynamic memory
57
controllers, this one was _not_ created from a proprietary, closed source,
58
memory interface generation facility--so it is available for anyone to examine,
59
study, and even comment upon and improve--subject to the conditions of the GPL.

powered by: WebSVN 2.1.0

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