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

Add PCA9506ish i/o expander logic block, deal with multi-targets and fix mux features #269

Merged
merged 3 commits into from
Jan 29, 2025

Conversation

nathanaelhuffman
Copy link
Collaborator

@nathanaelhuffman nathanaelhuffman commented Jan 28, 2025

This block works as an emulated PCA9506 I/O expander.
Tri-state logic control left to the user at the top. Pretty good test coverage on this one, and it leverages the common i2c target phy block like the mux also did.

This also adds a few more outputs (so backwards compatible changes) to the target phy to expose more info like start and stop which allows the upstream state machines to recover more gracefully.

This also fleshes out the missing "mixed-mode" i2c packets in the simulation controller where the controller can issue write-repeated-start-read type i2c transactions.

I added a multi-target consolidator, and multi-target test cases to both the I/O expander and the mux. Doing this uncovered a few bugs related to bus sharing, which have now been addressed and all the sims and the new and old test cases are running well.

@nathanaelhuffman nathanaelhuffman force-pushed the pca9506ish branch 2 times, most recently from b01dc85 to 3668f54 Compare January 28, 2025 22:10
@nathanaelhuffman nathanaelhuffman changed the title Add PCA9506ish i/o expander logic block Add PCA9506ish i/o expander logic block, deal with multi-targets and fix mux features Jan 28, 2025
Copy link
Collaborator

@Aaron-Hartwig Aaron-Hartwig left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

hdl/ip/vhd/i2c/muxes/PCA9545ish/pca9545ish_top.vhd Outdated Show resolved Hide resolved
hdl/ip/vhd/i2c/muxes/PCA9545ish/pca9545ish_function.vhd Outdated Show resolved Hide resolved
Add input signal so that we can ignore requests to enable multiple
mux channels concurrently, even across virtual pca9545s, and 
test cases to check this stuff.
adds the phy consolidator and test
@nathanaelhuffman nathanaelhuffman enabled auto-merge (rebase) January 29, 2025 03:59
@nathanaelhuffman nathanaelhuffman merged commit dc6ca1d into main Jan 29, 2025
8 checks passed
@nathanaelhuffman nathanaelhuffman deleted the pca9506ish branch January 29, 2025 05:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants