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

Migrate away from deprecated Pads/get_pads mechanism #599

Open
25 of 26 tasks
whitequark opened this issue Jun 26, 2024 · 6 comments
Open
25 of 26 tasks

Migrate away from deprecated Pads/get_pads mechanism #599

whitequark opened this issue Jun 26, 2024 · 6 comments
Labels
applet Component: applet

Comments

@whitequark
Copy link
Member

whitequark commented Jun 26, 2024

The two mechanisms are similar conceptually and mainly differ syntactically. The following command can illustrate the changes required:

$ git diff 38730032..e9571705 -- glasgow/applet/interface/jtag_probe/__init__.py

List of applets that still need migration:

  • applet.audio.dac
  • applet.audio.yamaha_opx
  • applet.control.servo
  • applet.display.hd44780
  • applet.display.pdi
  • applet.interface.analyzer
  • applet.interface.i2c_initiator
  • applet.interface.i2c_target
  • applet.interface.ps2_host
  • applet.interface.sbw_probe
  • applet.interface.spi_controller
  • applet.interface.swd_openocd
  • applet.interface.uart
  • applet.memory.floppy
  • applet.memory.onfi
  • applet.memory.prom
  • applet.program.avr.spi
  • applet.program.m16c
  • applet.program.nrf24lx1
  • applet.radio.nrf24l01
  • applet.sensor.hx711
  • applet.sensor.pmsx003
  • applet.video.hub75_output
  • applet.video.rgb_input
  • applet.video.vga_output
  • boilerplate applet
@whitequark whitequark added applet Component: applet help-wanted Meta: help wanted labels Jun 26, 2024
@q3k
Copy link
Contributor

q3k commented Jun 26, 2024

Like this? (#602) My Amaranth is very rusty and I don't have how to actually test this. Is there an easy way to make sure an Amaranth/Python change is an RTL no-op?

@whitequark
Copy link
Member Author

Is there an easy way to make sure an Amaranth/Python change is an RTL no-op?

No, but the changes are simple enough I expect to catch most issues during review, even if it's tedious.

Improvements to the general applet infrastructure will continue at a decent pace for the next half year or so, and I expect I'll have to sit down and manually test every single applet at the end of it, hopefully while also adding some better tests. It's going to be painful but what can you do?..

@whitequark
Copy link
Member Author

Also I don't even know where my HX711 board is, much less have a load cell on hand...

@q3k
Copy link
Contributor

q3k commented Jun 26, 2024

Any tips on sequencing updates across multiple modules, eg. with UART(pads/ports) being used by multiple applets?

Is there a temporary/transitional mechanism that I could use to first update the applets (or libraries?) and then the other side?

@whitequark
Copy link
Member Author

I'd suggest leaving updating the libraries (UART and I2C in particular) to some later point, they're kind of a pain and I'm going to rewrite UART at least soon, anyway.

For the rest, unfortunately we don't have real applet composability so the answer is suffering. Making things composable is on my TODO list but it goes after this.

@isabelburgos
Copy link
Contributor

One more item for this list - examples.boilerplate still uses pads

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
applet Component: applet
Projects
None yet
Development

No branches or pull requests

3 participants