Quartus 11.0 Internal Error veriname_elab.cpp

本文介绍在使用Quartus11.0进行代码综合时遇到的内部错误,并提供了解决方案。问题源于尝试对RAM进行按位读写操作,通过修改为按字操作解决了该问题。


quartus 11.0 综合一段代码时莫名其妙的出现下面这种问题,弹出一个对话框,说出现了内部错误,然后综合无法进行下去,同样的代码在Quartus 9.0下没有问题。百度谷歌竟然都找不到对应的解决方案,网上说删除db,increasement_db文件夹啥的都没用。
最后发现应该是代码的问题,代码中定义了一个存储器类型的ram,除了正常的按字读写,还有按位读写的操作,问题就在这个按位读写上,存储器类型不能按位操作,

错误的代码类似下面的样子
reg[7:0] buffer[127:0];
reg db;
reg[7:0] data;
buffer[byteAddress][bitAddress]<=db;//有问题,不能按位操作,一定要按位操作,可以先将原来的数读出来存入一个reg中,将对应bit修改后再写回去,读也是类似思路
buffer[byteAddress]<=data;//正确


修改按位操作的代码之后就不会报错了

</pre><p></p><p></p><pre name="code" class="plain">Internal Error: Sub-system: VRFX, File: /quartus/synth/vrfx/verific/verilog/veriname_elab.cpp, Line: 846
indices->Size() == 1
Stack Trace:

   0x1689ee: VRFX_ELABORATOR::operator= + 0x9ede (synth_vrfx)
   0x1678cb: VRFX_ELABORATOR::operator= + 0x8dbb (synth_vrfx)
   0x18deae: VRFX_ELABORATOR::operator= + 0x2f39e (synth_vrfx)
   0x1900c5: VRFX_ELABORATOR::operator= + 0x315b5 (synth_vrfx)
   0x182aee: VRFX_ELABORATOR::operator= + 0x23fde (synth_vrfx)
   0x190ee2: VRFX_ELABORATOR::operator= + 0x323d2 (synth_vrfx)
   0x191d3a: VRFX_ELABORATOR::operator= + 0x3322a (synth_vrfx)
   0x1900c5: VRFX_ELABORATOR::operator= + 0x315b5 (synth_vrfx)
   0x190ad6: VRFX_ELABORATOR::operator= + 0x31fc6 (synth_vrfx)
   0x190b85: VRFX_ELABORATOR::operator= + 0x32075 (synth_vrfx)
   0x18e936: VRFX_ELABORATOR::operator= + 0x2fe26 (synth_vrfx)
   0x18c3fc: VRFX_ELABORATOR::operator= + 0x2d8ec (synth_vrfx)
    0xe2f55: VRFX_ELABORATOR::elaborate + 0x90f15 (synth_vrfx)
    0xe80e0: VRFX_ELABORATOR::elaborate + 0x960a0 (synth_vrfx)
    0x57640: VRFX_ELABORATOR::elaborate + 0x5600 (synth_vrfx)
    0x52105: VRFX_ELABORATOR::elaborate + 0xc5 (synth_vrfx)
    0xc7e54: sgn_qic_helper + 0xbb6b4 (synth_sgn)
    0xcb62f: sgn_qic_helper + 0xbee8f (synth_sgn)
    0xcd3c0: sgn_qic_helper + 0xc0c20 (synth_sgn)
    0x9edef: sgn_qic_helper + 0x9264f (synth_sgn)
    0xa5c9f: sgn_qic_helper + 0x994ff (synth_sgn)
    0xa2aa5: sgn_qic_helper + 0x96305 (synth_sgn)
    0xa5cf3: sgn_qic_helper + 0x99553 (synth_sgn)
    0xaa52c: sgn_qic_helper + 0x9dd8c (synth_sgn)
     0xc4e9: sgn_qic_full + 0x159 (synth_sgn)



    0x117eb: qexe_get_tcl_sub_option + 0x1dbb (comp_qexe)
    0x14997: qexe_process_cmdline_arguments + 0x537 (comp_qexe)
    0x14aa1: qexe_standard_main + 0xa1 (comp_qexe)

     0x1928: msg_exe_fini + 0xf8 (CCL_MSG)
     0x18cc: msg_exe_fini + 0x9c (CCL_MSG)
     0x57b4: MEM_UTILS_CHUNK_ALLOC::chunk_malloc + 0x194 (ccl_mem)
    0x2f084: msg_exe_main + 0x74 (CCL_MSG)

    0x159ec: BaseThreadInitThunk + 0xc (kernel32)
    0x2c540: RtlUserThreadStart + 0x20 (ntdll)

