Align header style and refine the introduction and example pages
Headers:
- Convert all page headers to sentence case, preserving acronyms, proper
nouns, and code identifiers. GitHub derives anchors by lowercasing, so
existing #anchor links are unaffected.
Introduction to HAL:
- Link "plugins" to the plugin index
- Correct the claim about the university lecture: HAL underpins its
practical part, and the example projects overlap only part of it
- Describe recovering high-level structure as several complementary
steps rather than one dominant one
- Move "publish reproducible research" to the end of the applications
Using HAL:
- Introduce the top module before referring to it, and move its snippet
into the Python section so no code precedes the Python introduction
- Rewrite the Python examples for readers new to Python, pull the IDs
section to the front, and give every item the same paragraph form
- Explain that the gate library and Python scripts may live outside the
project directory, and that an export always collects them
- Turn the netlist import dialog fields into an enumerated list
- Correct why a recovered netlist has no hierarchy: it is a design-time
construct absent from the chip or bitstream, not something synthesis
necessarily removes
Example projects:
- List each project once instead of three times
- Replace the empty-header tables with definition lists
Crypto Trojan and HAWKEYE:
- Document the ready-to-run hawkeye.py, the preprocessing it needs, and
the S-box database now shipped with HAL
Overhaul wiki: introduction, core, and plugin documentation
Rewrite the introduction and core sections and add dedicated pages for
every shipped plugin.
Introduction:
- Add motivation: what problem HAL solves and nine concrete applications
- Write "Using HAL" from scratch (was an empty stub)
- Document that dataflow, simulator, and HAWKEYE are opt-in, so a default
build cannot run the example projects
- Restructure the WSL section into ordered steps for WSL 2 and WSL 1
- Flesh out the FSM, Toy Cipher, and UART example project pages
Core:
- Fix incorrect API documentation: Data Container documented functions
that do not exist, GateTypeProperty values were missing their c_ prefix,
Endpoint.get_pin() returns an object rather than a name
- Complete Netlist Utilities (documented 1 of 13 functions) and Decorators
(1 of 5 decorators), and drop all deprecated functions in favor of their
decorator replacements
- Add missing API to Boolean Function, Gate, Net, Netlist, and Module
- Add background and motivation to every core page
Plugins:
- Add pages for module identification, Python shell, solve FSM, Boolean
influence, resynthesis, Z3 utilities, Xilinx toolbox, sequential
symbolic execution, and both parser/writer groups
- Fill the bitorder propagation stub
- Make Provided Plugins the single index of all plugins with their CMake
flags and default state, and remove the duplicate list from the build
instructions
- Split the simulator into its four constituent plugins
Housekeeping:
- Add a work-in-progress disclaimer to the wiki home page
- Delete the orphaned Getting Started and waveform viewer widget stubs,
moving the simulation wizard documentation into the simulator page
- Fix broken links and typos throughout