XST  – 在Verilog中使用签名数据类型时,XST会创建不正确的逻辑-Altera-Intel社区-FPGA CPLD-ChipDebug

XST – 在Verilog中使用签名数据类型时,XST会创建不正确的逻辑

问题描述

当在操作中一起使用有符号和无符号数据类型操作数时,XST将不正确地签署扩展签名数据类型信号:

输出[5:0] O;

输入[5:0] in1;

输入签名[3:0] in2;

赋值O = in1 + in2;

在上面的示例中,XST将不正确地签署扩展in1。

解决/修复方法

在Verilog 2001标准中,如果在操作中使用有符号和无符号操作数,则操作变为无符号,并且有符号数据类型变为无符号数据类型。执行操作时,请勿混合使用有符号和无符号数据类型。如果必须混合有符号和无符号,则使用中间信号:

电线签[3:0] a;

电线[3:0] b;

电线[7:0] c;

电线[7:0] d;

分配c = a * b;

改成:

电线签[3:0] a;

wire [3:0] a_temp;

电线[3:0] b;

电线[7:0] c;

电线[7:0] d;

分配a_temp = a;

分配c = a_temp * b;

请登录后发表评论

    没有回复内容