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 Murax config with native jtag based on the docs #434

Merged
merged 4 commits into from
Nov 15, 2024

Conversation

goekce
Copy link
Contributor

@goekce goekce commented Nov 13, 2024

I will use the native Jtag on AMD FPGAs often, so I created a Murax config according to the docs in:

https://github.com/SpinalHDL/VexRiscv/tree/master/doc/nativeJtag

It was my first experience with Scala. I would be glad to hear your feedback on whether my approach with ifGen is plausible. I had doubts about whether I should create an independent class or not.

@Dolu1990
Copy link
Member

Hi ^^

That should be fine.
The one down side is that :

          val jtagCtrl = JtagTapInstructionCtrl()
          val tap = jtagCtrl.fromXilinxBscane2(userId = 2)

Will not get named in the verilog because it isn't captured as a reference in the component (it is only captured in the "case" scope)

Instead, it could be defined next the were the val jtag is defined as following :

val jtagNative = withNativeJtag generate new ClockingArea(debugClockDomain){
  val jtagCtrl = JtagTapInstructionCtrl()
  val tap = jtagCtrl.fromXilinxBscane2(userId = 2)
}

Then those can be used from the "case" statment ^^
Note i used a xxx generate yyy instead of a ifGen. both are equivalent.

@goekce
Copy link
Contributor Author

goekce commented Nov 13, 2024

That should be fine.

You probably refer to my approach with ifGen, no?

I indeed could not find any jtagNative string in the generated code Murax.v. Now I moved the names outside and they are visible.

I believe they don't belong to val io because io is only for generating the interface signals, right?

Is this what you recommended?

@Dolu1990
Copy link
Member

You probably refer to my approach with ifGen, no?

Ahh the whole PR ^^

I believe they don't belong to val io because io is only for generating the interface signals, right?

Yes right, io is just for the component in/out

Look all good.
Thanks :D

@Dolu1990 Dolu1990 merged commit 7f2bccb into SpinalHDL:master Nov 15, 2024
1 check passed
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