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

Subversion Repositories s6soc

[/] [s6soc/] [trunk/] [README.md] - Blame information for rev 50

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 50 dgisselq
# Description
2
 
3
This CMOD-S6 SoC grew out of the desire to demonstrate that a useful ZipCPU
4
soft core implementation could be made in a very small space.  In
5
particular, one of the purposes of the ZipCPU was to be able to operate successfully in a very area-challenged environment.  The CMOD-S6, as sold by Digilent
6
Inc., provides this environment for this project.
7
 
8
# The CPU
9
 
10
For those not familiar with the ZipCPU, it is a soft core CPU designed
11
specifically for small area implementations.  The CPU is a full 32-bit CPU,
12
designed as a RISC load/store architecture, having a full set of thirty-two
13
32-bit registers (of which 16 may be used at any one time), and has a single
14
wishbone bus for both instructions and data (Von Neumann architecture).  The
15
particular implementation of the ZipCPU used for this SoC project is not
16
pipelined, nor does it have either instruction or data caches--they simply
17
wouldn't fit within the FPGA.  Still, a CPU is a CPU and this CPU will
18
execute the instructions given to it faithfully.
19
 
20
# Peripherals
21
 
22
A SoC is really a soft core CPU combined with a bus, giving the CPU access to
23
a variety of peripherals.  In this case, the CMod-S6 SoC offers the user with the following peripherals:
24
 
25
1. An I/O space containing
26
  a. an interrupt controller
27
  b. the address of the last bus error
28
  c. a system timer
29
  d. a watchdog timer
30
  e. an audio controller consisting of a PRM driver and another (supporting) timer
31
  f. a GPIO controller capable of implementing SPI and I2C (SPI is working, as this is used to drive the display successfully)
32
  g. UART Rx/Tx
33
  h. support for the on-board LED's and buttons, as well as for ...
34
  i. an external 16-character keypad controller.
35
2. A debug scope, capable of recording 1024 words of debugging information within the core upon any trigger.
36
3. A 16-kB On-chip block RAM
37
4. 16-MB flash for holding both the FPGA configuration as well as any user programs.  (The configuration takes about 512kB of flash.)
38
 
39
All of these peripherals have been tested, and they are known to work.
40
 
41
# The Demo Task
42
 
43
This board will be (has been!) proven with the (imaginary) task of implementing
44
a security light for a home.  The light works in this fashion: when someone
45
presses the doorbell (one of the on-board buttons), the system will then play
46
a doorbell sound on the audio port, and turn on the outdoor lights for a half
47
an hour.  Further, the keypad will allow a user to set the current time, and
48
set times when the outdoor lights should not be turned on (i.e., during the
49
daytime).  Finally, the GPIO pins will be used to control a 2-line display that
50
will show either a blank screen (if not being used), the time of the last
51
doorbell press, or a menu driven screen for use with the keypad.
52
 
53
The UART will be (has been) used primarily as a debug port, both to output
54
current status (ala debug by printf), as well as to allow access to a second
55
S6 configuration which can be used for programming the flash.
56
 
57
# Current Status
58
 
59
20160523: I am going to place this project down in my "done" category of
60
projects.  It currently does all that I have asked of it and all that I intended
61
the project to do.  Please feel free to write if you have comments, thoughts,
62
questions, or even suggestions.
63
 
64
20170126: I'm in the process of updating the project to work with the newer version of the ZipCPU--the one that can handle the more traditional 8-bit bytes, rather than the 32-bit bytes the original ZipCPU could only handle.
65
 
66
20170309: All of the prior ZipOS functionality now works (again) using the new ZipCPU.
67
 

powered by: WebSVN 2.1.0

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