Skip to content

Releases: ART3121/lace

Lace 0.6.0

Choose a tag to compare

@github-actions github-actions released this 09 Oct 17:12

0.6.0 (2026-10-09)

  • Placas FPGA (docs/FPGA.md): o Lace
    conhece a Terasic DE2-115 (Cyclone IV E EP4CE115F29C7) e a DE10-Nano
    (Cyclone V 5CSEBA6U23I7), com os pinos tirados dos manuais da Terasic. O
    fpga.json, ao lado do .spf, diz a placa e liga as portas do topo aos
    sinais dela ("rst": "!KEY[0]", "out[7:0]": "LEDR[7:0]"), e o Lace gera
    o topo da placa, que inverte, corta e completa larguras. lace fpga boards mostra as placas e os pinos; lace fpga check confere o
    fpga.json contra a placa e as portas do topo, com todos os problemas de
    uma vez.
  • O Quartus Prime, que compila para as placas Intel, é a segunda exceção à
    regra do bundle: --quartus <DIR> (ou LACE_QUARTUS), senão
    QUARTUS_ROOTDIR, senão as pastas padrão do instalador. lace tools
    mostra o que achou; no JSON, quartus, e a ferramenta quartus.
  • lace fpga build compila os processadores e depois o projeto para a
    placa pelo Quartus, sem abrir a interface: grava o projeto do Quartus em
    .lace/fpga/<placa>/ e roda quartus_map, quartus_fit, quartus_asm e
    quartus_sta, os passos synthesize, fit, bitstream e timing. O
    resultado traz os erros e avisos do Quartus com arquivo, linha e número da
    mensagem, o .sof (mais o .rbf e o .svf sem compressão, para o
    openFPGALoader), os recursos da FPGA e a Fmax e as folgas de cada clock.
    No JSON, fpga-build.
  • lace fpga program grava na placa o .sof da última compilação pelo
    Quartus Programmer (quartus_pgm), pelo primeiro cabo ligado ou pelo de
    --cable; --list mostra os cabos. No JSON, fpga-program e
    fpga-cables. Os dois comandos foram conferidos com o Quartus Prime 25.1
    Lite e uma DE2-115.
  • A segurança da placa (docs/FPGA.md, "Segurança da placa"):
    depois do Fitter, o Lace confere no .pin cada pino, direção e padrão de
    I/O contra a placa e reprova a compilação antes do .sof se algum ficou
    fora do lugar; os pinos sem uso ficam escritos no .qsf como entrada em
    alta impedância; e a gravação recusa (stale_bitstream) um .sof que
    não descreve o projeto de agora, comparando pelo conteúdo os fontes, as
    memórias dos processadores, o fpga.json e a definição da placa
    (lace-build.json). Os pinos das duas placas foram conferidos também com
    o .qsf da Terasic, um a um, e a DE10-Nano ganhou os LEDs 6 e 7, que vêm
    dele.
  • O componente opcional openfpgaloader, com o openFPGALoader do OSS CAD
    Suite nas três plataformas, para gravar as placas pelo cabo USB. No JSON,
    a ferramenta se chama openfpgaloader.
  • Lace Studio: a aba Placa FPGA, com as ligações, a compilação e a
    gravação, e o console Placa (os detalhes estão em studio/CHANGELOG.md).
  • O Lace passa a ter licença: MIT (LICENSE).
  • O OSS CAD Suite 2026-09-29 não traz o nextpnr-mistral (Cyclone V) em
    nenhuma plataforma, e o fluxo aberto para a DE10-Nano ficou para depois
    do Quartus.

Arquivos

