- rtl内的线网都有默认的强度,一般是(strong1, strong0),连续赋值语句可以让不同强度的信号互相赋值 - 阻塞赋值和非阻塞赋值也能让不同强度的信号互相驱动 - 通过module的port列表传递的信号不改变强度(例子中led.in1到led的input x, ouput y) example: `timescale 1ns/1ns module led( a, clk , b, c, e, y); input a, clk; output b; output c; output e; output y; wire y; reg e; reg b; wire (pull1,pull0) d = a; wire (strong1, strong0) c = d; always @( d) begin e = d; end always@(posedge clk) begin b <=d; end in in1(.x(d), .y(y)); endmodule module in(x,y); input x; output y; wire (weak1,weak0) z =!x; wire (pull1, pull0) y = z; endmodule module tb(); reg clk = 0; reg a = 0; wire b ; wire c ; wire e; wire y; initial begin clk = 0; repeat(400) clk = #5ns !clk; end initial begin repeat(100) a = #50ns !a; end led led1(.a(a), .clk(clk),.b(b), .c(c), .e(e)); initial begin $display("tb.a(%v), tb.b(%v),tb.c(%v) ", tb.a, tb.b, tb.c); $monitor("tb.a(%v), tb.b(%v),tb.c(%v)", tb.a, tb.b, tb.c); $monitor("tb.e(%v)", tb.e); $monitor("tb.y(%v)", tb.y); end initial begin $display("led.a(%v), led.b(%v), led.c(%v),led.d(%v), led.e(%v),led.y(%v) led.in1.y(%v),led.in1.x(%v) ", led1.a, led1.b,led1.c,led.d,led.e,led.y,led.in1.y,led.in1.x); $monitor("led.a(%v), led.b(%v), led.c(%v),led.d(%v), led.e(%v),led.y(%v) led.in1.y(%v),led.in1.x(%v)", led1.a, led1.b,led1.c,led.d,led.e,led.y,led.in1.y,led.in1.x); end initial begin $fsdbDumpfile("ceb.fsdb"); $fsdbDumpvars(0,tb.led1); $fsdbDumpvars(1,tb); $fsdbDumpvars(0,tb); $fsdbDumpvars(2,tb ); end endmodule result: tb.a(St0), tb.b(StX),tb.c(St0) led.a(St0), led.b(StX), led.c(St0),led.d(Pu0), led.e(StX),led.y(Pu1) led.in1.y(Pu1),led.in1.x(Pu0) Novas FSDB Dumper for VCS70, Release 6.1v1 (Linux) 01/02/2006 Copyright (C) 1996 - 2006 by Novas Software, Inc. *Novas* Create FSDB file 'ceb.fsdb' *Novas* Start dumping the scope(tb.led1), layer(0). *Novas* End of dumping. *Novas* Start dumping the scope(tb), layer(1). *Novas* End of dumping. *Novas* Start dumping the scope(tb), layer(0). *Novas* End of dumping. *Novas* Start dumping the scope(tb), layer(2). *Novas* End of dumping. led.a(St0), led.b(StX), led.c(St0),led.d(Pu0), led.e(St0),led.y(Pu1) led.in1.y(Pu1),led.in1.x(Pu0) led.a(St0), led.b(St0), led.c(St0),led.d(Pu0), led.e(St0),led.y(Pu1) led.in1.y(Pu1),led.in1.x(Pu0) led.a(St1), led.b(St0), led.c(St1),led.d(Pu1), led.e(St1),led.y(Pu0) led.in1.y(Pu0),led.in1.x(Pu1) led.a(St1), led.b(St1), led.c(St1),led.d(Pu1), led.e(St1),led.y(Pu0) led.in1.y(Pu0),led.in1.x(Pu1) led.a(St0), led.b(St1), led.c(St0),led.d(Pu0), led.e(St0),led.y(Pu1) led.in1.y(Pu1),led.in1.x(Pu0) led.a(St0), led.b(St0), led.c(St0),led.d(Pu0), led.e(St0),led.y(Pu1) led.in1.y(Pu1),led.in1.x(Pu0) led.a(St1), led.b(St0), led.c(St1),led.d(Pu1), led.e(St1),led.y(Pu0) led.in1.y(Pu0),led.in1.x(Pu1) led.a(St1), led.b(St1), led.c(St1),led.d(Pu1), led.e(St1),led.y(Pu0) led.in1.y(Pu0),led.in1.x(Pu1) led.a(St0), led.b(St1), led.c(St0),led.d(Pu0), led.e(St0),led.y(Pu1) led.in1.y(Pu1),led.in1.x(Pu0) led.a(St0), led.b(St0), led.c(St0),led.d(Pu0), led.e(St0),led.y(Pu1) led.in1.y(Pu1),led.in1.x(Pu0) led.a(St1), led.b(St0), led.c(St1),led.d(Pu1), led.e(St1),led.y(Pu0) led.in1.y(Pu0),led.in1.x(Pu1) led.a(St1), led.b(St1), led.c(St1),led.d(Pu1), led.e(St1),led.y(Pu0) led.in1.y(Pu0),led.in1.x(Pu1) led.a(St0), led.b(St1), led.c(St0),led.d(Pu0), led.e(St0),led.y(Pu1) led.in1.y(Pu1),led.in1.x(Pu0) led.a(St0), led.b(St0), led.c(St0),led.d(Pu0), led.e(St0),led.y(Pu1) led.in1.y(Pu1),led.in1.x(Pu0) led.a(St1), led.b(St0), led.c(St1),led.d(Pu1), led.e(St1),led.y(Pu0) led.in1.y(Pu0),led.in1.x(Pu1) led.a(St1), led.b(St1), led.c(St1),led.d(Pu1), led.e(St1),led.y(Pu0) led.in1.y(Pu0),led.in1.x(Pu1) led.a(St0), led.b(St1), led.c(St0),led.d(Pu0), led.e(St0),led.y(Pu1) led.in1.y(Pu1),led.in1.x(Pu0)