在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 12699|回复: 3

[求助] dc综合时assign unassign是什么意思?

[复制链接]
发表于 2010-7-22 16:06:17 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
小弟谢了一个4bit 全加器,然后综合,
// rtl for 4bit full adder  
module TST (CLK, IN1, IN2, SUM, CARRY);
        output [3:0]    SUM;
        output          CARRY;
        input           CLK;
        input [3:0]     IN1, IN2;
        reg  [3:0]      SUM;
        reg             CARRY;
        integer         TEMP;
        initial begin
            SUM = 0;
            CARRY = 0;
        end
        always @(posedge CLK) begin
            TEMP = IN1+IN2;
            SUM = TEMP;
            if (TEMP > 15)
                CARRY = 1;
            else
                CARRY = 0;
end
endmodule

elaborate后log如下:
Running PRESTO HDLC
Warning:  Starting with the 2000.11-1 release, the Presto Verilog reader treats Verilog 'integer' types as signed; synthesized result may not match earlier versions of HDL Compiler. (VER-314)
Warning:  ../rtl/TST.v:28: unsigned to signed assignment occurs. (VER-318)
Warning:  ../rtl/TST.v:29: signed to unsigned assignment occurs. (VER-318)

这里面的assign unassign把我弄糊涂了,哪位大侠可以解释下?


谢谢
发表于 2010-7-22 17:24:08 | 显示全部楼层
声明为reg类型的寄存器变量SUM为unsigned(无符号数),而integer整型变量TEMP则为有符号数(signed)。
以下赋值语句,就是有符号数和无符号数交叉赋值,产生了warning.
        TEMP = IN1+IN2;
            SUM = TEMP;
发表于 2010-7-23 01:53:10 | 显示全部楼层
You should use non blocking statements
 楼主| 发表于 2010-7-23 10:08:12 | 显示全部楼层
谢谢楼上两位大侠解释,小弟有点明白了。
谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

小黑屋| 手机版| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2025-2-12 17:12 , Processed in 0.019174 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表