9719071a1b07bceb81a0711d3e7812eca963be20be1631b8e8522803bff38db6  lace-0.6.0-darwin-arm64-c01.tar.zst
807fc13871e0d51afeb0ea3ae4a5ff5b1ee3128a19e74bb3c616deacd01333c3  lace-0.6.0-darwin-arm64-c02.tar.zst
8c10db53ef45810556b954972d4ad439415dcd13f2d3100543a158b78a0589b9  lace-0.6.0-darwin-arm64-c03.tar.zst
14ecc4c87d80e1c904f024efe2cf3548356bd80c0b99a89a4dd05a95970d4b7b  lace-0.6.0-darwin-arm64-c04.tar.zst
774a518535bbe38b512ebebf0a35a6a51b165a58a81f80de52b866d880b76ae3  lace-0.6.0-darwin-arm64-c05.tar.zst
0445f74785fb16d16d28209624a22c911ce987399e2bb47cff41170f65daead0  lace-0.6.0-darwin-arm64-c06.tar.zst
8009876e14e30d181dd0643ea67b42cf141d40291f9c1f5396ff046c8f8dc3e5  lace-0.6.0-darwin-arm64-c07.tar.zst
88819db7049d76d7d8fc24220428b66cb0d2f27964863a43a0d8556a7d091f54  lace-0.6.0-darwin-arm64-c08.tar.zst
ad6091e0b2d525884ec19b625a7629ee13af073412e69c21583b82082559cdca  lace-0.6.0-darwin-arm64-c09.tar.zst
0c834f24050bdeee2aa24fa296d67ef468769a9d735efa7f31629ce87a63e344  lace-0.6.0-darwin-arm64-c10.tar.zst
22c4adc4a7503d6e9cdd2c4fed81e531fed4dc79916bc8cd15de0f7d61c773ad  lace-0.6.0-darwin-arm64-c11.tar.zst
9be7aa9eb11124f57c1846dcc8dff2f0cb96e8fac773423f79a41fb89c681e06  lace-0.6.0-darwin-arm64-c12.tar.zst
448ef81e65d4a7fb1afb2eb9c927545bdd91357a454d8616edbe410b56d266cc  lace-0.6.0-darwin-arm64-c13.tar.zst
9c75170a7a408946625acd8c95f428d51bbf722c3e41ac4eb08ec629f0589610  lace-0.6.0-darwin-arm64-c14.tar.zst
989bf796f05c50833f38c5b0bc8ef61ba33ea578e34ef276ed7177640532802c  lace-0.6.0-darwin-arm64-c15.tar.zst
0de7fb4c97ef7889d404e8e4b0f053acdf9913122f9467c281d48cbb269e094d  lace-0.6.0-darwin-arm64-c16.tar.zst
0dc49a40541e6cfda39b612db0689ab33b5b09331067a464f7e9d70398f9c46b  lace-0.6.0-darwin-arm64-c17.tar.zst
ae34d9c771430a1424292a8c34edc0e61c37b2a75d11552575a9dfac13907b50  lace-0.6.0-darwin-arm64-index.json
ee3e24f5d960148ab54d59fdb48158c9301c5230a01811a38752a1c9a76409ed  lace-0.6.0-darwin-arm64-lace.tar.zst
275abfa7077aa2cd766d7a30670c3c42b3712c3b1292423fee457e2090446d89  lace-0.6.0-darwin-arm64.tar.gz
714ded612bc63966fb3dcf59acee714de6f006a7214ca4f11966880297d68a3b  lace-0.6.0-linux-x64-c01.tar.zst
744956a0d4b2fd26320bd79c516e12bc432b19c074741b787b911c2b0a347faf  lace-0.6.0-linux-x64-c02.tar.zst
66b83e68c5182a107e8060b809ef80a171a55e6762478ce5b7db8c91d9461bf6  lace-0.6.0-linux-x64-c03.tar.zst
68304845a82e78fe0eada5141883d50b6e62cf7a3eec367176bf0cb8a22b3449  lace-0.6.0-linux-x64-c04.tar.zst
6681fc96521f681d591d272d0f4c73daf19fa6d70b611413cc96cff1cb4f0364  lace-0.6.0-linux-x64-c05.tar.zst
fdc6e8d7bb460217d883385b2d7b85c823ab7042bf128149eb82f6f32a0a34bc  lace-0.6.0-linux-x64-c06.tar.zst
254f21f2496060e9f8d4bd001fc570b0cd73283edaa89d6be83fa2e580a7cacd  lace-0.6.0-linux-x64-c07.tar.zst
ee274bb583ea1258b0f4f629c4d4d6842d65a2354d1c4ce6be5688267ad7e245  lace-0.6.0-linux-x64-c08.tar.zst
e0d31eb8102847d40817a503468e665c081ba46406df832cd3399d830e740aaf  lace-0.6.0-linux-x64-c09.tar.zst
6453b5cb7573b1cc3d40308ee11fe5251c8e1041dc8f587530f058d639220472  lace-0.6.0-linux-x64-c10.tar.zst
6a0cdcb31a8ab80e0a95c35fdb5667fb37b9917a352957d1486615adfa9f5a69  lace-0.6.0-linux-x64-c11.tar.zst
dcfb2ba091f239548d206b58c2c5c50883175253fff401b9a11f0a75d9e36486  lace-0.6.0-linux-x64-c12.tar.zst
82660bb13a768f4a6d42c8e5aec59dcc416e48bc4d9fb74fcf9a8289b0cb6c77  lace-0.6.0-linux-x64-c13.tar.zst
6354ea3eda2ebb0eaa73c2793f541482e356d527eaee743deb4dfb8302684f1b  lace-0.6.0-linux-x64-c14.tar.zst
857513a3eed9e573d43718dfd45d7e4e837b70b8a870dcf168d924f4b6e98ec7  lace-0.6.0-linux-x64-c15.tar.zst
964197fc842d8903697e1f4fa22147a379b0bf06b118e4073fecc9149276681b  lace-0.6.0-linux-x64-c16.tar.zst
0dc49a40541e6cfda39b612db0689ab33b5b09331067a464f7e9d70398f9c46b  lace-0.6.0-linux-x64-c17.tar.zst
b2b451d38f50dce5e96e7a34bb1f03a87b458f008d03833dcc9bfc55687729fe  lace-0.6.0-linux-x64-index.json
368db4714b5a7d79b32b323ef77b385c1b8ca4e56b4e968efad2d0edd18467bb  lace-0.6.0-linux-x64-lace.tar.zst
675cd0c61959ef24a9f34ba8e291749850373a43663408f70fe35a5844bb9f79  lace-0.6.0-linux-x64.tar.gz
27900c9a98d742b683226ca0a5ff659e840e1796c7dbfbf0ea61fa524ae7bf6f  lace-0.6.0-windows-x64-c01.tar.zst
1facf9bfbf8c3702de84ac26313c54ac8786626082934003720f947c822ec95b  lace-0.6.0-windows-x64-c02.tar.zst
8865d3f5e647f7d35bfce1c90b8c8b96ee8e831e1fc12b0969cacf7558f8cf78  lace-0.6.0-windows-x64-c03.tar.zst
e45e6ee13cf2bf23bae52b76a65a6902ae10f84e666159c95b62978fc923f047  lace-0.6.0-windows-x64-c04.tar.zst
930a479cc7895c4a3b37bebbb9db611daf49678c8db659dcb34ad265b47f1cb1  lace-0.6.0-windows-x64-c05.tar.zst
f95881f8b0dcbc8b16498d3ba68f0795bbd6973c76d8aae51a4fe1a810d25ed0  lace-0.6.0-windows-x64-c06.tar.zst
22cbac54deeabaa94a05f2984289a24e3d3830a98951abec74ec24a48bdc8cbd  lace-0.6.0-windows-x64-c07.tar.zst
e65c55f0d93f4da20fe55fcac15d42f0869b179d2fafb45c7393589e8c3b7a14  lace-0.6.0-windows-x64-c08.tar.zst
3a15e60ccd035284b6b9d63f7f4a2fe2dffe0e0932755956ab80daf5c8fe48e1  lace-0.6.0-windows-x64-c09.tar.zst
49869157197b0292c6432d8023b7df8c17de45d1f6eb3b5c991db2ccdd5fcb32  lace-0.6.0-windows-x64-c10.tar.zst
e352e830996c7723468f589ee12c98e8ea22882a9e6e7bffa8d40010f473957f  lace-0.6.0-windows-x64-c11.tar.zst
caac6b5a1c59e99380e3904d70e68cba3c7a3dd1aa09c455707fc902020be5bf  lace-0.6.0-windows-x64-c12.tar.zst
3a538b3ff5d6290922be59d8adcec72ad61afb1b0be728b8ea70958cdf91188e  lace-0.6.0-windows-x64-c13.tar.zst
870e4564209d6cf70dfd4daa7b494e2d6247d73d7e5874d0df731b3ec45c92b5  lace-0.6.0-windows-x64-c14.tar.zst
aff4b4fe141e2f6ea9336d3d5eee11a9aaefcd16d73c7a6f8eedb75ea12b3a70  lace-0.6.0-windows-x64-index.json
ba5eac90023219a75c9eabd87ea21423d0053d65f8588bd31aa9366943ecf68b  lace-0.6.0-windows-x64-lace.tar.zst
c0f4e1aebed0ce3f7b496680367da527b7adc4a379e2367d01e1a14a6c0f6f99  lace-0.6.0-windows-x64-setup.exe

Lace 0.5.0

Choose a tag to compare

@github-actions github-actions released this 08 Oct 15:48

0.5.0 (2026-10-08)

  • lace learn: exercícios de Verilog no estilo do rustlings
    (docs/LEARN.md). lace learn init cria a pasta de
    exercícios, um projeto Lace por exercício, e lace learn entra no modo
    watch: a cada gravação, o Lace roda o check e a simulação no Icarus e
    compara cada saída do módulo do aluno com a de uma solução de referência,
    amostra a amostra. A correção diz em quantas amostras cada saída errou, o
    instante do primeiro erro e, quando dá, a causa (porta renomeada, saída
    sem atribuição, reset que só erra quando ativo), e a onda abre com as
    saídas ao lado das da referência e o primeiro erro marcado. Os
    subcomandos check, list, hint, reset, wave e dev check têm
    --json. A primeira trilha, verilog, tem 25 exercícios, de primeiros
    passos a hierarquia, e vem no componente opcional lace-learn, que os
    instaladores oferecem na instalação Advanced (no Windows, embaixo do
    Icarus) e o lace install lace-learn acrescenta depois. O código é o
    crate novo lace-learn, que o Studio também usa.
  • Lace Studio: a vista Exercícios, a aba do enunciado e a correção a cada
    gravação (os detalhes estão em studio/CHANGELOG.md).

Arquivos

