Skip to content

How to create tri-state interface in block design? #986

Answered by stnolting
franksmicro asked this question in Q&A
Discussion options

You must be logged in to vote

Hey @franksmicro!

I am having an issue creating a tristate output (specifically, for onewire) using the neorv32 wrapper in a Vivado block design.

Oh I know what you're talking about! 😅 Vivado has some issues inferring tri-state drivers that are not at the top level...

Using logic as described in the Datasheet, I created a VHDL module (relevant lines shown below):

So you wrap-up this logic as another IP block for the block design? Sounds right, but also very complicated?! 🤔

For block designs I just use the "Utility Buffer" from the IP catalogue and configure it as simple IOBUF:

Here is the documentation: https://docs.amd.com/r/en-US/ug953-vivado-7series-libraries/IOBUF
But be careful …

Replies: 1 comment 3 replies

Comment options

You must be logged in to vote
3 replies
@franksmicro
Comment options

@stnolting
Comment options

@franksmicro
Comment options

Answer selected by franksmicro
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Category
Q&A
Labels
HW Hardware-related troubleshooting Something is not working as expected
2 participants