This is simpler than JTAGVPI and is supported better by Verilor. It is also the same thing Spike uses.