9719071a1b07bceb81a0711d3e7812eca963be20be1631b8e8522803bff38db6  lace-0.5.0-darwin-arm64-c01.tar.zst
807fc13871e0d51afeb0ea3ae4a5ff5b1ee3128a19e74bb3c616deacd01333c3  lace-0.5.0-darwin-arm64-c02.tar.zst
8c10db53ef45810556b954972d4ad439415dcd13f2d3100543a158b78a0589b9  lace-0.5.0-darwin-arm64-c03.tar.zst
14ecc4c87d80e1c904f024efe2cf3548356bd80c0b99a89a4dd05a95970d4b7b  lace-0.5.0-darwin-arm64-c04.tar.zst
774a518535bbe38b512ebebf0a35a6a51b165a58a81f80de52b866d880b76ae3  lace-0.5.0-darwin-arm64-c05.tar.zst
0445f74785fb16d16d28209624a22c911ce987399e2bb47cff41170f65daead0  lace-0.5.0-darwin-arm64-c06.tar.zst
8009876e14e30d181dd0643ea67b42cf141d40291f9c1f5396ff046c8f8dc3e5  lace-0.5.0-darwin-arm64-c07.tar.zst
88819db7049d76d7d8fc24220428b66cb0d2f27964863a43a0d8556a7d091f54  lace-0.5.0-darwin-arm64-c08.tar.zst
ad6091e0b2d525884ec19b625a7629ee13af073412e69c21583b82082559cdca  lace-0.5.0-darwin-arm64-c09.tar.zst
0c834f24050bdeee2aa24fa296d67ef468769a9d735efa7f31629ce87a63e344  lace-0.5.0-darwin-arm64-c10.tar.zst
22c4adc4a7503d6e9cdd2c4fed81e531fed4dc79916bc8cd15de0f7d61c773ad  lace-0.5.0-darwin-arm64-c11.tar.zst
9be7aa9eb11124f57c1846dcc8dff2f0cb96e8fac773423f79a41fb89c681e06  lace-0.5.0-darwin-arm64-c12.tar.zst
448ef81e65d4a7fb1afb2eb9c927545bdd91357a454d8616edbe410b56d266cc  lace-0.5.0-darwin-arm64-c13.tar.zst
9c75170a7a408946625acd8c95f428d51bbf722c3e41ac4eb08ec629f0589610  lace-0.5.0-darwin-arm64-c14.tar.zst
b2942cd4c66064d8d4931e0853c774504e29f30c595e7d9e7bfec1bb4a3e528c  lace-0.5.0-darwin-arm64-c15.tar.zst
7d1d8b25b82ce7b3c49d83358a701273cbffa1cd1e80f3a3b6ee6b9587f4eca0  lace-0.5.0-darwin-arm64-c16.tar.zst
04e605a88e5ad84dc815993fc3ac93bf5943aba8615c3bbb987d2b3c027ce6a5  lace-0.5.0-darwin-arm64-index.json
1812c8f5ae26f60a14d9849fb28ad4c1ae716de999f9f959d4cd63045ada94b0  lace-0.5.0-darwin-arm64-lace.tar.zst
e827ddcaa26f84fdf0bc3c7b4d944c5db6e3f7eccf46aff5f5bed0e0404d1c89  lace-0.5.0-darwin-arm64.tar.gz
714ded612bc63966fb3dcf59acee714de6f006a7214ca4f11966880297d68a3b  lace-0.5.0-linux-x64-c01.tar.zst
744956a0d4b2fd26320bd79c516e12bc432b19c074741b787b911c2b0a347faf  lace-0.5.0-linux-x64-c02.tar.zst
68304845a82e78fe0eada5141883d50b6e62cf7a3eec367176bf0cb8a22b3449  lace-0.5.0-linux-x64-c03.tar.zst
6681fc96521f681d591d272d0f4c73daf19fa6d70b611413cc96cff1cb4f0364  lace-0.5.0-linux-x64-c04.tar.zst
66b83e68c5182a107e8060b809ef80a171a55e6762478ce5b7db8c91d9461bf6  lace-0.5.0-linux-x64-c05.tar.zst
fdc6e8d7bb460217d883385b2d7b85c823ab7042bf128149eb82f6f32a0a34bc  lace-0.5.0-linux-x64-c06.tar.zst
254f21f2496060e9f8d4bd001fc570b0cd73283edaa89d6be83fa2e580a7cacd  lace-0.5.0-linux-x64-c07.tar.zst
ee274bb583ea1258b0f4f629c4d4d6842d65a2354d1c4ce6be5688267ad7e245  lace-0.5.0-linux-x64-c08.tar.zst
e0d31eb8102847d40817a503468e665c081ba46406df832cd3399d830e740aaf  lace-0.5.0-linux-x64-c09.tar.zst
6453b5cb7573b1cc3d40308ee11fe5251c8e1041dc8f587530f058d639220472  lace-0.5.0-linux-x64-c10.tar.zst
6a0cdcb31a8ab80e0a95c35fdb5667fb37b9917a352957d1486615adfa9f5a69  lace-0.5.0-linux-x64-c11.tar.zst
dcfb2ba091f239548d206b58c2c5c50883175253fff401b9a11f0a75d9e36486  lace-0.5.0-linux-x64-c12.tar.zst
82660bb13a768f4a6d42c8e5aec59dcc416e48bc4d9fb74fcf9a8289b0cb6c77  lace-0.5.0-linux-x64-c13.tar.zst
6354ea3eda2ebb0eaa73c2793f541482e356d527eaee743deb4dfb8302684f1b  lace-0.5.0-linux-x64-c14.tar.zst
2953dea3a04d588aec2b00c3b21befd401a6af1b6613ad44e076a7838e67a410  lace-0.5.0-linux-x64-c15.tar.zst
7d1d8b25b82ce7b3c49d83358a701273cbffa1cd1e80f3a3b6ee6b9587f4eca0  lace-0.5.0-linux-x64-c16.tar.zst
98eb7803cc1d52c43a7acb68685602c7c895a295e4f2daede4c523e880053aaa  lace-0.5.0-linux-x64-index.json
a6e73cf80b8b9538e4f611fd63c367f0af3a1a7a6809748200787950951483ec  lace-0.5.0-linux-x64-lace.tar.zst
633a23ce147317a1231e6b51fa7bd086b85f9095021b903b40331939f5b4d5a6  lace-0.5.0-linux-x64.tar.gz
27900c9a98d742b683226ca0a5ff659e840e1796c7dbfbf0ea61fa524ae7bf6f  lace-0.5.0-windows-x64-c01.tar.zst
1facf9bfbf8c3702de84ac26313c54ac8786626082934003720f947c822ec95b  lace-0.5.0-windows-x64-c02.tar.zst
8865d3f5e647f7d35bfce1c90b8c8b96ee8e831e1fc12b0969cacf7558f8cf78  lace-0.5.0-windows-x64-c03.tar.zst
8c40ed8beaf07d09f4b7014e6e1b2c3f488851711cdd15a4ddff37c295d74e93  lace-0.5.0-windows-x64-c04.tar.zst
f95881f8b0dcbc8b16498d3ba68f0795bbd6973c76d8aae51a4fe1a810d25ed0  lace-0.5.0-windows-x64-c05.tar.zst
22cbac54deeabaa94a05f2984289a24e3d3830a98951abec74ec24a48bdc8cbd  lace-0.5.0-windows-x64-c06.tar.zst
e65c55f0d93f4da20fe55fcac15d42f0869b179d2fafb45c7393589e8c3b7a14  lace-0.5.0-windows-x64-c07.tar.zst
367a44681d5f8561cb10e239ed3322b41ddfe54545b5d91ec24e51e9a372889c  lace-0.5.0-windows-x64-c08.tar.zst
49869157197b0292c6432d8023b7df8c17de45d1f6eb3b5c991db2ccdd5fcb32  lace-0.5.0-windows-x64-c09.tar.zst
e352e830996c7723468f589ee12c98e8ea22882a9e6e7bffa8d40010f473957f  lace-0.5.0-windows-x64-c10.tar.zst
2a780f83c655a109362fdbc1359202287dc9b3d6297c0a1066d73967d0215b66  lace-0.5.0-windows-x64-c11.tar.zst
95ca7294d01aac812b94858c2a81762c9338a084c8ebdaf88fc534b5de99128e  lace-0.5.0-windows-x64-c12.tar.zst
8dfcfbc6405ff1f36181e70378ea2a1406f9bff54be7fa364f3599f328fcd489  lace-0.5.0-windows-x64-index.json
68f74e269afa09db23db5345aa35f32b907c4295f21e439edc25443b44af51e8  lace-0.5.0-windows-x64-lace.tar.zst
2a3ab42715142702a7774002160e3fb0b4931acd5a6b54cca6414f61cdc65432  lace-0.5.0-windows-x64-setup.exe

