Parameter redef's 
Author Message
 Parameter redef's


Quote:
> Here's a manual way of doing timing hazards: ( untested )

> parameter delay = 10;

> always
>   fork : hazard
>     begin
>       setup_hazard = 1;
>       #delay;
>       setup_hazard = 0;
>     end
>     begin

>       disable hazard;
>     end
>   join

> always
>   begin

>     if (setup_hazard == 1) $display("setup violation in %m");
>   end

I believe a more efficient (and readable) method of an equivalent
check would be:

time DATA_LAST_EVENT_TIME;
parameter setup_constraint = 10;


  begin
    /* optional hold time check */
    DATA_LAST_EVENT_TIME = $time;
  end


  begin
    if ($time - DATA_LAST_EVENT_TIME < setup_constraint)
      $display("...");
  end

(Note: the setup_constraint could also be defined as a "time" or "real"
 variable type if the user wishes to change its value mid-simulation)

It seems to me that this method does more of what the user intends.
i.e. when a rising edge clk event occurs, check if the last event
on DATA occurred less than setup time units ago, and if so report
the violation.

Unfortunately, both methods contain one minor flaw if a hold-time
constraint is also declared.  That is, if events on data and clk
both occur in the same time unit, it is ambiguous as to whether
a setup, hold, both, or neither violation will be reported.  This
ambiguity can be reduced by more complex methods which attempt to
order the timing checks within the time unit such that setup
constraints are checked at the beginning, and hold constraints
checked at the end.  (this causes a hold constraint violation only.)

Jonathan

-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-

Graduate Student Research Assistant
Advanced Computer Architecture Lab
157 ATL Building
1101 Beal Ave.
The University of Michigan
Ann Arbor, MI  48109-2110

ph. (313) 764-2138
-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-



Fri, 10 Jan 1997 13:13:29 GMT  
 
 [ 1 post ] 

 Relevant Pages 

1. Parameter 'handshake source' in DIO Start

2. Access to T'Class vs T'Class as parameter to subprogram

3. Ada to 'C' parameter passing problem

4. arrays as 'out' parameters

5. EXEC CICS DOCUMENT INSERT 'AT' parameter

6. 'dim' parameter in my own subroutines

7. Command line parameters (Or is it called 'System Parameters'??)??

8. Stored procedures with date parameters don't work

9. Problem of passing string parameter in DLL's function from a C application

10. look for tool to the recognition of the parameters of dll's

11. Parameters for DLL's

12. Data Hiding - A Procedure's First Parameter

 

 
Powered by phpBB® Forum Software