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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 3329|回复: 9

[求助] verilog中的warning

[复制链接]
发表于 2011-6-6 16:43:32 | 显示全部楼层 |阅读模式

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

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

x
Warning (10199): verilog hdl Case Statement warning at modula.v(57): case item expression is ignored because it never applies
所对应的程序:
module modula(clk,rst,din,dout);
input clk;
input rst;
input din;
output dout;
reg dout;
reg[1:0] q;
reg[1:0] x;
reg[1:0] y;
reg[3:0] f;
always@(posedge clk)
begin
  if(rst==1)
   begin
     q<=0;
     x<=0;
   end
  else
    begin
     case(q)
    0:
      begin  
       q<=1;
       f[1]<=1;
       f[3]<=0;
       x[1]<=din;
       y<=x;
      end
    1:
      begin
       q<=2;
       f[0]<=1;
       f[2]<=0;
      end
    2:
      begin
      q<=3;
       f[1]<=0;
       f[3]<=1;
       x[0]<=din;
      end
    3:
      begin
       q<=0;
       f[0]<=0;
       f[2]<=1;
      end
   
    endcase
   end
end
always@(f or y)
   begin
    case(y)
     00:dout=f[0];
     01:dout=f[1];
     10:dout=f[3];
    default:dout=f[2];
    endcase
   end
endmodule

当出现这个编译warning  对应的仿真也出现Warning: Ignored node in vector source file. Can't find corresponding node name "f[3]" in design.请问是什么问题?
发表于 2011-6-6 18:06:04 | 显示全部楼层
看了半天没看出来
想问下你这个模块功能是什么?
 楼主| 发表于 2011-6-6 18:46:33 | 显示全部楼层
回复 2# 418478935
QPSK调制,f为载波,取其中的四个点,得到四种相位,只要是X1X0就代表0度,1X0X就代表90度,X0X1就代表180度,0X1X就代表270度,1和0分别代表1和-1
发表于 2011-6-6 19:08:42 | 显示全部楼层
本帖最后由 alexander21th 于 2011-6-6 19:09 编辑

注意代码的格式
always@(f or y)
      begin
            dout=f[2];
            case(y[1:0])
                  2'b00:dout=f[0];
                  2'b01:dout=f[1];
                  2'b10:dout=f[3];
                  default:dout=f[2];
             endcase
        end
发表于 2011-6-6 19:18:32 | 显示全部楼层
建议看看代码的编写风格
发表于 2011-6-6 22:01:37 | 显示全部楼层
因为 y不会等于10
最多等于3,
我想你第57行是想写2。
 楼主| 发表于 2011-6-6 22:41:21 | 显示全部楼层
回复 5# alexander21th


  恩!谢谢建议!
 楼主| 发表于 2011-6-6 22:42:18 | 显示全部楼层
回复 6# jackertja


   恩!前面应该加b表示二进制~
发表于 2011-6-7 01:42:30 | 显示全部楼层
还有版主细心呀,
我看了半天也没有注意到
发表于 2011-6-7 21:52:50 | 显示全部楼层
module modula
    (
    clk,
    rst,
    din,
    dout
    );
input           clk;
input           rst;
input           din;
output          dout;
reg             dout;
reg     [1:0]   q;
reg     [1:0]   x;
reg     [1:0]   y;
reg     [3:0]   f;

always@(posedge clk)
begin
    if(rst==1)
    begin
        q <= 2'd0;
        x <= 2'd0;
        f <= 4'd0;
        x <= 2'd0;
    end
    else
    begin
        case(q)
            0:
            begin
                q <= 2'd1;
                f[1] <= 1'b1;
                f[3] <= 1'b0;
                x[1] <= din;
                y <= x;
            end
            1:
            begin
                q <= 2'd2;
                f[0] <= 1'b1;
                f[2] <= 1'b0;
            end
            2:
            begin
                q <= 2'd3;
                f[1] <= 1'b0;
                f[3] <= 1'b1;
                x[0] <= din;
            end
            3:
            begin
                q <= 2'd0;
                f[0] <= 1'b0;
                f[2] <= 1'b1;
            end
        endcase
    end
end

always@(*)
begin
    case(y)
         2'b00:dout = f[0];
         2'b01:dout = f[1];
         2'b10:dout = f[3];
        default:dout = f[2];
    endcase
end

endmodule
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

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

GMT+8, 2024-5-5 19:05 , Processed in 0.036575 second(s), 9 queries , Gzip On, Redis On.

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