Lace 0.4.0

Choose a tag to compare

@github-actions github-actions released this 07 Oct 22:56

0.4.0 (2026-10-07)

  • Simulação rápida, o Fast Sim da AURORA: lace sim --fast roda sem gravar
    onda, para ver a saída do testbench, as saídas do processador e os testes
    cocotb na velocidade do simulador. O testbench Verilog, do projeto ou de um
    processador (-p), roda no Verilator compilado sem --trace, num
    obj_dir_fast_<topo> à parte, e o Verilator ignora os $dumpfile e
    $dumpvars dele; um testbench cocotb roda os testes sem a onda, no Icarus
    (vvp -none) ou, com --verilator, no Verilator. No JSON, a simulação
    traz fast; na API, SimulationOptions::fast e SimulationResult::fast.
  • O cocotb também roda no Verilator: lace sim --verilator com um testbench
    .py compila o design com o main e a VPI do cocotb e grava a onda em
    <módulo de teste>.vcd. cocotb_needs_icarus deixou de existir; um
    cocotb sem a biblioteca do simulador dá cocotb_unavailable. Testado no
    Windows; no Linux e no macOS, não.
  • YANC 6.0 no bundle (era a 5.6; a 5.7 ficou no meio). Pelo CHANGELOG dele:
    DIV, MOD e F_DIV levam três ciclos, e cada divisão vira
    <divisão> x; NOP; <leitura>, com as leituras novas QUO, REM e
    F_QUO (o Fmax do sapho_all foi de 9,43 para 21,9 MHz na DE10-Nano); o
    asmcomp recusa um .asm escrito à mão com divisão sem essa sequência.
    O código que nenhum caminho alcança sai do programa e do hardware, a pilha
    sem #NDSTAC/#SDEPTH fica com a profundidade que o programa usa, e
    recursão em C± é erro. No Studio, o assembly conhece as três leituras.
  • Windows: o Verilator reaproveita o modelo em dia. Ele anotava o
    verilator_bin sem .exe entre as entradas do modelo, não reconhecia
    nada como em dia, gerava o C++ de novo e recompilava tudo a cada simulação,
    a biblioteca dele junto; agora, com o design igual, a compilação leva
    menos de 1 s (num contador, 9 s antes). Sai também o "o sistema não pode
    encontrar o caminho especificado" que o script dele escrevia a cada
    chamada, e os avisos do g++ sobre a biblioteca do próprio Verilator viram
    informação.
  • Lace Studio (os detalhes estão em studio/CHANGELOG.md):
    • o PRISM (F10) desenha o esquemático no próprio Studio, a partir do
      netlist da síntese, com as cores do tema, a hierarquia, a busca e o
      destaque das redes; a CLI continua com o Graphviz (lace synth --svg);
    • a Rápida (F9) é a simulação rápida, e o item do Explorador que marca o
      testbench só marca, sem simular;
    • layout da janela: cada vista vai para qualquer região, há uma barra
      lateral direita, e os layouts com nome guardam a janela inteira;
    • barra de título integrada, com os menus, o nome do projeto e os botões
      da janela numa faixa só;
    • as Preferências têm uma página por assunto, e o tema Atlas passou ao
      azul do ATLAS.

Arquivos

