# Async2sync and write\_aiger -vmap

**URL:** <https://yosyshq.discourse.group/t/async2sync-and-write-aiger-vmap/120>\
**Category:** Users\
**Created:** [February 7, 2026, 10:43am UTC](https://yosyshq.discourse.group/t/async2sync-and-write-aiger-vmap/120 "2026-02-07T10:43:54Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Truito](https://avatars.discourse-cdn.com/v4/letter/t/ecae2f/32.png) [@Truito](https://yosyshq.discourse.group/u/Truito)\
**Post date:** [February 7, 2026, 10:43am UTC](https://yosyshq.discourse.group/t/async2sync-and-write-aiger-vmap/120/1 "2026-02-07T10:43:54Z")

</div>

Hi, I am using `async2sync` command and `write_aiger` with the `vmap` option on verilog netlists.

The obtained mapping is as I would have expected. Except for the latches that comes from the async2sync pass. Where I got stuff like that:

```auto
latch 0 0 $abc$307160$auto$async2sync.cc:234:execute$10130
latch 0 0 $auto$async2sync.cc:234:execute$10130
latch 1 0 $abc$307160$auto$async2sync.cc:234:execute$10128
latch 1 0 $auto$async2sync.cc:234:execute$10128
latch 2 0 $abc$307160$auto$async2sync.cc:234:execute$10126
latch 2 0 $auto$async2sync.cc:234:execute$10126
latch 3 0 $abc$307160$auto$async2sync.cc:234:execute$10124
latch 3 0 $auto$async2sync.cc:234:execute$10124
latch 4 0 $abc$307160$auto$async2sync.cc:234:execute$10122
latch 4 0 $auto$async2sync.cc:234:execute$10122

```

Which are hard to trace back to the original netlist.

Is there any option, when using `async2sync`, to track from which registers in the original netlist these latches come from or to understand these characters eg. some of the numbers in the string might help to understand the mapping ?

Best,

Félix

---

<div class="post-metadata">

**Author:** ![widlarizer](https://avatars.discourse-cdn.com/v4/letter/w/bbce88/32.png) [@widlarizer](https://yosyshq.discourse.group/u/widlarizer)\
**Post date:** [February 9, 2026, 10:28am UTC](https://yosyshq.discourse.group/t/async2sync-and-write-aiger-vmap/120/2 "2026-02-09T10:28:36Z")

</div>

I opened a bug report for this, since it’s undesirable behavior and could be fixed

> <https://github.com/YosysHQ/yosys/issues/5674>
>
> \### Version
> 
> main
> 
> \### On which OS did this happen?
> 
> Linux
> 
> \### Reproduction Ste…ps
> 
> Stare at asyn2sync.cc and notice \`Wire \*new\_q\` and related multiplexers
> 
> \### Expected Behavior
> 
> Said objects should inherit src from flop and maybe also derive name rather than NEW\_ID
> 
> \### Actual Behavior
> 
> Inverse of expected

There’s also related upcoming work that should eliminate these problems across the board:

> [@Consistent source location transfer with Patch](https://yosyshq.discourse.group/t/consistent-source-location-transfer-with-patch/121):
>
> The greatest source of loss of source attributes is synthesis with abc, but not all users use abc and there’s a lot of gaps in Yosys passes. To address this, there’s two major features I think we need. Patch I have started prototyping a data structure called Patch that allows passes to prepare rewrites to the design and that will come with automatic source transfer. Potential future benefits is higher functional clarity, lower reliance on opt\_clean to garbage collect design objects and cheaper …

---

<div class="post-metadata">

**Author:** ![Truito](https://avatars.discourse-cdn.com/v4/letter/t/ecae2f/32.png) [@Truito](https://yosyshq.discourse.group/u/Truito)\
**Post date:** [February 9, 2026, 1:04pm UTC](https://yosyshq.discourse.group/t/async2sync-and-write-aiger-vmap/120/3 "2026-02-09T13:04:18Z")

</div>

Nice, thanks a lot !
