快速与交互仿真
587 字约 2 分钟
2025-01-08
准备测试平台
选择真正包含激励和结束条件的 testbench。需要离线 VCD 时,Verilog 测试平台使用 $dumpfile、$dumpvars,并以 $finish 结束;永远运行的时钟不会自动结束测试。
initial begin
$dumpfile("wave.vcd");
$dumpvars(0, tb);
#1000;
$finish;
end启动与推进
从 testbench 的 Simulate CodeLens 或 Architecture 中的仿真入口启动。后端准备依赖、编译并连接交互式仿真;波形窗口出现后,点击开始/运行来推进时间。按需设置步进量、暂停或重新开始。已编译不等于仿真已执行。
右侧仿真面板可配置输入激励和时钟,作用于当前可驱动输入;先核对信号与位宽。仿真完成后打开实际生成的 VCD,或直接查看会话订阅信号。
UART 激励与解码
交互仿真右侧的仿真面板包含输入激励、时钟、UART 编码器和解码器。添加编码器时选择可驱动输入,填写发送数据及串口参数;添加解码器时选择观测信号并配置一致的波特率、数据位、校验和停止位。推进仿真后查看解码结果。时钟周期、输入激励时间和仿真时间单位必须匹配,已有离线 VCD 不会因为修改激励而重新生成。
选择后端
digital-ide.function.simulate.fastSimulator 选择快速仿真器,当前入口支持 verilator、iverilog、cxxrtl、vcs、modelsim、questa。需要安装相应工具;VHDL 文件入口选择 ModelSim。配置目录见 工具链路径配置。
混合 VHDL/SystemVerilog 和厂商 IP 还需要对应仿真库。digital-ide.function.simulate.xilinxLibPath 配置 Xilinx 仿真库,vendorCachePath 已弃用,当前厂商仿真缓存统一保存在工程 .dide/ 下。HARD 的 Simulate CLI/GUI 是厂商工程仿真,与快速仿真入口不同。
排错
- 找不到顶层/模块:核对模块名与依赖,不只看文件名。
- 缺少 VCD:检查 dump 语句、工作目录及是否真的运行到输出阶段。
- 空信号列表:先选择模块并添加信号;交互订阅的数据不能代替过去未采集的历史。
- 工具报语法错误:核对该后端的语言支持和库,不要仅改变文件后缀。