Skip to content

Commit f4450eb

Browse files
hzellercopybara-github
authored andcommitted
Confuse Markdown parsers less by not overdoing indentation.
PiperOrigin-RevId: 703053684
1 parent 44c62a3 commit f4450eb

File tree

2 files changed

+180
-182
lines changed

2 files changed

+180
-182
lines changed

README.md

Lines changed: 90 additions & 91 deletions
Original file line numberDiff line numberDiff line change
@@ -199,97 +199,96 @@ purpose, and correspond to the components in this XLS stack diagram:
199199
[mkdocs](https://google.github.io/xls/contributing/#rendering-documentation).
200200
* [`xls`](https://github.com/google/xls/tree/main/xls): Project-named
201201
subdirectory within the repository, in common Bazel-project style.
202-
203-
* [`build`](https://github.com/google/xls/tree/main/xls/BUILD): Build
204-
macros that create XLS artifacts; e.g. convert DSL to IR, create test
205-
targets for DSL code, etc.
206-
* [`codegen`](https://github.com/google/xls/tree/main/xls/codegen):
207-
Verilog AST (VAST) support to generate Verilog/SystemVerilog operations
208-
and FSMs. VAST is built up by components we call *generators* (e.g.
209-
PipelineGenerator, SequentialGenerator for FSMs) in the translation from
210-
XLS IR.
211-
* [`common`](https://github.com/google/xls/tree/main/xls/common): "base"
212-
functionality that layers on top of standard library usage. Generally we
213-
use [Abseil](https://abseil.io) versions of base constructs wherever
214-
possible.
215-
* [`contrib/xlscc`](https://github.com/google/xls/tree/main/xls/contrib/xlscc):
216-
Experimental C++ syntax support that targets XLS IR (alternative path to
217-
DSLX) developed by a sister team at Google, sharing the same open source
218-
/ testing flow as the rest of the XLS project. May be of particular
219-
interest for teams with existing C++ HLS code bases.
220-
* [`data_structures`](https://github.com/google/xls/tree/main/xls/data_structures):
221-
Generic data structures used in XLS that augment standard libraries;
222-
e.g. BDDs, union find, min cut, etc.
223-
* [`delay_model`](https://github.com/google/xls/tree/main/xls/estimators/delay_model):
224-
Functionality to characterize, describe, and interpolate data delay for
225-
XLS IR operations on a target backend process. Already-characterized
226-
descriptions are placed in `xls/estimators/delay_model/models` and can
227-
be referred to via command line flags.
228-
* [`dslx`](https://github.com/google/xls/tree/main/xls/dslx): A DSL
229-
(called "DSLX") that mimics Rust, while being an immutable
230-
expression-language dataflow DSL with hardware-oriented features; e.g.
231-
arbitrary bitwidths, entirely fixed size objects, fully analyzeable call
232-
graph. XLS team has found dataflow DSLs are a good fit to describe
233-
hardware as compared to languages designed assume von Neumann style
234-
computation.
235-
* [`fuzzer`](https://github.com/google/xls/tree/main/xls/fuzzer): A
236-
whole-stack multiprocess fuzzer that generates programs at the DSL level
237-
and cross-compares different execution engines (DSL interpreter, IR
238-
interpreter, IR JIT, code-generated-Verilog simulator). Designed so that
239-
it can easily be run on different nodes in a cluster simultaneously and
240-
accumulate shared findings.
241-
* [`examples`](https://github.com/google/xls/tree/main/xls/examples):
242-
Example computations that are tested and executable through the XLS
243-
stack.
244-
* [`experimental`](https://github.com/google/xls/tree/main/xls/experimental):
245-
Artifacts captured from experimental explorations.
246-
* [`interpreter`](https://github.com/google/xls/tree/main/xls/interpreter):
247-
Interpreter for XLS IR - useful for debugging and exploration. For cases
248-
needing throughput, consider using the JIT (below).
249-
* [`ir`](https://github.com/google/xls/tree/main/xls/ir): XLS IR
250-
definition, text parser/formatter, and facilities for abstract
251-
evaluation.
252-
* [`jit`](https://github.com/google/xls/tree/main/xls/jit): LLVM-based JIT
253-
for XLS IR. Enables native-speed execution of DSLX and XLS IR programs.
254-
* [`modules`](https://github.com/google/xls/tree/main/xls/modules):
255-
Hardware building block DSLX "libraries" (outside the DSLX standard
256-
library) that may be easily reused or instantiated in a broader design.
257-
* [`netlist`](https://github.com/google/xls/tree/main/xls/netlist):
258-
Libraries that parse/analyze/interpret netlist-level descriptions, as
259-
are generally given in simple structural Verilog with an associated cell
260-
library.
261-
* [`passes`](https://github.com/google/xls/tree/main/xls/passes): Passes
262-
that run on the XLS IR as part of optimization, before scheduling / code
263-
generation.
264-
* [`scheduling`](https://github.com/google/xls/tree/main/xls/scheduling):
265-
Scheduling algorithms, determine when operations execute (e.g. which
266-
pipeline stage) in a clocked design.
267-
* [`simulation`](https://github.com/google/xls/tree/main/xls/simulation):
268-
Code that wraps Verilog simulators and generates Verilog testbenches for
269-
XLS computations. [iverilog](https://github.com/steveicarus/iverilog) is
270-
currently used to simulate as it supports non-synthesizable testbench
271-
constructs.
272-
* [`solvers`](https://github.com/google/xls/tree/main/xls/solvers):
273-
Converters from XLS IR into SMT solver input, such that formal proofs
274-
can be run on XLS computations; e.g. Logical Equalence Checks between
275-
XLS IR and a netlist description. [Z3](https://github.com/Z3Prover/z3)
276-
is used as the solver engine.
277-
* [`synthesis`](https://github.com/google/xls/tree/main/xls/synthesis):
278-
Interface that wraps backend synthesis flows, such that tools can be
279-
retargeted e.g. between ASIC and FPGA flows.
280-
* [`tests`](https://github.com/google/xls/tree/main/xls/tests):
281-
Integration tests that span various top-level components of the XLS
282-
project.
283-
* [`tools`](https://github.com/google/xls/tree/main/xls/tools):
284-
[Many tools](https://google.github.io/xls/tools/) that work with the XLS
285-
system and its libraries in a decomposed way via command line
286-
interfaces.
287-
* [`uncore_rtl`](https://github.com/google/xls/tree/main/xls/uncore_rtl):
288-
Helper RTL that interfaces XLS-generated blocks with device top-level
289-
for e.g. FPGA experiments.
290-
* [`visualization`](https://github.com/google/xls/tree/main/xls/visualization):
291-
Visualization tools to inspect the XLS compiler/system interactively.
292-
See [IR visualization](https://google.github.io/xls/ir_visualization/).
202+
* [`build`](https://github.com/google/xls/tree/main/xls/BUILD): Build
203+
macros that create XLS artifacts; e.g. convert DSL to IR, create test
204+
targets for DSL code, etc.
205+
* [`codegen`](https://github.com/google/xls/tree/main/xls/codegen):
206+
Verilog AST (VAST) support to generate Verilog/SystemVerilog operations
207+
and FSMs. VAST is built up by components we call *generators* (e.g.
208+
PipelineGenerator, SequentialGenerator for FSMs) in the translation from
209+
XLS IR.
210+
* [`common`](https://github.com/google/xls/tree/main/xls/common): "base"
211+
functionality that layers on top of standard library usage. Generally we
212+
use [Abseil](https://abseil.io) versions of base constructs wherever
213+
possible.
214+
* [`contrib/xlscc`](https://github.com/google/xls/tree/main/xls/contrib/xlscc):
215+
Experimental C++ syntax support that targets XLS IR (alternative path to
216+
DSLX) developed by a sister team at Google, sharing the same open source
217+
/ testing flow as the rest of the XLS project. May be of particular
218+
interest for teams with existing C++ HLS code bases.
219+
* [`data_structures`](https://github.com/google/xls/tree/main/xls/data_structures):
220+
Generic data structures used in XLS that augment standard libraries;
221+
e.g. BDDs, union find, min cut, etc.
222+
* [`delay_model`](https://github.com/google/xls/tree/main/xls/estimators/delay_model):
223+
Functionality to characterize, describe, and interpolate data delay for
224+
XLS IR operations on a target backend process. Already-characterized
225+
descriptions are placed in `xls/estimators/delay_model/models` and can
226+
be referred to via command line flags.
227+
* [`dslx`](https://github.com/google/xls/tree/main/xls/dslx): A DSL
228+
(called "DSLX") that mimics Rust, while being an immutable
229+
expression-language dataflow DSL with hardware-oriented features; e.g.
230+
arbitrary bitwidths, entirely fixed size objects, fully analyzeable call
231+
graph. XLS team has found dataflow DSLs are a good fit to describe
232+
hardware as compared to languages designed assume von Neumann style
233+
computation.
234+
* [`fuzzer`](https://github.com/google/xls/tree/main/xls/fuzzer): A
235+
whole-stack multiprocess fuzzer that generates programs at the DSL level
236+
and cross-compares different execution engines (DSL interpreter, IR
237+
interpreter, IR JIT, code-generated-Verilog simulator). Designed so that
238+
it can easily be run on different nodes in a cluster simultaneously and
239+
accumulate shared findings.
240+
* [`examples`](https://github.com/google/xls/tree/main/xls/examples):
241+
Example computations that are tested and executable through the XLS
242+
stack.
243+
* [`experimental`](https://github.com/google/xls/tree/main/xls/experimental):
244+
Artifacts captured from experimental explorations.
245+
* [`interpreter`](https://github.com/google/xls/tree/main/xls/interpreter):
246+
Interpreter for XLS IR - useful for debugging and exploration. For cases
247+
needing throughput, consider using the JIT (below).
248+
* [`ir`](https://github.com/google/xls/tree/main/xls/ir): XLS IR
249+
definition, text parser/formatter, and facilities for abstract
250+
evaluation.
251+
* [`jit`](https://github.com/google/xls/tree/main/xls/jit): LLVM-based JIT
252+
for XLS IR. Enables native-speed execution of DSLX and XLS IR programs.
253+
* [`modules`](https://github.com/google/xls/tree/main/xls/modules):
254+
Hardware building block DSLX "libraries" (outside the DSLX standard
255+
library) that may be easily reused or instantiated in a broader design.
256+
* [`netlist`](https://github.com/google/xls/tree/main/xls/netlist):
257+
Libraries that parse/analyze/interpret netlist-level descriptions, as
258+
are generally given in simple structural Verilog with an associated cell
259+
library.
260+
* [`passes`](https://github.com/google/xls/tree/main/xls/passes): Passes
261+
that run on the XLS IR as part of optimization, before scheduling / code
262+
generation.
263+
* [`scheduling`](https://github.com/google/xls/tree/main/xls/scheduling):
264+
Scheduling algorithms, determine when operations execute (e.g. which
265+
pipeline stage) in a clocked design.
266+
* [`simulation`](https://github.com/google/xls/tree/main/xls/simulation):
267+
Code that wraps Verilog simulators and generates Verilog testbenches for
268+
XLS computations. [iverilog](https://github.com/steveicarus/iverilog) is
269+
currently used to simulate as it supports non-synthesizable testbench
270+
constructs.
271+
* [`solvers`](https://github.com/google/xls/tree/main/xls/solvers):
272+
Converters from XLS IR into SMT solver input, such that formal proofs
273+
can be run on XLS computations; e.g. Logical Equalence Checks between
274+
XLS IR and a netlist description. [Z3](https://github.com/Z3Prover/z3)
275+
is used as the solver engine.
276+
* [`synthesis`](https://github.com/google/xls/tree/main/xls/synthesis):
277+
Interface that wraps backend synthesis flows, such that tools can be
278+
retargeted e.g. between ASIC and FPGA flows.
279+
* [`tests`](https://github.com/google/xls/tree/main/xls/tests):
280+
Integration tests that span various top-level components of the XLS
281+
project.
282+
* [`tools`](https://github.com/google/xls/tree/main/xls/tools):
283+
[Many tools](https://google.github.io/xls/tools/) that work with the XLS
284+
system and its libraries in a decomposed way via command line
285+
interfaces.
286+
* [`uncore_rtl`](https://github.com/google/xls/tree/main/xls/uncore_rtl):
287+
Helper RTL that interfaces XLS-generated blocks with device top-level
288+
for e.g. FPGA experiments.
289+
* [`visualization`](https://github.com/google/xls/tree/main/xls/visualization):
290+
Visualization tools to inspect the XLS compiler/system interactively.
291+
See [IR visualization](https://google.github.io/xls/ir_visualization/).
293292

294293
## Community
295294

0 commit comments

Comments
 (0)