@@ -18,7 +18,7 @@ ChipFlow supports multiple clock domains in your design:
1818 [chipflow.clocks]
1919 # Default clock for the design
2020 default = "sys_clk"
21-
21+
2222 # Additional clock domains
2323 pll = "pll_clk"
2424 fast = "fast_clk"
@@ -42,11 +42,11 @@ ChipFlow provides debugging options for silicon designs:
4242 [chipflow.silicon.debug]
4343 # Heartbeat LED to verify clock/reset functionality
4444 heartbeat = true
45-
45+
4646 # Internal logic analyzer
4747 logic_analyzer = true
4848 logic_analyzer_depth = 1024
49-
49+
5050 # JTAG debug access
5151 jtag = true
5252
@@ -60,7 +60,7 @@ To prevent pin assignments from changing accidentally, ChipFlow supports a pin l
6060 [chipflow.pin_lock]
6161 # Enable pin locking
6262 enabled = true
63-
63+
6464 # Lock file path (relative to project root)
6565 file = "pins.lock"
6666
@@ -76,10 +76,10 @@ For silicon designs, you can specify resource constraints:
7676 [chipflow.silicon.constraints]
7777 # Maximum die area in mm²
7878 max_area = 1.0
79-
79+
8080 # Maximum power budget in mW
8181 max_power = 100
82-
82+
8383 # Target clock frequency in MHz
8484 target_frequency = 100
8585
@@ -93,7 +93,7 @@ You can specify custom top-level components for your design:
9393 [chipflow.top]
9494 # Main SoC component
9595 soc = "my_design.components:MySoC"
96-
96+
9797 # Additional top-level components
9898 uart = "my_design.peripherals:UART"
9999 spi = "my_design.peripherals:SPI"
@@ -113,7 +113,7 @@ FPGA Board Configuration
113113 [chipflow.board]
114114 # Target FPGA board
115115 target = "ulx3s"
116-
116+
117117 # Board-specific options
118118 [chipflow.board.options]
119119 size = "85k" # FPGA size
@@ -148,7 +148,7 @@ ChipFlow can integrate with external dependencies:
148148 "github.com/chipflow/[email protected] ", 149149 "github.com/chipflow/[email protected] " 150150 ]
151-
151+
152152 # External library paths
153153 [chipflow.deps.libs]
154154 amaranth_cores = "amaranth_cores"
@@ -164,13 +164,13 @@ For more complex testing setups:
164164 [chipflow.sim]
165165 # Testbench implementation
166166 testbench = "my_design.tb:TestBench"
167-
167+
168168 # Custom simulation flags
169169 [chipflow.sim.options]
170170 trace_all = true
171171 cycles = 10000
172172 seed = 12345
173-
173+
174174 # Test vectors
175175 [chipflow.sim.test_vectors]
176176 path = "test_vectors.json"
@@ -186,13 +186,13 @@ To generate custom documentation for your design:
186186 [chipflow.docs]
187187 # Documentation output directory
188188 output = "docs/build"
189-
189+
190190 # Block diagram generation
191191 block_diagram = true
192-
192+
193193 # Custom templates
194194 template_dir = "docs/templates"
195-
195+
196196 # Additional documentation files
197197 extra_files = [
198198 "docs/architecture.md",
@@ -204,12 +204,10 @@ Environment Variables
204204
205205Several environment variables can be used to customize ChipFlow's behavior:
206206
207- - ``CHIPFLOW_ROOT ``: Root directory of your project
208- - ``CHIPFLOW_API_KEY_ID ``: API key ID for ChipFlow services
209- - ``CHIPFLOW_API_KEY_SECRET ``: API key secret for ChipFlow services
210- - ``CHIPFLOW_API_ENDPOINT ``: Custom API endpoint (defaults to production)
207+ - ``CHIPFLOW_ROOT ``: Root directory of your project, which must contain `chipflow.toml `
208+ - ``CHIPFLOW_API_KEY ``: API key secret for ChipFlow services
209+ - ``CHIPFLOW_API_ENDPOINT ``: Custom API endpoint (defaults to production - https://build.chipflow.org)
211210- ``CHIPFLOW_DEBUG ``: Enable debug logging (set to "1")
212- - ``CHIPFLOW_CONFIG ``: Custom path to chipflow.toml file
213211
214212Using Custom Steps
215213------------------
@@ -221,20 +219,20 @@ To implement a custom step implementation:
221219 .. code-block :: python
222220
223221 from chipflow_lib.steps.silicon import SiliconStep
224-
222+
225223 class CustomSiliconStep (SiliconStep ):
226224 def prepare (self ):
227225 # Custom preparation logic
228226 result = super ().prepare()
229227 # Additional processing
230228 return result
231-
229+
232230 def submit (self , rtlil_path , * , dry_run = False ):
233231 # Custom submission logic
234232 if dry_run:
235233 # Custom dry run behavior
236234 return
237-
235+
238236 # Custom submission implementation
239237 # ...
240238
@@ -258,13 +256,13 @@ For complex pin requirements:
258256 # Differential pair
259257 lvds_in_p = { type = "i", loc = "N4", diff_pair = "positive" }
260258 lvds_in_n = { type = "i", loc = "N5", diff_pair = "negative" }
261-
259+
262260 # Multiple bits of a bus
263261 data[0] = { type = "io", loc = "S1" }
264262 data[1] = { type = "io", loc = "S2" }
265263 data[2] = { type = "io", loc = "S3" }
266264 data[3] = { type = "io", loc = "S4" }
267-
265+
268266 # Special I/O modes
269267 spi_clk = { type = "o", loc = "E1", drive = "8mA", slew = "fast" }
270268 i2c_sda = { type = "io", loc = "W1", pull = "up", schmitt = true }
@@ -278,14 +276,4 @@ ChipFlow integrates with Git for version tracking:
2782762. ChipFlow warns if submitting from a dirty Git tree
2792773. Version information is embedded in the manufacturing metadata
280278
281- For CI/CD integration, set the following environment variables:
282-
283- .. code-block :: bash
284-
285- # CI/CD environment variables
286- export CHIPFLOW_CI=1
287- export CHIPFLOW_NONINTERACTIVE=1
288-
289- # Authentication
290- export CHIPFLOW_API_KEY_ID=your_ci_key_id
291- export CHIPFLOW_API_KEY_SECRET=your_ci_key_secret
279+ For CI/CD integration, call the `chipflow ` command as usual, and make sure to set your `CHIPFLOW_API_KEY ` using your CI providers' secret handling.
0 commit comments