9719071a1b07bceb81a0711d3e7812eca963be20be1631b8e8522803bff38db6  lace-0.4.0-darwin-arm64-c01.tar.zst
807fc13871e0d51afeb0ea3ae4a5ff5b1ee3128a19e74bb3c616deacd01333c3  lace-0.4.0-darwin-arm64-c02.tar.zst
8c10db53ef45810556b954972d4ad439415dcd13f2d3100543a158b78a0589b9  lace-0.4.0-darwin-arm64-c03.tar.zst
14ecc4c87d80e1c904f024efe2cf3548356bd80c0b99a89a4dd05a95970d4b7b  lace-0.4.0-darwin-arm64-c04.tar.zst
774a518535bbe38b512ebebf0a35a6a51b165a58a81f80de52b866d880b76ae3  lace-0.4.0-darwin-arm64-c05.tar.zst
0445f74785fb16d16d28209624a22c911ce987399e2bb47cff41170f65daead0  lace-0.4.0-darwin-arm64-c06.tar.zst
8009876e14e30d181dd0643ea67b42cf141d40291f9c1f5396ff046c8f8dc3e5  lace-0.4.0-darwin-arm64-c07.tar.zst
88819db7049d76d7d8fc24220428b66cb0d2f27964863a43a0d8556a7d091f54  lace-0.4.0-darwin-arm64-c08.tar.zst
ad6091e0b2d525884ec19b625a7629ee13af073412e69c21583b82082559cdca  lace-0.4.0-darwin-arm64-c09.tar.zst
0c834f24050bdeee2aa24fa296d67ef468769a9d735efa7f31629ce87a63e344  lace-0.4.0-darwin-arm64-c10.tar.zst
22c4adc4a7503d6e9cdd2c4fed81e531fed4dc79916bc8cd15de0f7d61c773ad  lace-0.4.0-darwin-arm64-c11.tar.zst
9be7aa9eb11124f57c1846dcc8dff2f0cb96e8fac773423f79a41fb89c681e06  lace-0.4.0-darwin-arm64-c12.tar.zst
448ef81e65d4a7fb1afb2eb9c927545bdd91357a454d8616edbe410b56d266cc  lace-0.4.0-darwin-arm64-c13.tar.zst
9c75170a7a408946625acd8c95f428d51bbf722c3e41ac4eb08ec629f0589610  lace-0.4.0-darwin-arm64-c14.tar.zst
b50b1ead1ff813f92b3d2b0aa2ae75ea05647a0385c522bd776af88f495b3818  lace-0.4.0-darwin-arm64-c15.tar.zst
dcfe6d5a87d7c2e8afd97884cff73794539494d53c4b17ccdbcd54d57c1cd9ab  lace-0.4.0-darwin-arm64-index.json
be7a7b31664515bf0011cc90cf79ca76733950cb2b85447e3864d09be2f16426  lace-0.4.0-darwin-arm64-lace.tar.zst
7850f607206a2f6a8976cc122dfb0098644576409d58e040b1101154b9eff532  lace-0.4.0-darwin-arm64.tar.gz
714ded612bc63966fb3dcf59acee714de6f006a7214ca4f11966880297d68a3b  lace-0.4.0-linux-x64-c01.tar.zst
744956a0d4b2fd26320bd79c516e12bc432b19c074741b787b911c2b0a347faf  lace-0.4.0-linux-x64-c02.tar.zst
68304845a82e78fe0eada5141883d50b6e62cf7a3eec367176bf0cb8a22b3449  lace-0.4.0-linux-x64-c03.tar.zst
6681fc96521f681d591d272d0f4c73daf19fa6d70b611413cc96cff1cb4f0364  lace-0.4.0-linux-x64-c04.tar.zst
66b83e68c5182a107e8060b809ef80a171a55e6762478ce5b7db8c91d9461bf6  lace-0.4.0-linux-x64-c05.tar.zst
fdc6e8d7bb460217d883385b2d7b85c823ab7042bf128149eb82f6f32a0a34bc  lace-0.4.0-linux-x64-c06.tar.zst
254f21f2496060e9f8d4bd001fc570b0cd73283edaa89d6be83fa2e580a7cacd  lace-0.4.0-linux-x64-c07.tar.zst
ee274bb583ea1258b0f4f629c4d4d6842d65a2354d1c4ce6be5688267ad7e245  lace-0.4.0-linux-x64-c08.tar.zst
e0d31eb8102847d40817a503468e665c081ba46406df832cd3399d830e740aaf  lace-0.4.0-linux-x64-c09.tar.zst
6453b5cb7573b1cc3d40308ee11fe5251c8e1041dc8f587530f058d639220472  lace-0.4.0-linux-x64-c10.tar.zst
6a0cdcb31a8ab80e0a95c35fdb5667fb37b9917a352957d1486615adfa9f5a69  lace-0.4.0-linux-x64-c11.tar.zst
dcfb2ba091f239548d206b58c2c5c50883175253fff401b9a11f0a75d9e36486  lace-0.4.0-linux-x64-c12.tar.zst
82660bb13a768f4a6d42c8e5aec59dcc416e48bc4d9fb74fcf9a8289b0cb6c77  lace-0.4.0-linux-x64-c13.tar.zst
6354ea3eda2ebb0eaa73c2793f541482e356d527eaee743deb4dfb8302684f1b  lace-0.4.0-linux-x64-c14.tar.zst
b8544e6c72d583374c278caae8c25284fb86dee95d898649ee6a9444c20f3cfb  lace-0.4.0-linux-x64-c15.tar.zst
c2a5127b4a8611d02fed355f83d8c31075d0a2896477ea74a1caf4d69529998b  lace-0.4.0-linux-x64-index.json
aa80c07699ee012ee63bb0b13595ecdd0dfc9169bec9be8a5f58eeccd86bb992  lace-0.4.0-linux-x64-lace.tar.zst
c36fbea30812972891f7e16d5fe7dbfd2bdba068ba03819d1f4018326fc2c8cc  lace-0.4.0-linux-x64.tar.gz
27900c9a98d742b683226ca0a5ff659e840e1796c7dbfbf0ea61fa524ae7bf6f  lace-0.4.0-windows-x64-c01.tar.zst
1facf9bfbf8c3702de84ac26313c54ac8786626082934003720f947c822ec95b  lace-0.4.0-windows-x64-c02.tar.zst
8865d3f5e647f7d35bfce1c90b8c8b96ee8e831e1fc12b0969cacf7558f8cf78  lace-0.4.0-windows-x64-c03.tar.zst
bfc15c8c554a5114bc8e7b6b2133b33ae4cc0e9a3365e1cbddc7218c343faf95  lace-0.4.0-windows-x64-c04.tar.zst
f95881f8b0dcbc8b16498d3ba68f0795bbd6973c76d8aae51a4fe1a810d25ed0  lace-0.4.0-windows-x64-c05.tar.zst
22cbac54deeabaa94a05f2984289a24e3d3830a98951abec74ec24a48bdc8cbd  lace-0.4.0-windows-x64-c06.tar.zst
e65c55f0d93f4da20fe55fcac15d42f0869b179d2fafb45c7393589e8c3b7a14  lace-0.4.0-windows-x64-c07.tar.zst
367a44681d5f8561cb10e239ed3322b41ddfe54545b5d91ec24e51e9a372889c  lace-0.4.0-windows-x64-c08.tar.zst
49869157197b0292c6432d8023b7df8c17de45d1f6eb3b5c991db2ccdd5fcb32  lace-0.4.0-windows-x64-c09.tar.zst
e352e830996c7723468f589ee12c98e8ea22882a9e6e7bffa8d40010f473957f  lace-0.4.0-windows-x64-c10.tar.zst
058c6307e5b18128abd850e063db3713b0ccea67569dff1f01a20ce89eba199a  lace-0.4.0-windows-x64-c11.tar.zst
c4d32ca20cc81a4dffa94f2b96d4539cb2c0f38ed3ff650703939e08c05a062d  lace-0.4.0-windows-x64-index.json
85b390a77b21a66cbeeea2c6c3e0feb03c145ebd71e8573b79de10c3bbe79758  lace-0.4.0-windows-x64-lace.tar.zst
f88f17faef57de204c441aff653f1e470a9b399ccfb4cb8e6a9af0db2d8a08e6  lace-0.4.0-windows-x64-setup.exe

Lace 0.3.0

Choose a tag to compare

@github-actions github-actions released this 06 Oct 23:14

0.3.0 (2026-10-06)

Windows:

  • Nenhuma ferramenta abre janela de console: no Lace Studio, cada passo de
    build, verificação, simulação e síntese abria uma, e fechá-la matava a
    ferramenta. A saída continua nos consoles do Studio e no terminal.
  • As ferramentas não ficam mais órfãs. Cada passo roda num Job Object, e o
    que a ferramenta iniciou termina com ela: ao cancelar, no fim do passo e
    quando o Lace ou o Studio morrem, mesmo encerrados pelo Gerenciador de
    Tarefas (antes, o iverilog e o vvp seguiam rodando). Quando o Lace tem
    console, como num terminal, as ferramentas continuam nele, sem o custo de
    um console novo por ferramenta (ProcessJob e hide_console no
    lace-core).
  • lace update abre o assistente da versão nova com os componentes
    instalados marcados, inclusive os que o lace install acrescentou, que
    antes saíam na atualização. O assistente e o desinstalador abrem sem a
    saída do lace e fora do job de quem o chamou: o Studio não fica mais
    ocupado até o assistente fechar.
  • No Studio, cancelar um lace install encerra também o download em
    andamento, e "Novo arquivo" ou "Nova pasta" numa pasta que ainda não
    existe (rtl/modulo.v num projeto sem rtl/) não dá mais "fora do
    projeto".

