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

Subversion Repositories tcp_socket

[/] [tcp_socket/] [trunk/] [chips2/] [docs/] [source/] [index.rst] - Blame information for rev 4

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 4 jondawson
===================================
2
*Chips* - Hardware Design in Python
3
===================================
4
 
5
What is *Chips*?
6
================
7
 
8
*Chips* makes FPGA design quicker and easier. *Chips* isn't a Hardware
9
Description Language (HDL) like VHDL or Verilog, its a different way of doing
10
things. In *Chips*, you design components using a simple subset of the C
11
programming language. There's a Python API to connect C components together
12
using fast data streams to form complex, parallel systems all in a single chip.
13
You don't need to worry about clocks, resets, or timing. You don't need to
14
follow special templates to make your code synthesisable. All that's done for
15
you!
16
 
17
Features
18
========
19
 
20
Some of the key features include:
21
 
22
        - A fast and simple development environment
23
 
24
        - A free open source solution (MIT license)
25
 
26
        - Automatic generation of synthesisable Verilog
27
 
28
        - Optimise for speed or area
29
 
30
        - Use C and Python software tools to design hardware.
31
 
32
 
33
You can get the *Chips* from the `Git Hub `_
34
homepage. If you want to give it a try in some real hardware, take a look at
35
the `demo `_ for the Digilent Atlys
36
Demo card.
37
 
38
A Quick Taster
39
==============
40
 
41
.. code-block:: c
42
 
43
        lfsr.c:
44
 
45
        //4 bit linear feedback shift register
46
 
47
        void lfsr(){
48
            int new_bit = 0;
49
            int shift_register = 1;
50
            while(1){
51
 
52
                 //tap off bit 2 and 3
53
                 new_bit=((shift_register >> 0) ^ (shift_register >> 1) ^ new_bit);
54
 
55
                 //implement shift register
56
                 shift_register=((new_bit & 1) << 3) | (shift_register >> 1);
57
 
58
                 //4 bit mask
59
                 shift_register &= 0xf;
60
 
61
                 //write to stream
62
                 report(shift_register);
63
             }
64
        }
65
 
66
::
67
 
68
        console:
69
 
70
        $ c2verilog iverilog run lfsr.c
71
 
72
        8
73
        12
74
        14
75
        7
76
        3
77
        1
78
 
79
Documentation
80
=============
81
.. toctree::
82
   :maxdepth: 2
83
 
84
   language_reference/index
85
   examples/index
86
   tutorial/index
87
 
88
Links
89
=====
90
 
91
- `SciPy`_ Scientific Tools for Python.
92
 
93
- `matplotlib`_ 2D plotting library for Python.
94
 
95
- `Python Imaging Library (PIL)`_ Python Imaging Library adds image processing
96
  capabilities to Python.
97
 
98
- `MyHDL`_ A Hardware description language based on Python.
99
 
100
.. _`SciPy`: http://scipy.org
101
.. _`matplotlib`: http://matplotlib.org
102
.. _`MyHDL`: http://www.myhdl.org
103
.. _`Python Imaging Library (PIL)`: http://www.pythonware.com/products/pil/
104
 
105
 
106
Indices and tables
107
==================
108
 
109
* :ref:`genindex`
110
* :ref:`modindex`
111
* :ref:`search`
112
 

powered by: WebSVN 2.1.0

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