Commit Graph
100 Commits
Author SHA1 Message Date
Uri Shaked 49b8e8724c feat(tt_tool): support for specifying custom GDS file for PNG render
tinytapeout/tt-gds-action#12
2024-02-29 22:38:35 +02:00
Uri Shaked f6fae279c1 fix: projects that manually instantiate standard cells fail
remove an assestion that causes these projects to fail

fix #31
2024-02-21 15:31:28 +02:00
Uri Shaked e8c5040dc5 fix(tt_tool): fails on non-analog projects 2024-02-01 13:06:19 +02:00
Uri Shaked 7126553f3c feat: analog project support
handle ua[7:0] pins in analog modules
2024-01-30 21:43:04 +02:00
Uri Shaked 65a2a24087 feat: tt_block def file for analog projects
They add eight analog pins (`ua[7:0]`) in addition to the standard Tiny Tapeout digital pins.
2024-01-30 17:28:10 +02:00
Uri Shaked ad9184ec8a chore: remove start_date from config.yaml
we don't use it
2024-01-29 10:41:05 +02:00
Uri Shaked 67529a8120 feat(tt_tool): require that clock_hz be an integer 2024-01-23 14:49:41 +02:00
Uri Shaked 87bc6c0738 fix(configure): running with --update-shuttle fails
We're looking for the RTL source file instead of the GL files
2024-01-23 14:23:58 +02:00
Uri Shaked 66e1fc3ff0 feat: update tt_block def files for tt06
The tile sizes have slightly changed as we plan using the openframe caravel variant, as well as power gating all the projects on the shuttle.
2023-12-31 23:58:59 +02:00
Uri Shaked 9d802fbe8c fix(tt_tool): fails on Wokwi projects 2023-12-26 15:06:28 +02:00
Uri Shaked b45db8f5e1 fix(docs): limit_markdown_headings fails 2023-12-24 00:26:33 +02:00
Uri Shaked 1a154feba2 fix(tt_tool): fails to load info.yaml
also --check-docs fails
2023-12-23 22:42:47 +02:00
Uri Shaked 45633298e8 fix(docs): update code to support new info.yaml format 2023-12-23 22:37:55 +02:00
Uri Shaked c2c0d8ffbd refactor: add more types
include types for the new info.yaml
2023-12-23 21:27:22 +02:00
Uri Shaked 0ea5cec65d feat(docs): rename generated markdown index to shuttle_index.md 2023-12-23 13:04:18 +02:00
Uri Shaked 47644b5d71 fix(configure): port detection breaks because of VPWR/VGND
also, doc generation is broken
2023-12-21 00:08:16 +02:00
Uri Shaked 3b25920db0 feat: reject modules with extra ports
also verify port directions
2023-11-26 00:12:12 +02:00
Uri Shaked c3389a1e87 feat: 6x2 tile size support 2023-11-23 21:28:17 +02:00
Uri Shaked 7be3d03064 feat(docs): support new info.yaml/info.md format 2023-11-21 20:41:20 +02:00
Uri Shaked ed28c2f373 feat(precheck): improve error reporting 2023-11-21 01:30:32 +02:00
Uri Shaked 2c969114d1 feat(tt_tool): add --print-top-module argument 2023-11-21 00:25:49 +02:00
Uri Shaked 6e13c146fc feat: initial support for new info.yaml format
1. wokwi_id is now optional
2. remove the "picture" property (it's going away)
2023-11-20 20:18:44 +02:00
Uri Shaked a97371e83a feat(precheck): make top module name optional
if not given, just assume the top module name is the same at the base name of the given GDS file
2023-11-20 17:06:36 +02:00
Uri Shaked 192baef100 refactor(precheck): add missing types 2023-11-20 15:13:59 +02:00
Uri Shaked 2df21d6e92 feat: precheck (#30)
perform DRC checks on GDS files submitted to Tiny Tapeout
2023-11-20 15:02:41 +02:00
Uri Shaked 6702774d07 feat(rom): update config for latest OpenLane 2
DIE_AREA should be a list of numbers and not a string
2023-11-20 14:57:41 +02:00
Uri Shaked d551a4cf5a fix(rom): fails if shuttle_id longer than 4 chars 2023-11-20 14:57:41 +02:00
Uri Shaked 17f91aeca2 feat(rom): add "o" and "f" to the segment font 2023-11-20 14:57:41 +02:00
Uri Shaked cbda91be2b feat: preliminary openframe support 2023-11-20 14:57:41 +02:00
Uri Shaked 359dabc326 feat(docs): add chip map 2023-11-11 12:35:14 +02:00
Uri Shaked a31ae37296 feat(docs): update for tt05 (WiP) 2023-11-09 17:00:59 +02:00
Uri Shaked 98e7cb27ac fix: broken tt_tool
"power_gated" support broke tt_tool
2023-10-27 20:37:15 +03:00
Uri Shaked 89cd2e77e5 fix: "power_switch" is null in shuttle_index.json 2023-10-27 19:54:54 +03:00
Uri Shaked 765ae2df56 feat: support for "power_gated" property in commit_id.json 2023-10-27 19:44:47 +03:00
Uri Shaked 1822432015 feat(reharden): skip ROM and power gated projects 2023-10-26 22:40:08 +03:00
Uri Shaked c3c940d202 fix(reharden): --clone should also update existing repos 2023-10-26 08:22:35 +03:00
Uri Shaked 7ffd198c55 feat: power gating + split spline mux support
1. Read mux indices from modules_placed.yaml instead of manually calculating them
2. Add "power_switch" and "analog" fields to shuttle_index.json
3. Copy the power gate macros (tt_pg_vdd_1, tt_pg_vdd_2) into to tt_top directory
2023-10-21 16:04:52 +03:00
Uri Shaked e6940f63b4 docs(PINOUT): fix broken link 2023-10-20 10:58:07 +03:00
Uri Shaked a221244401 feat: reharden script 2023-10-19 19:57:00 +03:00
Uri Shaked 1c969fe0f3 feat(docs): update README template
1. Include current shuttle name (instead of hard coded "Tiny Tapeout 03p5")
2. Include the git repo URL / commit hash
2023-10-17 10:00:30 +03:00
Uri Shaked 300a179400 fix: fails when project is missing synthesis-stats.txt 2023-10-13 12:03:57 +03:00
Uri Shaked 562ebd4f93 feat: update user module def files
to support tt-multiplexer with power gating. built from tt-multiplexer commit dfbcff452131ea42631f9e358687c22776daffdc
2023-10-12 22:37:09 +03:00
Uri Shaked 82720e4b84 feat: support for skipping designs
by specifying ` "skip": true ` in commit_id.json
2023-10-12 22:34:13 +03:00
Uri Shaked e807454c33 fix: copy powered netlist when building tt_top
the new power gated tt-multiplexer requires powered netlist for the included macros.
2023-10-12 19:08:48 +03:00
Uri Shaked 462004f9e0 feat: generate gl includes for user projects
This enables running GL tests on the final GL netlist of the actual chip
2023-10-01 23:27:36 +03:00
Uri Shaked 5925525982 fix(datasheet): fails when "bidirectional" is empty
e.g.

```yaml
documentation:
  ...

# A description of what the inputs do (e.g. red button, SPI CLK, SPI MOSI, etc).
  inputs:
    - sclrn
    - ser
    - rck
    - srck
    - G
# A description of what the outputs do (e.g. status LED, SPI MISO, etc)
  outputs:
    - q[0]
    - q[1]
    - q[2]
    - q[3]
    - q[4]
    - q[5]
    - q[6]
    - q[7]
# A description of what the bidirectional I/O pins do (e.g. I2C SDA, I2C SCL, etc)
  bidirectional:

```
2023-09-30 07:58:45 +03:00
Uri Shaked 2387160df7 ci: lint job name 2023-09-21 22:31:37 +03:00
Uri Shaked aa8f760375 style: fix lint errors + reformat source with black 2023-09-21 22:30:52 +03:00
Uri Shaked 7d48aab542 ci: add link-check action 2023-09-21 22:25:05 +03:00
Uri Shaked 5725713cbd chore: set up flake8, isort and black with pre-commit 2023-09-21 22:21:59 +03:00
Uri Shaked 3f8a47659c fix: path to openlane2 yosys synth log 2023-09-21 08:17:15 +03:00
Uri Shaked 77fcb0c98f ci: fix broken mypy action
install required type packages
2023-09-19 20:55:52 +03:00
Uri Shaked da14cd0502 ci: github action to check python types 2023-09-19 20:44:43 +03:00
Uri Shaked ff0eea8794 refactor: add more types 2023-09-19 20:42:47 +03:00
Uri Shaked 3b469b9488 refactor: add types to project.py 2023-09-19 19:52:47 +03:00
Uri Shaked 8df6312688 refactor: add types to git_utils 2023-09-19 19:07:34 +03:00
Uri Shaked e981222768 feat: add commit_date field to shuttle_index.json
The commit date provides an easy method to compare two shuttle_index.json files and detect which of the files relates to a newer commit. This enables us to prevent a situation where an earlier shuttle_index overrides a later one.
2023-09-14 15:13:59 +03:00
Uri Shaked 000002721f docs: add qfn-64 pinout 2023-09-14 13:39:32 +03:00
Uri Shaked b03ea5ab2e feat: 3x2 tile size support 2023-09-13 13:58:21 +03:00
Uri Shaked 23da39ba14 feat: include chip ROM when running in verification mode (--test) 2023-09-11 15:35:24 +03:00
Uri Shaked b02cc19e78 fix: shuttle config fails as tt_um_chip_rom verilog is missing
The Chip ROM is now auto generated, so the GL verilog only exists after we configure the shuttle
2023-09-10 20:23:48 +03:00
Uri Shaked cadbfbcd25 feat: Chip ROM auto generation with OpenLane 2
So we can generate the ROM while building the shuttle's GDS
2023-09-10 20:17:58 +03:00
Uri Shaked 5e863fc333 fix: final GDS file name no longer includes ".magic"
The final GDS file name has changed in recent OpenLane2 and is now {module}.gds instead of {module}.magic.gds.
2023-09-10 12:56:17 +03:00
Uri Shaked acb6b6b4c3 refactor: caravel.py -> shuttle.py 2023-09-09 21:45:01 +03:00
Uri Shaked cc1b5806b2 fix: correct project gl path when running configure.py 2023-09-09 21:39:08 +03:00
Uri Shaked 340b747e4a Merge pull request #26 from htfab/tt04
Allow svg and pdf images in the datasheet
2023-09-09 20:37:58 +03:00
Uri Shaked 1da6923f8c fix: wrong extension for .lef file in efabless submission artifact 2023-09-08 23:59:38 +03:00
Uri Shaked e7ea59f4d0 feat(datasheet): roses are red, links are blue
add color to links so they stand out
2023-09-07 21:36:46 +03:00
Uri Shaked 010cebe7d6 fix(datasheet): remove outdated STA / Verification sections 2023-09-07 20:53:56 +03:00
Uri Shaked af58bde8be fix: missing commit_id.json in openlane2 projects 2023-09-06 19:36:15 +03:00
Uri Shaked fd29f74a1a feat: initial support for openlane2 user projects 2023-09-06 18:04:02 +03:00
Uri Shaked da5f3cb1f8 fix(datasheet): broken links to git / extra docs 2023-09-06 10:02:13 +03:00
Uri Shaked 09c57b7938 fix(datasheet): blackslash characters still break the datasheet
applied a bruteforce workaround (replace every backslash with `\mbox{\\textbackslash}`) so we can still get the datasheet generated
2023-09-06 10:02:08 +03:00
Uri Shaked 3f55bd709a feat: copy spef / gl netlists of tt_ctrl/tt_mux 2023-09-05 12:23:37 +03:00
Uri Shaked ae0f2483ba fix(datasheet): backslash characters in project description break the datasheet
e.g. the "description" field of the following info.yaml would break the datasheet generation:

```yaml
documentation:

  author:       "Sarthak Raheja and Bittu N"      # Your name
  title:        "Simple Piano"      # Project title
  language:     "Verilog" # other examples include Verilog, Amaranth, VHDL, etc

  # Short description of what your project does
  description:  |
    The input clock is divided into a series of frequencies to mimic a piano having only 12 keys of one octave. User can choose from a choice of 3-5 octaves. Additionally, few pre-defined tunes have been included using RTTTL logic\n
```
2023-09-05 10:13:21 +03:00
Uri Shaked dac3f4a0a4 fix: disable ROM vmem file generation
it breaks the tiny tapeout staging repo, and we don't use the ROM vmem file yet anyway (the ROM content is hardened as part of the tt-chip-rom repo)
2023-08-06 18:05:39 +03:00
Uri Shaked 64d21511b0 Merge pull request #24 from marnovandermaas/fix_documentation_margin
Increase the bottom margin to show page number
2023-08-01 18:21:20 +03:00
Uri Shaked 24c15519e8 fix(datasheet): broken user module pictures / diagrams
close #22
2023-07-31 09:02:16 +03:00
Uri Shaked 1aa125fdd5 fix(datasheet): broken images, replace scanchain info with mux
- fix some of the broken images
- render the mux's info doc in place of the scanchain doc
2023-07-30 23:09:31 +03:00
Uri Shaked 7842384b6a fix(datasheet): markdown headings break the datasheet
close #23
2023-07-30 22:21:00 +03:00
Uri Shaked 6034820170 fix(datasheet): use shuttle name from config
also, dynamically figure out the repo URL (instead of using an hardcoded value)
2023-07-30 09:40:16 +03:00
Uri Shaked e56503e9c3 docs: remove outdated hardening doc 2023-07-29 23:00:51 +03:00
Uri Shaked 769cc65983 feat(datasheet): include mux addresses 2023-07-29 22:48:53 +03:00
Uri Shaked c83c2cd3c7 feat(datasheet): add bidrectional pins
close #11
2023-07-29 22:28:15 +03:00
Uri Shaked ab9897699f feat: sort projects by sort_id in commit_id.json
Sorting helps preventing projects shifting around as the shuttle fills up. "sort_id" is provided by the tt-app.
2023-07-24 22:12:18 +03:00
Uri Shaked 016ed6e8c1 fix: multi tile projects not placed correctly 2023-07-22 22:51:54 +03:00
Uri Shaked 849e644627 fix: wrong shuttle_index.json format
Each user project info object was wrapped with an extra array. Also added "tiles" property for each user project.
2023-07-22 22:38:46 +03:00
Uri Shaked 26785bea0e feat: support submissions from app.tinytapeout.com (#21)
* feat: copy_macros and copy_final_results commands

* feat: generate shuttle index JSON
includes information about all projects:
- repo
- commit
- mux index
- mux position (X/Y)

* feat: add --create-efabless-submission option
2023-07-21 15:52:04 +03:00
Uri Shaked bb58ee1fae fix(rom): remove a debug print 2023-07-20 09:34:49 +03:00
Uri Shaked 56dd62478b refactor: rename commit-id.json to commit_id.json
better match existing file name conventions
2023-07-19 20:31:52 +03:00
Uri Shaked b920aef0e2 feat: update user module def files
increase single tile dimensions, reduce spacing between tiles.
2023-07-19 14:10:57 +03:00
Uri Shaked 3a6a7d3a2c feat(rom): inital ROM data writer code 2023-07-13 17:54:11 +03:00
Uri Shaked a84161582e fix: create_user_config fails for wokwi projects
close #20
2023-06-27 16:41:04 +03:00
Uri Shaked 887e208b86 cleanup: remove tt03 config.yaml 2023-06-25 22:06:27 +03:00
Uri Shaked df6b703380 feat: store user project commit hash next to the GDS files
close #19
2023-06-25 21:37:12 +03:00
Uri Shaked 6fb355fc59 refactor: migrate from yosys to yowasp-yosys
yowasp-yosys can be installed from pip, so we no longer require the user to install yosys separately.

also freeze requirements.txt versions for reproducible builds
2023-06-25 20:49:36 +03:00
Uri Shaked 0d6fa67ae5 feat: check for missing ports on user module
also improve error messages for user module checks
2023-06-25 20:47:42 +03:00
Uri Shaked 25488cf0df fix: remove openlane1 config generator
it's no longer needed for OpenLane2
2023-06-17 23:07:39 +03:00
Uri Shaked 8549004599 fix: remove stray debug print 2023-06-15 23:03:26 +03:00
Uri Shaked 7b6d93c086 feat: support for openlane2 mux verification 2023-06-03 14:58:17 +03:00