From 78e2d0b90e3f19ee647e7fd33db696fd81c10610 Mon Sep 17 00:00:00 2001 From: "addw@fa2f8cb1790dfac204f803a3bfd8edda6ef3edc6" Date: Mon, 1 Mar 2021 21:29:06 +0000 Subject: [PATCH] --- HDL_workflow.mdwn | 81 ++++++++++++++++++++++++++--------------------- 1 file changed, 45 insertions(+), 36 deletions(-) diff --git a/HDL_workflow.mdwn b/HDL_workflow.mdwn index 053e92e5a..9413fbf65 100644 --- a/HDL_workflow.mdwn +++ b/HDL_workflow.mdwn @@ -31,12 +31,12 @@ The main message here: **use the right tool for the right job**. * ftp server (): large (temporary, auto-generated) file store. -we will add an IRC channel at some point when there are enough people +We will add an IRC channel at some point when there are enough people to warrant having one (and it will be publicly archived) -note also the lack of a "forum" in the above list. this is very deliberate. forums are a serious distraction when it comes to technical heavily goal-orientated development. recent internet users may enjoy looking up the "AOL metoo postings" meme. +Note also the lack of a "forum" in the above list. this is very deliberate. forums are a serious distraction when it comes to technical heavily goal-orientated development. recent internet users may enjoy looking up the "AOL metoo postings" meme. -note also the complete lack of "social platforms". if we wanted to tell everybody how much better each of us are than anyone else in the team, how many times we made a commit (look at me, look at me, i'm so clever), and how many times we went to the bathroom, we would have installed a social media based project "management" system. +Note also the complete lack of "social platforms". if we wanted to tell everybody how much better each of us are than anyone else in the team, how many times we made a commit (look at me, look at me, i'm so clever), and how many times we went to the bathroom, we would have installed a social media based project "management" system. ## Main contact method: mailing list @@ -104,9 +104,9 @@ See ### gmail "spam"ifying the list -see +See -basically it is possible to select any message from the list, create a "filter" (under "More"), +Basically it is possible to select any message from the list, create a "filter" (under "More"), and, on the 2nd dialog box, click the "never send this to Spam" option. ## Bugtracker @@ -168,7 +168,7 @@ VM with only a 20GB HDD allocation. it costs only 8 GBP per month from mythic-beasts and means that the project is in no way dependent on anyone else - not microsoft, not google, not facebook, not amazon. -we tried [gitlab](https://about.gitlab.com/). it didn't go well. please don't ask to replace the above extremely resource-efficient services with it. +We tried [gitlab](https://about.gitlab.com/). it didn't go well. please don't ask to replace the above extremely resource-efficient services with it. # Hardware @@ -253,8 +253,8 @@ access to ultra-high resolution screens. # Software prerequisites -Whilst many resources online advocate "sudo" in front of all root-level -commands below, this quickly becomes tiresome. run "sudo bash", get a +Whilst many resources online advocate "`sudo`" in front of all root-level +commands below, this quickly becomes tiresome. run "`sudo bash`", get a root prompt, and save yourself some typing. * sudo bash @@ -332,7 +332,7 @@ circumstances). * python3 setup.py develop * ctrl-d -testing can then be carried out with "python3 setup.py test" +Testing can then be carried out with "python3 setup.py test" nmigen is a Python toolbox for building complex digital hardware. @@ -403,6 +403,9 @@ Install gdb from source. Obtain the latest tarball, unpack it, then: make -j$(nproc) make install +[gdb](https://en.wikipedia.org/wiki/GNU_Debugger) lets you debug running programs. +[qemu](https://www.qemu.org/) emulates processors, you can run programs under qemu. + ## power_instruction_analyzer (pia) We have a custom tool built in rust by programmerjake to help analyze @@ -430,7 +433,7 @@ Install from git source by doing the following: maturin build --cargo-extra-args=--features=python-extension python3 -m pip install --user target/wheels/*.whl -Note: an ongoing bug in maturin interferes with successful installation. This can be worked around by explicitly installing only the .whl files needed rather than installing everything (\*.whl). +Note: an ongoing bug in maturin interferes with successful installation. This can be worked around by explicitly installing only the `.whl` files needed rather than installing everything (`\*.whl`). ## Chips4Makers JTAG @@ -440,7 +443,13 @@ As this is an actual ASIC, we do not rely on an FPGA's JTAG TAP interface, inste Included is an IDCODE tap point, Wishbone Master (for direct memory read and write, fully independent of the core), IOPad redirection and testing, and general purpose shift register capability for any custom use. -We added a DMI to JTAG bridge in LibreSOC which is directly connected to the core, to access registers and to be able to start and stop the core and change the PC. In combination with the JTAG Wishbone interface the test ASIC can have a bootloader uploaded directly into onboard SRAM and execution begun. +We added a DMI to JTAG bridge in LibreSOC which is directly connected to the core, to access registers and to be able to start and stop the core and change the PC. In combination with the JTAG Wishbone interface the test [ASIC](https://en.wikipedia.org/wiki/Application-specific_integrated_circuit) can have a bootloader uploaded directly into onboard [SRAM](https://en.wikipedia.org/wiki/Static_random-access_memory) and execution begun. + +[Chips4Makers](https://chips4makers.io/) make it possible for makers and hobbyists to make their own open source chips. + +[JTAG](https://en.wikipedia.org/wiki/JTAG) (Joint Test Action Group) is an industry standard for verifying designs and testing printed circuit boards after manufacture. + +The [Wishbone bus](https://en.wikipedia.org/wiki/Wishbone_%28computer_bus%29) is an open source hardware computer bus intended to let the parts of an integrated circuit communicate with each other. ## Coriolis2 @@ -450,14 +459,14 @@ See [[HDL_workflow/coriolis2]] page, for those people doing layout work. After going through the onboarding process and having agreed to take responsibility for certain tasks, ask on the mailing list for git -repository access, sending in a public key (id_rsa.pub). If you do -not have one then generate it with ssh-keygen -t rsa. You will find it -in ~/.ssh +repository access, sending in a public key (`id_rsa.pub`). If you do +not have one then generate it with `ssh-keygen -t rsa`. You will find it +in `~/.ssh` NEVER SEND ANYONE THE PRIVATE KEY. By contrast the public key, on account of being public, is perfectly fine to make... err... public. -Create a file ~/.ssh/config with the following lines: +Create a file `~/.ssh/config` with the following lines: Host git.libre-soc.org Port 922 @@ -506,7 +515,7 @@ done with this script