Todos os sistemas:

  • Um include relativo à pasta de quem o faz falhava no check e no sim
    no Windows (o Icarus recebia o caminho com \) e, em qualquer sistema, no
    sim de um testbench sem $dumpfile, cuja cópia com o dump injetado fica
    em .lace/Temp. Os diagnósticos e a hierarquia trazem os caminhos com o
    separador do sistema, iguais aos do projeto.
  • No Studio, um caminho com .. passando por uma pasta que não existe não
    escapa mais da pasta do projeto.
  • Testbench em Python, com o cocotb: um .py entra no projeto como
    testbench (lace add test_alu.py, criado a partir de um modelo se não
    existe), e lace sim roda os testes no Icarus. Cada teste sai na saída da
    CLI e em simulation.tests no JSON; o que falha é um erro na linha do
    .py e reprova a simulação, e a onda sai do mesmo jeito. O módulo testado
    vem da linha # aurora-toplevel: <módulo> do .py, como na AURORA, ou do
    topo do projeto. Com o Verilator o Lace recusa (cocotb_needs_icarus); o
    check e o hierarchy deixam o .py de fora.
  • lace check não compila mais os processadores: verifica o Verilog que
    está no disco, como o nome diz. Um processador que nunca foi compilado fica
    de fora, com um aviso; se não sobra nada para verificar, sai com
    not_built e a dica de compilar. O JSON do check não tem mais
    builds.
  • O esquemático não recusa mais um módulo com mais de 120 ligações
    (schematic_too_large deixou de existir); continua o prazo de 60 s do
    dot. --no-schematic-limit é aceito e ignorado.
  • A onda do Icarus sai sempre em FST, com a extensão .fst: o
    $dumpfile("<proc>_tb.vcd") do testbench que o YANC gera vira
    <proc>_tb.fst numa cópia do testbench, e o modelo do lace add grava
    .fst. O Verilator continua em VCD, agora sempre com a extensão .vcd
    (antes, um $dumpfile("x.fst") gravava VCD em x.fst). O layout do
    Surfer dos processadores SAPHO lê também o FST.
  • No Studio, o terminal acompanha o projeto aberto (o shell entra na pasta
    do projeto novo), e a aba Lace saiu do painel inferior: a saída do
    lace install e do lace update aparece na tela de Ferramentas.

Arquivos

9719071a1b07bceb81a0711d3e7812eca963be20be1631b8e8522803bff38db6  lace-0.3.0-darwin-arm64-c01.tar.zst
807fc13871e0d51afeb0ea3ae4a5ff5b1ee3128a19e74bb3c616deacd01333c3  lace-0.3.0-darwin-arm64-c02.tar.zst
8c10db53ef45810556b954972d4ad439415dcd13f2d3100543a158b78a0589b9  lace-0.3.0-darwin-arm64-c03.tar.zst
14ecc4c87d80e1c904f024efe2cf3548356bd80c0b99a89a4dd05a95970d4b7b  lace-0.3.0-darwin-arm64-c04.tar.zst
774a518535bbe38b512ebebf0a35a6a51b165a58a81f80de52b866d880b76ae3  lace-0.3.0-darwin-arm64-c05.tar.zst
0445f74785fb16d16d28209624a22c911ce987399e2bb47cff41170f65daead0  lace-0.3.0-darwin-arm64-c06.tar.zst
8009876e14e30d181dd0643ea67b42cf141d40291f9c1f5396ff046c8f8dc3e5  lace-0.3.0-darwin-arm64-c07.tar.zst
4c1861f0f2c2e63d72b3cad7040e7b80c1044af9e2574ce768a6f6a7e60f42c4  lace-0.3.0-darwin-arm64-c08.tar.zst
ad6091e0b2d525884ec19b625a7629ee13af073412e69c21583b82082559cdca  lace-0.3.0-darwin-arm64-c09.tar.zst
0c834f24050bdeee2aa24fa296d67ef468769a9d735efa7f31629ce87a63e344  lace-0.3.0-darwin-arm64-c10.tar.zst
22c4adc4a7503d6e9cdd2c4fed81e531fed4dc79916bc8cd15de0f7d61c773ad  lace-0.3.0-darwin-arm64-c11.tar.zst
9be7aa9eb11124f57c1846dcc8dff2f0cb96e8fac773423f79a41fb89c681e06  lace-0.3.0-darwin-arm64-c12.tar.zst
448ef81e65d4a7fb1afb2eb9c927545bdd91357a454d8616edbe410b56d266cc  lace-0.3.0-darwin-arm64-c13.tar.zst
dfc685dc293d0977f906765dbe71064894af67210e43f5dca7eea09dd44259a6  lace-0.3.0-darwin-arm64-c14.tar.zst
58a293ff41b4481cca29b421bbad43da24bae02c8f73f24d5465d6690b586453  lace-0.3.0-darwin-arm64-c15.tar.zst
1f2ce92d20c1aa028a54af64b9a919a4e48c2e0d2dbe24267dcf8a5fd30fdb29  lace-0.3.0-darwin-arm64-index.json
a4d5036f878d96a88829fd5c599c38cb47f9aa017ee1adf36cf2f3f14cd8f066  lace-0.3.0-darwin-arm64-lace.tar.zst
836064ae91c827ee6321cd868c10424c03b08cf9f3c1844888ba06a094145caf  lace-0.3.0-darwin-arm64.tar.gz
714ded612bc63966fb3dcf59acee714de6f006a7214ca4f11966880297d68a3b  lace-0.3.0-linux-x64-c01.tar.zst
744956a0d4b2fd26320bd79c516e12bc432b19c074741b787b911c2b0a347faf  lace-0.3.0-linux-x64-c02.tar.zst
68304845a82e78fe0eada5141883d50b6e62cf7a3eec367176bf0cb8a22b3449  lace-0.3.0-linux-x64-c03.tar.zst
6681fc96521f681d591d272d0f4c73daf19fa6d70b611413cc96cff1cb4f0364  lace-0.3.0-linux-x64-c04.tar.zst
66b83e68c5182a107e8060b809ef80a171a55e6762478ce5b7db8c91d9461bf6  lace-0.3.0-linux-x64-c05.tar.zst
fdc6e8d7bb460217d883385b2d7b85c823ab7042bf128149eb82f6f32a0a34bc  lace-0.3.0-linux-x64-c06.tar.zst
254f21f2496060e9f8d4bd001fc570b0cd73283edaa89d6be83fa2e580a7cacd  lace-0.3.0-linux-x64-c07.tar.zst
80bd5f68c878f8eeef2dd2ef057275ec3691c597218045c82e5e7f28d9899dce  lace-0.3.0-linux-x64-c08.tar.zst
e0d31eb8102847d40817a503468e665c081ba46406df832cd3399d830e740aaf  lace-0.3.0-linux-x64-c09.tar.zst
6453b5cb7573b1cc3d40308ee11fe5251c8e1041dc8f587530f058d639220472  lace-0.3.0-linux-x64-c10.tar.zst
6a0cdcb31a8ab80e0a95c35fdb5667fb37b9917a352957d1486615adfa9f5a69  lace-0.3.0-linux-x64-c11.tar.zst
dcfb2ba091f239548d206b58c2c5c50883175253fff401b9a11f0a75d9e36486  lace-0.3.0-linux-x64-c12.tar.zst
82660bb13a768f4a6d42c8e5aec59dcc416e48bc4d9fb74fcf9a8289b0cb6c77  lace-0.3.0-linux-x64-c13.tar.zst
6354ea3eda2ebb0eaa73c2793f541482e356d527eaee743deb4dfb8302684f1b  lace-0.3.0-linux-x64-c14.tar.zst
57b66619836b246b682485df02d487e3ae002350b7b4a324e0c6f697a3ccf970  lace-0.3.0-linux-x64-c15.tar.zst
dd3bb4d0c27571ecbad443e1d18d57333bccf7dde39e9c7a8ceac94c0c5aeb2f  lace-0.3.0-linux-x64-index.json
1a438f282feb19b971f474a8a2e27c8e863152c6b99297e108ca93e0c613eded  lace-0.3.0-linux-x64-lace.tar.zst
337217d74ef3f4a3b9e194d569882133964c96365a38e15d2c2663a19cf354ac  lace-0.3.0-linux-x64.tar.gz
27900c9a98d742b683226ca0a5ff659e840e1796c7dbfbf0ea61fa524ae7bf6f  lace-0.3.0-windows-x64-c01.tar.zst
1facf9bfbf8c3702de84ac26313c54ac8786626082934003720f947c822ec95b  lace-0.3.0-windows-x64-c02.tar.zst
8865d3f5e647f7d35bfce1c90b8c8b96ee8e831e1fc12b0969cacf7558f8cf78  lace-0.3.0-windows-x64-c03.tar.zst
432f90feaae410c54e0da19eabf3e3be4fc8dc8c0d3ce871523b0f53e35b2465  lace-0.3.0-windows-x64-c04.tar.zst
f95881f8b0dcbc8b16498d3ba68f0795bbd6973c76d8aae51a4fe1a810d25ed0  lace-0.3.0-windows-x64-c05.tar.zst
22cbac54deeabaa94a05f2984289a24e3d3830a98951abec74ec24a48bdc8cbd  lace-0.3.0-windows-x64-c06.tar.zst
e65c55f0d93f4da20fe55fcac15d42f0869b179d2fafb45c7393589e8c3b7a14  lace-0.3.0-windows-x64-c07.tar.zst
367a44681d5f8561cb10e239ed3322b41ddfe54545b5d91ec24e51e9a372889c  lace-0.3.0-windows-x64-c08.tar.zst
49869157197b0292c6432d8023b7df8c17de45d1f6eb3b5c991db2ccdd5fcb32  lace-0.3.0-windows-x64-c09.tar.zst
116f70e623229b8740e8b9d521912eeca8edb8e0a31be1eecd3251fb2e54cd4c  lace-0.3.0-windows-x64-c10.tar.zst
80d3f2b429f691c09547428e66b3516b3523c150e32306a60f143e1e5bf200c3  lace-0.3.0-windows-x64-c11.tar.zst
45b6eb95db33dc4f97f80009321ff209ad143281b5b82b8ab445258df2713791  lace-0.3.0-windows-x64-index.json
058fbbab3a3c1455c9811c7f29ccc16a10612ec841e611865d56a86342055d97  lace-0.3.0-windows-x64-lace.tar.zst
a71767f43fcd255ae6f1e7b41ce43f767709251f70d74fc9d8c8c8b1b57f29cd  lace-0.3.0-windows-x64-setup.exe

