描述
关键词:核心生成器,科雷根,平方根,平方根,整数
算术溢出,VHDL,31
紧迫性:标准
相关版本(VS):V1.4.0
一般描述:
指定输出宽度为30位或更高的
平方根模块可能导致行为模型生成
下列错误:
核心参数:OutPuthLoad宽度=31,输入宽度=60。
仿真误差:
**错误:VHDLSIM,12:
整数运算溢出。
警告:VHDLSIM,313:
无法从文件ULUTIUL.VHD显示源代码行。文件
无法使用“使用环境/安装文件”来定位
变量。
解决方案
这个问题只影响了VHDL的行为模型
模块。
为什么许多模块与COREGen一起交付
V1.4.x仅限于31或更小的总线宽度。
因为算术运算是在
VHDL行为模型。大多数模型转换进来
从二进制(比特向量)表示的操作数到
整数,使用标准执行任何必要的算术运算
一套VHDL算术运算符,并将结果转换回来
用于在输出端口上表达的比特向量。
不幸的是,VHDL的整数数据类型被限制为
范围内的数字为2 ^ 31到2 ^ 31。因此,上述
当比特宽度超过31位的总线时,进程可能失败。
包含在此范围之外的数字。
这个问题已经被V1.4.1修补程序所修复。
行为模型的再实现
用逐位算术代替整数运算
位运算对位宽度没有限制。
该修补程序可在:
HTTP://www. xLimx.com /Studio/LogICRe/ CORGENE/CORLYNX/CGPATCH/CG142PYALAL.ZIP
没有回复内容