diff --git a/src/utils/iverilogRunner.ts b/src/utils/iverilogRunner.ts index 0c45298..2067c0f 100644 --- a/src/utils/iverilogRunner.ts +++ b/src/utils/iverilogRunner.ts @@ -308,6 +308,21 @@ export async function generateVCD( }; } + // 6.5. 删除 shebang 行(修复 Windows 上的 vvp 解析错误) + try { + const fs = require('fs'); + const vvpContent = fs.readFileSync(outputFile, 'utf8'); + const lines = vvpContent.split('\n'); + + if (lines.length > 0 && lines[0].startsWith('#!')) { + const cleanedContent = lines.slice(1).join('\n'); + fs.writeFileSync(outputFile, cleanedContent, 'utf8'); + console.log('已删除 .vvp 文件的 shebang 行'); + } + } catch (error) { + console.warn('删除 shebang 失败,继续执行:', error); + } + // 7. 执行仿真生成 VCD const simArgs = [outputFile]; console.log("执行仿真命令:", vvpPath, simArgs.join(" "));