Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Manual rewrite and presentation merge #3907

Merged
merged 115 commits into from
Mar 18, 2024
Merged

Manual rewrite and presentation merge #3907

merged 115 commits into from
Mar 18, 2024

Conversation

KrystalDelusion
Copy link
Member

@KrystalDelusion KrystalDelusion commented Aug 27, 2023

Closes YosysHQ-Docs/YosysHQ-Docs#30

There is a list of open todos being generated on the index page, which will need to be removed prior to merging (ideally after all the todos are done), also changing todo_include_todos = True to False in the conf.py. Most of these are for rewriting sections of text which have been moved from their previous location and need to be:

  1. reflowed for consistency,
  2. expanded on (having come from presentation slides), or
  3. rewritten to be less academic and more web docs.
  • Remove the old appnotes from the appendix, with any relevant information merged into main docs where appropriate.
  • Tidy directories to not reference appnotes or presentation.
  • Redo Test Suites page to instead discuss the included tests, rather than the very out of date external tests.
  • Last few blocking TODOs (making sure scripts are up to date with recommended practices etc)

Also adds a note to readme for installing pdflatex if it's missing.
Also changing to furo theme.
Rework images makefile a bit to get it to import and build from resources folder(s).
Currently requires running twice from a clean build due to the way it finds `.dot` files to convert.
Also some other tidy up.
Could be left in for final version, but my current thinking is not?
Hopefully matches enough that any `make docs` call will work from the yosys being built, while still being overridable locally.
Also reflowing text for line width.
Maybe look into supporting commands with options?
Now under the yosys flows section.
Fix #3905 by removing emoji (and move the comment into the if block for less ambiguity).
Adds `latexmk` to README.

Note that latexpdf doesn't seem to like `cmd:ref` links, possibly because the
reference location is inside a latex comment block, but I was under the
impression that there was a reference location in there previously which was
working fine.  May be related to how the `cmd:def` block expands (or doesn't as
the case may be).
@KrystalDelusion
Copy link
Member Author

Preview available on readthedocs/yosys, note that this preview is currently being built manually and won't automatically update with changes to this branch/pr. For up to date builds, use make docs locally.

More complete code examples and confirming Verific support thanks to @povik
Images now included relative to the `docs/source` folder instead of the rst file.
Also makes sure to add the updated `yosyshq.css` (which as a sidenote has ended up as `custom.css` in most of the other docs).
Mostly in the `more_scripting` section, with part of the intro in the `scripting_intro`.
Also includes an extra todo on the installation page and some extra notes on where to find `show` details where relevant.
Also deleting the 011 document.
More :numref: because I figured out they were only failing if I didn't do a full re-make.
Reflow first section a little to help readability.
Also includes a css change to prevent code block caption text from bunching into the caption number.
Combined presentation sections with appnote sections.
Moved a bunch of Yosys one-liners in-line.
Better reference in interactive investigation to memdemo as a part of advanced logic cone selection (esp. because the show commands use some of the advanced features)
- Filling out index descriptions for `using_yosys` and `using_yosys/synthesis`.
- To discourage skipping over these index pages, the toctree in
  `using_yosys/index` is hidden and instead has inline links to the two
  subsections.
- Tidying todos.
- Moves technology mapping to `techmap_synth`, leaving the techmap by example in
  the internals section. `yosys_flows` gets split up, with the coarse-grain
  intro replaced by `synthesis/index`, the extract pass moving to
  `synthesis/extract` and model checking to `more_scripting/model_checking`.
Highlighting the difference between `select prod %ci` and `select prod %ci2` by
introducing `sumproud.out` using the `dump` command.

Playing around with advanced cone example code.
@KrystalDelusion KrystalDelusion marked this pull request as ready for review January 26, 2024 22:02
- Use `:file:` role for file names, as well as `:makevar:` and `:program:`.
- Remove deprecated `linux-arm` and `linux-riscv64` oss-cad-suite targets.
- Add link to ABC.
- More (and better) links to code examples.  Formatted `:file:` text with link
  to source on github.
- Includes a few extra todos (mostly picking up inline code blocks and a couple
  intro reminders).
- Fixing a few missing `:yoscrypt:` and `:cmd:ref:` tags.
- Reflowing some paragraphs for spacing/width.
More detail on `memory_libmap`, the `$__ICE40_RAM4K_` intermediate step, and the
bizarre opt output.
@povik
Copy link
Member

povik commented Feb 9, 2024

I saw some lines in the wip manual that looked pretty out-of-date. That part of the manual seems to yet get its rewrite but wanted to mention it anyway, just in case.

@KrystalDelusion
Copy link
Member Author

I saw some lines in the wip manual that looked pretty out-of-date. That part of the manual seems to yet get its rewrite but wanted to mention it anyway, just in case.

Thanks @povik ! I'm not as familiar with the internals so having someone else look at it is very helpful.

@KrystalDelusion
Copy link
Member Author

Closes #4200

@nakengelhardt
Copy link
Member

nakengelhardt commented Mar 11, 2024

CI failure is due to #4275, you can use output reg [AWIDTH-0:0] count as a workaround.

Although I think this alternative is the recommended style (and it works with both verific and read_verilog without warnings):

module addr_gen 
#(  parameter MAX_DATA=256,
    localparam AWIDTH = $clog2(MAX_DATA)
) ( input en, clk, rst,
	output reg [AWIDTH-1:0] addr
);

`config-clang` is the default, and doesn't need to be run first.  Previous instructions were ambiguous about that point.
Add note on using a different `CXX`.
@nakengelhardt nakengelhardt merged commit 3f54bf1 into master Mar 18, 2024
35 checks passed
@nakengelhardt nakengelhardt deleted the krys/docs branch March 18, 2024 16:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Integrate presentation slides into manual and move to RTD
3 participants