You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/chipflow-toml-guide.rst
+53-34Lines changed: 53 additions & 34 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -14,34 +14,58 @@ Let's start with a typical example:
14
14
# Assert that example-chipflow.toml matches the current config schema. If
15
15
# this test fails, then its likely that the content in this file will need
16
16
# to be updated.
17
-
from chipflow_lib import _parse_config_file
17
+
from chipflow_lib.config import _parse_config_file
18
18
_parse_config_file("docs/example-chipflow.toml")
19
19
20
-
``[chipflow]``
21
-
--------------
20
+
``[chipflow]`` table
21
+
--------------------
22
+
23
+
|required|
24
+
25
+
The top level configuration for inputs to the ChipFlow tools.
26
+
27
+
28
+
project_name
29
+
============
30
+
31
+
|required|
32
+
33
+
The ``project_name`` is a human-readable identifier for this project. If not set, the tool and library will use the project name configured in ``pyproject.toml``.
22
34
23
35
.. code-block:: TOML
24
36
25
37
[chipflow]
26
-
project_name = "my_project"
38
+
project_name = 'my_project'
27
39
40
+
clock_domains
41
+
=============
28
42
29
-
The ``project_name`` is a human-readable identifier for this project. If not set, the tool and library will use the project name configured in ``pyproject.toml``.
43
+
|optional|
30
44
31
-
``[chipflow.top]``
32
-
------------------
45
+
A list of top-level clock domains for your design. If omitted, defaults to the `Amaranth` default ``sync``, and sync is always assumed to be the name of the core clock for bringup.
33
46
34
47
.. code-block:: TOML
35
48
36
-
[chipflow.top]
37
-
soc = "my_design.design:MySoC"
49
+
[chipflow]
50
+
clock_domains = ['sync', 'peripheral']
51
+
52
+
53
+
``[chipflow.top]`` table
54
+
------------------------
55
+
56
+
|required|
38
57
39
58
This section outlines the design modules that need to be instantiated.
40
59
A new top module will be automatically generated, incorporating all specified modules along with their interfaces.
41
60
Each entry follows the format `<instance name> = <module class path>`.
42
61
43
62
The instance name is the name the python object will be given in your design, and the :term:`module class path`
44
63
64
+
.. code-block:: TOML
65
+
66
+
[chipflow.top]
67
+
soc = "my_design.design:MySoC"
68
+
45
69
.. glossary::
46
70
47
71
module class path
@@ -50,8 +74,10 @@ The instance name is the name the python object will be given in your design, an
50
74
51
75
.. _chipflow-toml-steps:
52
76
53
-
``[chipflow.steps]``
54
-
--------------------
77
+
``[chipflow.steps]`` table
78
+
--------------------------
79
+
80
+
|optional|
55
81
56
82
The ``steps`` section allows overriding or addition to the standard steps available from `chipflow_lib`.
57
83
@@ -69,27 +95,15 @@ You probably won't need to change these if you're starting from an example repos
The clock pins to be allocation on the package are determined from the top level clock domains exposed by components in `[chipflow.top]`.
76
-
77
-
78
-
79
-
``[chipflow.resets]``
80
-
---------------------
98
+
``[chipflow.silicon]``
99
+
----------------------
81
100
82
-
.. code-block:: TOML
101
+
|required|
83
102
84
-
[chipflow.resets]
85
-
default = 'sys_rst_n'
103
+
The ``silicon`` section sets the Foundry ``process`` (i.e. PDK) that we are targeting for manufacturing, and the physical ``package`` (including pad ring) we want to place our design inside.
86
104
87
-
This section identifies the input pads designated for reset functionality.
88
-
These pads need to be specified in the `[silicon.pads]`_ section with the :term:`type` set to :term:`reset`.
89
-
The logic that synchronizes the reset signal with the clock will be generated automatically.
105
+
You'll choose the ``process`` and ``package`` based in the requirements of your design.
90
106
91
-
``[chipflow.silicon]``
92
-
----------------------
93
107
94
108
.. code-block:: TOML
95
109
@@ -98,12 +112,12 @@ The logic that synchronizes the reset signal with the clock will be generated au
98
112
package = "pga144"
99
113
100
114
101
-
The ``silicon`` section sets the Foundry ``process`` (i.e. PDK) that we are targeting for manufacturing, and the physical ``package`` (including pad ring) we want to place our design inside.
115
+
process
116
+
=======
102
117
103
-
You'll choose the ``process`` and ``package`` based in the requirements of your design.
0 commit comments