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

Support for multiple SoC #79

Open
surabibio opened this issue Jan 15, 2023 · 2 comments
Open

Support for multiple SoC #79

surabibio opened this issue Jan 15, 2023 · 2 comments

Comments

@surabibio
Copy link
Contributor

I would like to use 2 SoC. (e.g one exclusively for WiFi and another exclusively for Data Acquisition) I am able to get 2 Verilog files but am unable to synthesis them due to Verilog Error: (VERI-1206) overwriting previous definition of module.
The work around is rename the duplicate modules (e.g module VexRiscv to wifi_VexRiscv and daq_VexRiscv ...) Is there a way to generate modules with unique names.

@Dolu1990
Copy link
Member

Hi,

There is mainly two way to solve this :

  • Either you incluse each soc in a different Verilog package in your synthesis tool
  • Either you use the feature which add a global prefix on everything :
SpinalRtlConfig.copy(globalPrefix = "soc1").generateVerilog(...)
SpinalRtlConfig.copy(globalPrefix = "soc2").generateVerilog(...)

@surabibio
Copy link
Contributor Author

Hi Charles,
Wondering how I missed "globalPrefix" and googling for the same, I came across your other solution:
SpinalConfig(privateNamespace = true)
This is very elegant. I used the same and now dual SoC is working great.
Thanks
Ravi

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

No branches or pull requests

2 participants