verilator顶层里面的GPIO、UART、JTAG、SPI、USB均由model模拟。这些model存放于hw/dv/dpi里,每个model包括使用DPI的verilog的顶层和提供DPI的各个C函数。 有趣的一点是,verilator仿真方式支持两种debug模式,一种是OpenOCD通过JTAG,当然JTAG是是个model,还有一种方式是OpenOCD直接访问DMI的TAP,相当于跳过了JTAG。