Quartus 11.0 Internal Error veriname_elab.cpp

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


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


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值