-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathORPSoC.mw
117 lines (62 loc) · 4.78 KB
/
ORPSoC.mw
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
= Introduction =
ORPSoC is the '''O'''penRISC '''R'''eference '''P'''latform '''S'''ystem-'''o'''n-'''C'''hip. It is intended to be a development and verification environment for IP cores and SoC designs. It is a collaboratively developed project.
As a development platform it should provide a modular, easy to use environment to perform RTL development with push-button simulation and synthesis flows. A basic software build environment is also present to support OpenRISC development in simulation and on target. The project should be easy enough for users, both new and experienced, to get started with OpenRISC designs and develop quickly and collaborate easily.
== ORPSoCv2 ==
[[ORPSoCv2]] was the version which was widely used until 2013. It is no longer actively developed, however its resources can still be found on [[ORPSoCv2|its wiki page]].
== ORPSoCv3 ==
What follows on this page is instructions relating to ORPSoCv3, which is now referred to as just ORPSoC.
= How it works =
ORPSoC provides both system description files and the scripts to simulate and build these systems.
ORPSoC is split into more than one repository. The scripts and automation tools (<tt>fusesoc</tt>) are separate from the system and core descriptions (<tt>orpsoc-cores</tt>).
The primary interface with ORPSoC is via the <tt>fusesoc</tt> command-line executable. Users edit HDL source code and system configuration files before launching <tt>orpsoc</tt> to either launch simulation or FPGA image generation.
= Download =
The <tt>fusesoc</tt> and <tt>orpsoc-cores</tt> repositories should be set up alongside each other.
== FuseSoC ==
This is the scripting and automation component of FuseSoC.
=== Latest Release ===
The latest release '''FuseSoC 1.1''' [ftp://ocuser:[email protected]/fusesoc/fusesoc-1.1.tar.gz can be downloaded here].
Note that the <tt>orpsoc-cores</tt> are not included in the release tar-balls.
=== Repository ===
The FuseSoC source is hosted on Olof Kindgren's github page - [https://github.com/olofk/fusesoc https://github.com/olofk/fusesoc]
Clone a copy of the repository with git like so:
git clone https://github.com/olofk/fusesoc.git
== ORPSoC cores ==
This contains the IP core and system configuration information.
=== Repository ===
The ORPSoC cores source is hosted under the OpenRISC organisation on github - [https://github.com/openrisc/orpsoc-cores https://github.com/openrisc/orpsoc-cores]
Clone a copy of the repository with git like so:
git clone https://github.com/openrisc/orpsoc-cores.git
= Install & set up=
''Instructions for setting up FuseSoC can also be found in the <tt>INSTALL</tt> file in the <tt>fusesoc</tt> repository.''
The only component which may be installed is the <tt>fusesoc</tt> tool. It also is possible to use the tool without installing it on your system. See below.
== FuseSoC ==
'''Note''': If you have downloaded the [[#Latest_Release|latest release]] then you may omit the <tt>autoreconf -i</tt> step below as it has already been run before archiving.
From within the <tt>fusesoc</tt> directory run the following:
autoreconf -i # Omit this if downloaded a release archive
./configure
make
make install
Once this is done, then the <tt>fusesoc</tt> tool will be available.
=== Without installing ===
It's possible to just add the /<tt><path to fusesoc location>/fusesoc/bin</tt> to your $PATH variable to able to use <tt>fusesoc</tt>
== Set Up ==
ORPSoC can be run from an arbitrary work directory (where all intermediate and results files will be generated and stored). All that is required is that the location of the <tt>orpsoc-cores/cores</tt> and <tt>orpsoc-cores/systems</tt> directories are specified to the tool.
The easiest way to do that is via the <tt>fusesoc.conf</tt> config file. This file must exist wherever <tt>fusesoc</tt> is run from.
So the simplest set up would be to, alongside the <tt>fusesoc</tt> and <tt>orpsoc-cores</tt> directory, '''create an <tt>orpsoc-build</tt> directory''' with an <tt>fusesoc.conf</tt> file. This file (<tt>orpsoc-build/fusesoc.conf</tt>) should contain:
[main]
cores_root = ../orpsoc-cores/cores
systems_root = ../orpsoc-cores/systems
Now <tt>fusesoc</tt> may be run from this <tt>orpsoc-build</tt> directory.
= Using =
Once in the ''build'' directory, <tt>orpsoc</tt> can be run.
== Help ==
fusesoc --help
== List available systems ==
fusesoc list-systems
== Build system FPGA image ==
fusesoc build <system_name>
= Contributing =
We ask contributors to get in touch with the developers via the [[OR1K:Community_Portal#Mailing_lists|mailing lists]], [[OR1K:Community_Portal#IRC|IRC]], or the [http://opencores.org/forum,OpenRISC forums] in that order.
= To Do =
*Fill out the To Do list
A TODO list can also be found in [https://github.com/openrisc/orpsoc/blob/master/TODO the <tt>orpsoc</tt> repository].