Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

SystemVerilog: wire (inout) inside interface not updated?

Status
Not open for further replies.

legendbb

Member level 1
Member level 1
Joined
Nov 16, 2013
Messages
34
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,286
Visit site
Activity points
1,516
I was attempting to use inout port inside interface with task in manipulating the inout signal.

But I can only get inout signal to update correctly, only if it's included inside port list of the interface.

ioSig updates correctly when task is called:
Code:
interface my_if(inout wire ioSig)
assign ioSig = (sigEn == 1'b0) ? 1'b1 : 1'0;
...
task my_task;
...
begin
#10ns
sigEn = 1'b0;
...

ioSig fails to update:
Code:
interface my_if(...)
wire sigEn;
assign ioSig = (sigEn == 1'b0) ? 1'b1 : 1'0;
...
task my_task;
...
begin
#10ns
sigEn = 1'b0; // I've single step over here, no update on assign statement
...

What am I missing?

Thanks for any comments,

:?:
 

A couple of problems

You are not allowed to make procedural assignments to wires. You are making one to sigEn. You should have gotten a compiler error. Maybe this was a typo when you copied it.

A continuous assignment needs time for updates on the RHS to propagate to the LHS. If you are single stepping, you may need to advance time far enough to see the change.
 

A couple of problems

You are not allowed to make procedural assignments to wires. You are making one to sigEn. You should have gotten a compiler error. Maybe this was a typo when you copied it.

A continuous assignment needs time for updates on the RHS to propagate to the LHS. If you are single stepping, you may need to advance time far enough to see the change.

Thanks Dave,

I don't think it didn't have enough time to update, since the simulation never got the updated signal value.

The procedural assignment is side my task().
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top