Comments (5)
A potential solution I see is to add a postBuildLock
that is retained by default in FiberPlugin
; during build
releases this lock after reworking the body of build. We then make the IO renaming plugin await on all of these post build locks to ensure that it runs last.
Implementation: KireinaHoro@ba9809b
Usage: KireinaHoro/enzian-pio-nic@e2c972d
Or, even better, use awaitCheck
. But this feels a bit hacky since renaming IO doesn't seem to fit with checks.
from spinalhdl.
Hi,
To rename top level ports, I previously used addPrePopTask
I would say, if you want to do post elaboration thing, you can just pop a task after the build phase itself. That would be the safest.
For instance :
Fiber(ElabOrderId.BUILD+1){
Your manipulation code here
}
awaitCheck
Yes this is very similar, that would work aswell, would just maybe need instead a new (not implemented yet): awaitPatch ? (awaitPath assume the hacky nature of the thing XD)
from spinalhdl.
I'm putting all IO generation in modules into setup
and doing the manipulation in a plugin during build for now. I do like the awaitPatch idea, since this would not require moving the IO definitions :)
from spinalhdl.
Added in SpinalHDL composable-exp and dev branch
from spinalhdl.
Works! Closing.
from spinalhdl.
Related Issues (20)
- switch SInt support
- XSIM backend not working on Linux
- Problems with `setCompositeName` in combination with `removePruned` HOT 1
- Run test for InterfaceTesterCocotbBoot failed when only use 2.11 scala compilier. HOT 1
- LATCH DETECTED from the combinatorial signal HOT 3
- XSim in spinalhdl fail to simulate IPs like FFT or complex multiplier, but works fine in Vivado HOT 3
- Assign bits (BigInt) back to Bundle/Union/Enum in SpinalSim HOT 8
- Memory of Depth 1 Produces Unhelpful Error Message HOT 1
- Inconsistent naming for nested `Composite` areas HOT 2
- Add support for AMBA5 CHIοΌ HOT 1
- synchronous StreamFork valid/ready are not decoupled properly HOT 3
- regif's html doc not support setname function
- duplicate module when multi inst
- Outer FSM `whenIsActive` statements always win vs. nested FSM `onEntry` statements for combinational logic HOT 2
- Vivado/Vitis post simulation HOT 3
- `PackedBundle` inside `Union`? HOT 3
- Verilator Wrapper Fails on Some Signal Names With Leading Underscores
- Unconnected IO Port generates incorrect verilog
- StreamFork2.takes has a small mistake HOT 1
- Redundant Modules 'module_1', 'module_2'... Created for Different Clock Domains HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. πππ
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google β€οΈ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from spinalhdl.