easyhawk
驱动牛犊
驱动牛犊
  • 注册日期2004-02-12
  • 最后登录2004-09-01
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2150回复:3

请教关于verilog中inout的问题

楼主#
更多 发布于:2004-06-11 21:34
我的FPGA要求能够往SRAM中写数据,随后还能从中读数据,我定义数据线为inout类型,为何在maxplus2中综合时总是报错?
具体如下:
module test3(FDATA,M1AD,MCS,MWE,MOE,LCLK,LED);
    output MCS,MWE,MOE,LED;
    output [17:0] M1AD;
    inout [31:0] FDATA;
    input LCLK,
    reg MCS,MWE,MOE,LED,start;
    reg [2:0] counter;
    reg [31:0] DATA;
    reg [17:0] M1AD;
always @(posedge LCLK)
if(start)
begin DATA<=32'hffffffff;
 MCS<=0;MWE<=0;MOE<=1;
 LED<=0;
 M1AD<=18'b0;
end
else
begin MCS<=0;MWE<=1;MOE<=0;
 LED<=1;
 M1AD<=18'b0;
end
assign FDATA=(start)?DATA:32'bz;

always @ (posedge LCLK)
if(counter<3)begin start<=1; counter<=counter+1; end
else begin counter<=3; start<=0; end
endmodule
综合时报错:string is too large to be expressed in 32-bit integer
将“DATA<=32'hffffffff;”改成“ DATA<=32'h7fffffff;”可以综合,但仿真时FDATA有两套,一套输出,一套输入,FDATA一直保持0,没有出现高阻状态。

[编辑 -  6/11/04 by  easyhawk]
easyhawk
驱动牛犊
驱动牛犊
  • 注册日期2004-02-12
  • 最后登录2004-09-01
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-06-12 20:33
atuhappy
驱动老牛
驱动老牛
  • 注册日期2002-03-15
  • 最后登录2009-09-09
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望21点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-06-17 21:43
把31改成15就可以
不知道为什么
http://www.eetop.com.cn/cgi-bin/leoboard.cgi
在一回首间,才忽然发现,原来,我一生的种种努力,不过只是为了要使周遭的人都对我满意而已。为了要博得他人的称许和微笑,我战战兢兢得将自己套入所有得模式,所有的桎梏。走到中途,才忽然发现,我只剩下一副模糊得面目,和一条不能回头的路...
buaaren
驱动小牛
驱动小牛
  • 注册日期2003-11-24
  • 最后登录2010-01-25
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-06-18 22:23
是不是与器件有关
游客

返回顶部