RE: [sv-bc] Virtual interfaces in always_comb

From: Rich, Dave <Dave_Rich_at_.....>
Date: Mon Sep 07 2009 - 15:06:56 PDT
I believe if you apply the principals of the longest static prefix
rules, this is already illegal.

 

Dave

 

 

________________________________

From: owner-sv-bc@server.eda.org [mailto:owner-sv-bc@server.eda.org] On
Behalf Of Daniel Mlynek
Sent: Monday, September 07, 2009 2:45 AM
To: sv-bc@server.eda.org
Subject: [sv-bc] Virtual interfaces in always_comb

 

Should virtual interfaces be allowed to be assigned in always_comb
blocks? This leads to situation like below- vi1.i  nad vi2.i point the
same output variable while this is forbidden for variable driven from
always comb to be driven in other processes (lrm:  "The variables
written on the left-hand side of assignments shall not be written to by
any other process.". Such situation can be detected only on runtime. 

As always_comb was added to be used in synthethisabe combitional
processses maybe there should be a rule saying that this is forbidden to
drive virtual interface drives (similar for class handles)

 

interface iface1;
 bit [7:0] i;
endinterface

module top;
  iface1 ifci1();
  virtual iface1 vi1 = ifci1, vi2 = ifci1; bit [7:0] ii1 = 1; bit [7:0]
ii2 = 2;

 always_comb
    vi1.i = ii1;


 always_comb
   vi2.i = ii2;

 initial #2 $finish;

endmodule

 

DANiel


-- 
This message has been scanned for viruses and 
dangerous content by MailScanner <http://www.mailscanner.info/> , and is

believed to be clean. 

-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.
Received on Mon Sep 7 15:07:52 2009

This archive was generated by hypermail 2.1.8 : Mon Sep 07 2009 - 15:08:44 PDT