surfer-aurora v0.7.0-nips.10, pré-compilado

Choose a tag to compare

@github-actions github-actions released this 06 Oct 23:37
d3e1e81

O surfer-aurora v0.7.0-nips.10 compilado do commit fixado em bundle/versions.json, para o bundle do Lace não compilá-lo a cada release. Não é uma versão do Lace.

Lace 0.2.0

Choose a tag to compare

@github-actions github-actions released this 05 Oct 18:47

0.2.0 (2026-10-05)

A 0.1.0 saiu com o nome Solar; esta é a mesma linha com o nome Lace (o
executável lace, a pasta ~/.local/share/lace, LACE_* no lugar de
SOLAR_*). O Lace não troca o Solar: quem tem o Solar 0.1.0 o desinstala e
instala o Lace (INSTALL.md, "Quem tem o Solar 0.1.0").

Lace Studio e instaladores:

  • O Lace Studio, o ambiente gráfico, passa a morar neste repositório
    (studio/), com a versão do Lace, e a sair no instalador como o
    componente studio, marcado na instalação Recommended. Fica no bundle
    (toolchain/studio/), usa o bundle em que está e ganha atalho no menu de
    aplicativos: o lace-studio.desktop no Linux, o Lace Studio.app em
    ~/Applications no macOS, o menu Iniciar (e, se marcado, a área de
    trabalho) no Windows. lace install studio o instala depois, e o
    uninstall.sh tira o atalho (ADR 0013, lace_installer::desktop).
  • Os instaladores avisam quando falta o WebView do Studio: o webkit2gtk 4.1
    no Linux, o WebView2 no Windows.
  • O cocotb também é componente no Windows, do bloco MSYS2 do lace-toolchain
    (o Python e a VPI do Verilator compilados lá). Com isso, todo aplicativo
    do bundle é selecionável nas três plataformas; só a linha de comando é
    sempre instalada.
  • O bloco de Windows (msys) vem do lace-toolchain ucrt64-v1.
  • No Windows, o lace.exe, o instalador, o Studio e o surfer-aurora levam
    o runtime do Visual C++ dentro (+crt-static, .cargo/config.toml): não
    pedem mais o VCRUNTIME140.dll. O Lace cria a pasta tmp/ do MSYS antes
    do Verilator, cujo make avisava could not find /tmp a cada chamada.
  • Mínimos documentados (INSTALL.md, Requisitos): no Linux, a glibc 2.35
    (Ubuntu 22.04, Debian 12, Fedora 36), porque o CI compila no
    ubuntu-22.04 (antes, ubuntu-24.04, que exigia a 2.39); no macOS, o 13,
    com MACOSX_DEPLOYMENT_TARGET=13.0 no build.
  • O release.yml publica os pedaços do bundle na raiz da release (antes eles
    ficavam em apps/ e o passo das somas falhava) e confere que o Studio
    tem a versão do Lace.
  • Windows, achados no primeiro CI com o instalador: a hierarquia (lace hierarchy, a árvore do Studio) perdia as \ dos caminhos dos arquivos (o
    .vvp do Icarus os guarda sem escapar; o iverilog da hierarquia passa a
    recebê-los com /); abrir o projeto enquanto outro processo grava o .spf
    falhava na troca do arquivo (Project::open canonicaliza a pasta e tenta de
    novo por alguns milissegundos, e a gravação também); o docs/schema vai em
    LF no checkout. Limitação registrada: no Windows, a simulação encerrada pelo
    --timeout perde o que ainda estava no buffer de saída do simulador.

O Lace passa a cobrir o desenvolvimento em Verilog e o de processadores
SAPHO num fluxo só. Um projeto é Verilog; os processadores, quando existem,
são compilados pelo YANC antes de verificar, simular ou sintetizar. Um
projeto só de Verilog não precisa do YANC: a biblioteca SAPHO só entra
quando o projeto tem processadores (antes, entrava sempre que o YANC estava
instalado).

