宁安找小姐小妹包夜上门服务 ... https://blog.eetop.cn/116762 [收藏] [复制] [分享] [RSS] 【微信:99093588】宁安找小姐上门服务【微信:99093588】宁安找小姐保健按摩服务【微信:99093588】《宁安小姐服务电话》【微信:99093588】《宁安 ...

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

systemverilog中logic

已有 2146 次阅读| 2012-6-1 15:54 |个人分类:verilog/systemverilog

最近写了一些RTL code,因为新的project都用systemverilog风格,所以自己也都follow。以前用wirereg的,现在一律用logic声明。 结果弄巧成拙,经常整出x来,无耐又改成wire Systemverilog中增加了logic变量类型,其好处是可以代替以前的wirereg,使其在assign/instance drive/always都可以使用,请看下面这个例子:

logic abc;
The following statements are legal assignments to logic abc:
1)      assign abc = sel ? 1 : 0;
2)      not (abc,pqr),
3)      always #10 abc = ~abc;

 

于是我就以为logic代替了wirereg,可以随便用了,于是经常这么写:

logic abc =sel ? 1:0;

结果仿真结果老是出错,abc的值是x

 

于是特地去做实验,把上述语句在testbench里测,发现,咦,可以输出正常值啊!经过试验,我发现如下惊天秘密:

1.       testbench顶层里可以随便写

2.       design的文件里只能有这两种写法:

a.       wire abc =sel ? 1:0;

b.      logic abc;

assign abc =sel ? 1:0;

 

下面这个例子供verify

module test_svlogic();

 

logic clk=0;

always  clk = #5 ~clk;

 

logic [3:0] a= 4'b0010;

logic [3:0] b= 4'b0000;

 

//logic [3:0] mux_ab= a&b;

 

logic [3:0] mux_ab;

mux mux(.a(a),

        .b(b),

                .mux_ab(mux_ab));

 

initial

begin

#40

$display("a=%d,mux_ab=%d\n",a,mux_ab);

$stop;

end

 

endmodule

 

 


点赞

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 1

    粉丝
  • 3

    好友
  • 0

    获赞
  • 6

    评论
  • 470

    访问数
关闭

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

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

GMT+8, 2024-5-9 04:17 , Processed in 0.017461 second(s), 14 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部