End-trace

Quartus II 64-Bit Version 11.0 Build 208 07/03/2011 SJ Full Version
Service Pack Installed:  1


<think>我们正在处理一个关于在Quartus II 17.0中查找init_hls.bat文件位置的问题。 根据参考引用[1],它提到了在Windows下使用Quartus 18.1进行HLS入门,其中涉及到了init_hls.bat文件(在文章目录的“2.1初始化”部分提到)。虽然引用的是18.1版本,但我们可以推测这个文件在Quartus的HLS工具中具有类似的作用和位置。 在Quartus II中,HLS(High-Level Synthesis)工具通常位于Quartus安装目录下的hls子目录中。init_hls.bat文件是用于初始化HLS环境的批处理文件。 对于Quartus II 17.0,我们可以尝试以下路径来查找init_hls.bat文件: 1. 首先,检查Quartus II的安装目录,通常默认安装在`C:\intelFPGA\17.0`(或`C:\altera\17.0`)下。 2.Quartus安装目录中,HLS工具可能位于`quartus\hls`子目录下。 3. 在`hls`目录中,应该有一个`bin`子目录,而`init_hls.bat`文件通常位于`bin`目录下。 因此,完整的路径可能是: `<Quartus安装目录>\quartus\hls\bin\init_hls.bat` 例如,如果安装在`C:\intelFPGA\17.0`,则路径为: `C:\intelFPGA\17.0\quartus\hls\bin\init_hls.bat` 如果用户没有使用默认安装路径,则需要根据实际安装位置调整。 另外,如果用户的环境变量中已经配置了Quartus的路径,也可以通过命令行快速定位: 1. 打开命令提示符。 2. 输入:`dir /s /b "C:\init_hls.bat"`(将C:替换为Quartus可能安装的驱动器,或者从根目录开始搜索可能需要管理员权限)。 但是,由于搜索整个驱动器可能较慢,建议先检查默认安装路径。 如果上述路径不存在,可能是因为在Quartus II 17.0中HLS工具可能不是默认安装的,或者安装时未选择HLS组件。此时,用户可能需要重新安装并确保选中了HLS组件。 总结:在Quartus II 17.0中,`init_hls.bat`文件通常位于Quartus安装目录下的`quartus\hls\bin`文件夹中。请检查您的安装目录,例如:`C:\intelFPGA\17.0\quartus\hls\bin\init_hls.bat`。 §§相关问题§§ 1. 如何在Quartus II 17.0中设置HLS环境变量? 2. Quartus II 17.0中HLS工具的基本使用方法是什么? 3. 如果找不到init_hls.bat文件,如何重新安装Quartus II的HLS组件?</think>在 Quartus II 17.0 中查找 `init_hls.bat` 文件的位置,请按以下步骤操作: ### 查找步骤 1. **默认安装路径** `init_hls.bat` 通常位于 HLS 工具的安装目录中。默认路径为: `C:\intelFPGA\17.0\hls\bin\init_hls.bat` (如果安装时未修改路径) 2. **手动搜索** 若不确定安装位置: - 打开 **文件资源管理器** - 进入 Quartus II 17.0 的安装根目录(如 `C:\intelFPGA\17.0`) - 在右上角搜索栏输入 `init_hls.bat` - 等待搜索结果,文件通常位于 `hls\bin` 子目录下 3. **环境变量验证** 成功找到文件后,需将其路径添加到系统环境变量: ```bat :: 示例:在命令行初始化 HLS 环境 call "C:\intelFPGA\17.0\hls\bin\init_hls.bat" ``` 若文件丢失,需重新安装 HLS 组件[^1]。 ### 注意事项 - **版本差异**:Quartus 17.0 的 HLS 工具路径与新版 18.1 不同(新版路径为 `quartus\hls\bin`)[^1] - **组件完整性**:安装时需勾选 **High-Level Synthesis (HLS)** 组件,否则文件不存在 - **权限问题**:右键以管理员身份运行搜索工具避免权限限制
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值