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

Pinmux refinements #169

Closed
10 tasks done
marnovandermaas opened this issue Aug 30, 2024 · 3 comments
Closed
10 tasks done

Pinmux refinements #169

marnovandermaas opened this issue Aug 30, 2024 · 3 comments
Assignees
Labels
enhancement New feature or request

Comments

@marnovandermaas
Copy link
Contributor

marnovandermaas commented Aug 30, 2024

This issue tracks the outstanding tasks for the pin multiplexer.

  • Use padring design so that the pinmux can be instantiated in sonata_system instead of top_sonata: Pinmux and top generation #154 (comment)
  • Describe the pinmux generation and design in documentation. #349
  • Generate table of register description for pinmux based on TOML file.
  • Test writing different values to selectors.
  • Reduce number of SPI instances.
  • Allow more flexible use of the Rasbperry Pi HAT and Arduino Shield. For example hook up the PWM.
  • Split top generation from pinmux generation.
  • Route Verilator pins through pinmux.
  • Rename xbar_main.json to xbar_main.json.tpl. Then rename xbar_main_generated.hjson to xbar_main.json. #348
  • Agree on a naming convention here that makes it obvious what is going on in terms of which IOs related to blocks, which relate to pads and their direction at the block level. E.g. uart_tx_i is an input here but it's actually an output for the UART block. It isn't too hard to make this switch mentally when reading the RTL in this instance but it's not so easy in the case of I2C as the one i2c_scl has both inputs and outputs which are reversed compared to the block and it's easy to get confused.

Points not done:

  • Route the XADC through pinmux is not a good idea because these are analogue pins.
@marnovandermaas marnovandermaas added the enhancement New feature or request label Aug 30, 2024
@HU90m HU90m self-assigned this Sep 30, 2024
@elliotb-lowrisc
Copy link
Contributor

Perhaps fix these input <-> inout mismatches too?

WARNING: [Synth 8-6104] Input port 'ser0_rx' has an internal driver [/home/eb/sonata-system/build/lowrisc_sonata_system_0/src/lowrisc_sonata_system_0/rtl/fpga/top_sonata.sv:266]
WARNING: [Synth 8-6104] Input port 'ser1_rx' has an internal driver [/home/eb/sonata-system/build/lowrisc_sonata_system_0/src/lowrisc_sonata_system_0/rtl/fpga/top_sonata.sv:268]
WARNING: [Synth 8-6104] Input port 'rs232_rx' has an internal driver [/home/eb/sonata-system/build/lowrisc_sonata_system_0/src/lowrisc_sonata_system_0/rtl/fpga/top_sonata.sv:270]
WARNING: [Synth 8-6104] Input port 'appspi_d1' has an internal driver [/home/eb/sonata-system/build/lowrisc_sonata_system_0/src/lowrisc_sonata_system_0/rtl/fpga/top_sonata.sv:278]
WARNING: [Synth 8-6104] Input port 'ethmac_cipo' has an internal driver [/home/eb/sonata-system/build/lowrisc_sonata_system_0/src/lowrisc_sonata_system_0/rtl/fpga/top_sonata.sv:281]
WARNING: [Synth 8-6104] Input port 'mb3' has an internal driver [/home/eb/sonata-system/build/lowrisc_sonata_system_0/src/lowrisc_sonata_system_0/rtl/fpga/top_sonata.sv:331]
WARNING: [Synth 8-6104] Input port 'mb8' has an internal driver [/home/eb/sonata-system/build/lowrisc_sonata_system_0/src/lowrisc_sonata_system_0/rtl/fpga/top_sonata.sv:336]

@HU90m
Copy link
Member

HU90m commented Oct 10, 2024

Perhaps fix these input <-> inout mismatches too?

👍 fixed this in: #226

@marnovandermaas
Copy link
Contributor Author

Most of this done and the things that aren't done are split into separate issues.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants