RTL-to-HLS migration
Suitable legacy Verilog or VHDL blocks re-architected as maintainable C++ HLS designs, with behaviour and interfaces preserved.
Not every RTL block should move to HLS. Migration makes sense when the block is algorithmic, requirements keep changing, or reuse across targets matters. We help decide which datapaths to migrate and which logic should remain in RTL, then re-architect the chosen blocks as maintainable C++ HLS designs while preserving the agreed functional and integration contract.
When this service fits
- A datapath-heavy block keeps changing, and the RTL has become costly to modify.
- The block must be reused across targets, variants, or product generations.
- A passing RTL regression exists that can serve as the migration baseline.
What the work covers
- Freezing the legacy RTL baseline and its regression
- Defining the migration contract: interfaces, latency, state, and memory semantics
- A bit-accurate C++ model checked against the legacy behaviour
- HLS architecture development and comparison of generated RTL with the baseline
- Integration and sign-off support
What you receive
- Migration contract and boundary specification
- Synthesisable C++ or SystemC with HLS constraints
- Comparison evidence against the legacy baseline
- Generated RTL and integration notes
Deliverables are reproducible and kept together, so another engineer can review and rerun the work. The exact list and acceptance evidence are agreed before work starts.
How it starts
Start with the candidate block, its interfaces, its current regression, and why it needs to change. A bounded feasibility study can confirm whether the selected boundary meets functional, performance, area, tool-flow, and verification needs before production work begins.
Related reading
- RTL-to-HLS migration guide: when migration makes sense and how to preserve the contract.
- HLS verification: the verification evidence a migration relies on.
- HLS feasibility study: test the boundary before committing.
- All Videalt services: compare engagement models and common questions.
Considering an RTL-to-HLS migration?
Share the block, its interfaces, and why it needs to change.