Comandos e opções novos:

  • lace add <arquivo.v>... [--tb] registra arquivos Verilog e decide pelo
    conteúdo, com a regra da AURORA, se cada um é módulo ou testbench. O
    arquivo que não existe é criado a partir de um modelo, e o testbench-modelo
    já instancia o módulo testado. O primeiro módulo vira o topo; o primeiro
    testbench, o simulado.
  • lace remove <arquivo.v>... tira do projeto, sem apagar do disco.
  • lace top [arquivo|módulo] mostra o topo ou o escolhe, por arquivo ou
    por nome de módulo. Qualquer Verilog pode ser o topo, inclusive o
    Hardware/<proc>.v que o build de um processador gerou; a exceção é o
    nome de testbench (tb_<nome>.v, <nome>_tb.v, tb.v,
    verilog::is_testbench_name), recusado com invalid_name. lace add
    não escolhe sozinho um arquivo com nome assim como topo.
  • lace check <arquivo> verifica só os módulos de um arquivo;
    lace check --lint acrescenta o verilator --lint-only -Wall.
  • lace sim <testbench> escolhe o testbench e simula.
  • lace wave, sem argumento, abre a onda da simulação do projeto;
    lace wave -p <proc>, a do processador.
  • lace wave e lace sim --open abrem a onda de um processador SAPHO
    com o layout da AURORA: as variáveis do programa, a instrução de assembly
    e a linha do C± de cada ciclo, em grupos (I/O, instruções, variáveis,
    flags). As tabelas do YANC (trad_opcode.txt, trad_cmm.txt) viram
    tradutores do Surfer em .lace/Temp/surfer/, sem tocar na configuração
    do usuário. --no-layout abre a onda crua. No Core, wave_layout e
    prepare_wave_layout (ADR 0011).
  • O bundle traz o cliente web do surfer-aurora (surfer-aurora/web/, da
    mesma tag do executável), para interfaces que mostram a onda numa página;
    Toolchain::surfer_web_dir o acha.
  • lace status mostra o módulo de topo e os .v da pasta que não estão
    registrados.
  • lace move <origem>... <destino> move ou renomeia arquivos e pastas do
    projeto, com os argumentos do mv, e mantém o .spf em dia: os arquivos
    registrados continuam registrados no lugar novo, na mesma posição, e o
    topo, o testbench escolhido e o módulo de topo acompanham. O .spf, a
    .lace e as pastas e o fonte dos processadores ficam no lugar; o destino
    que existe não é sobrescrito (Project::move_path, erros novos
    outside_project, cannot_move e path_exists).
  • lace hierarchy [-p <proc>] mostra a árvore de instâncias do design e de
    cada testbench (os registrados e o de cada processador compilado), como o
    Icarus as elabora: parâmetros resolvidos, blocos generate expandidos e
    as unidades da biblioteca SAPHO que o processador usa. Uma elaboração que
    falha não esconde as outras. Não compila nem grava relatório
    (lace_core::hierarchy, docs/schema/hierarchy.json).

Nome de projeto:

  • lace new (e Project::create) só aceita letras sem acento, dígitos,
    _ e -, começando por letra: o nome vira a pasta, o .spf e parte do
    caminho de tudo que as ferramentas recebem. Antes aceitava espaço e
    acento. Projetos que já existem, como os da AURORA, continuam abrindo.
    validate_project_name é pública, para uma interface avisar enquanto o
    usuário digita.

Comandos e opções que saíram:

Saiu No lugar
lace file add (--testbench, --create) lace add (--tb); o arquivo que não existe é criado
lace file remove lace remove
lace file top lace top
lace file testbench lace sim <testbench>
lace file list, lace proc list lace status
lace input escrever <proc>/Simulation/input_<n>.txt, um valor por linha
lace output lace sim -p mostra as saídas; o arquivo continua em <proc>/Simulation/output_<n>.txt
lace config (show, path, set-compiler, unset-compiler) e o arquivo de configuração --compiler <DIR> ou a variável LACE_COMPILER, em qualquer comando
--config, LACE_CONFIG nenhum: não há mais arquivo de configuração
proc set --show-arrays proc set --arrays
build --freq, --clocks, --show-arrays; sim --freq, --clocks proc set --freq, --clocks, --arrays, que gravam no .spf
sim --simulator verilator sim --verilator
sim --vcd a extensão do $dumpfile do testbench
sim --jobs nenhum: o Verilator usa todos os núcleos
sim --no-build, synth --no-build nenhum: os processadores são sempre compilados antes
synth --no-widths nenhum: o esquemático sempre traz as larguras
wave --view, wave --wait nenhum

lace completions continua, mas não aparece mais na ajuda.

De qualquer pasta do projeto:

  • Todo comando funciona de qualquer pasta do projeto, não só da raiz: o Lace
    procura o .spf na pasta atual e nas de cima (Project::discover). Fora
    de um projeto, o erro é project_not_found.
  • Dentro da pasta de um processador (soma/, soma/Software/,
    soma/Simulation/), build, check, sim, wave, synth e
    proc set sem nome valem para ele; no resto do projeto, para o projeto
    inteiro (proc set pede o nome). lace status marca o processador da
    pasta, e o JSON dele ganha here.
  • lace check -p <proc> verifica só o Verilog do processador e o testbench
    gerado pelo YANC (CheckOptions::processor).

Saída em texto:

  • Num terminal, uma barra mostra que cada passo está rodando (Simulating (vvp), Compiling the model (verilator)), com o tempo decorrido. É
    indeterminada, porque os simuladores não informam quanto falta, e só
    aparece depois de 0,3 s.
  • O fim de cada operação diz o que ela fez e como terminou (finished in 0.09 s, failed after 2 ms: cmmcomp exited with code 1), lista cada
    passo (done, failed, not run) e mostra os artefatos com o papel e o
    caminho: Generated, ou, numa falha, Written before it stopped e Not generated. Quando um build falha antes, check, sim e synth dizem que
    a fase seguinte não rodou. Depois da simulação, a dica de abrir a onda.

Testbench dos processadores:

  • O build copia o testbench que o YANC gera na pasta temporária para
    <processador>/Simulation/<processador>_tb.v, como a AURORA, e a
    simulação roda essa cópia. Antes ele ficava só em
    .lace/Temp/<processador>/, e parecia que o YANC não o gerava.

Relatórios:

  • Cada lace build, check, sim e synth grava um relatório no
    histórico do projeto (.lace/reports/run-NNNNNN/): status, comando,
    máquina, ferramentas do bundle com versão e caminho, projeto, tempo de
    cada fase e de cada ferramenta, estatísticas de síntese, artefatos e, numa
    falha, o erro e o fim da saída do passo. É a função de relatório do
    Alpha-Solar, trazida para o Core
    (ADR 0010).
  • lace report mostra o mais novo; lace report show <ID>, um deles;
    lace report list [--limit N], todos; lace report compare [ID] [--against ID] [--summary] compara as estatísticas de síntese e os tempos
    de...
Read more

Solar 0.1.0

Choose a tag to compare

@github-actions github-actions released this 30 Sep 19:11

0.1.0 (2026-09-29)

Primeira versão. Substitui a orquestração da AURORA para o SAPHO.

  • solar-core: API para criar projetos e processadores (formato .spf da
    AURORA), compilar com o YANC (C± e C), simular com Icarus Verilog e
    Verilator, verificar sintaxe e sintetizar com Yosys, desenhar o esquemático
    com o show do Yosys e o Graphviz, e abrir ondas no surfer-aurora.
  • solar: a linha de comando sobre o solar-core, com saída em texto ou
    JSON.
  • Bundle de ferramentas 2026.09.29: OSS CAD Suite de 2026-09-29, YANC v5.6,
    surfer-aurora v0.7.0-nips.10 e, no Windows, Graphviz 16.1.0. O Solar só
    executa ferramentas desse bundle; a exceção declarada é o compilador C++, o
    make e o Perl do sistema, para o Verilator.
  • O OSS CAD Suite é dividido por ferramenta: o bundle completo de Linux tem
    300 MiB, contra os 2,5 GB do pacote inteiro.
  • Instaladores: assistente (Inno Setup) no Windows, instalação guiada no
    terminal no Linux e no macOS. Tipo Recomendada por padrão; Avançada para
    escolher os componentes.

Plataformas: Linux x64, macOS Apple Silicon, Windows 10 e 11 x64.

Arquivos

c5ca9ce287148d3a7776c71125e7309e70cc2dfa90fa390b7d05c5cf987261f0  solar-0.1.0-darwin-arm64.tar.gz
aa2061512b58344b41de1b85f7e295308191dde16846889e0b366a90e25ac326  solar-0.1.0-linux-x64.tar.gz
7a825139cab504e76374817a863bbcc328cdfacd06a993b08b908f8340fc9e3a  solar-0.1.0-windows-x64-setup.exe