Preponed Processes

Proposal Editing Information

  • Who Updates: JimLewis, <Add YourName >, ...
  • Date Proposed: 2012-08-19
  • Date Last Updated: 2012-08-19
  • Priority:
  • Complexity:
  • Focus: Testbench

Requirement Summary

Run a process or statement during a special execution cycle or cycles that precede the first regular execution.

Rationale

Intended for clocks and/or initialization of dynamic data structures built in a protected type.

Related and/or Competing Issues: None

2016_MeetingOctober20: Subsumed/replaced by spaceship associations

Use Model 1: Initializing Data Structures

The following runs once at the start of the time.

InitProc : preponed process
begin
    Mem.InitMemory (AddrBits => 8, DataBits => 16) ; 
    wait ; 
end process InitProc ; 

Use Model 2: Clock Gating

The intent is that Clk and Clk2 both change before any non-preponed processes can run,and hence, the non-preponed processes see the change at the same time.

preponed : Clk <= not Clk after 20 ns ; 
preponed : Clk2 <= Clk and ClockGate ;  

Proposal

Questions

General Comments

-- ErnstChristen - 2015-01-27

There are 2 proposals related to clock management.

It seems worthwhile to formulate generic requirements for handling clocks (semantics, usage, restrictions, etc.) before looking at individual aspects in isolation.

-- TristanGingold - 2016-06-04 (via Email)

Complexity is very low, this will simply add a new stratum, like postponed.

I am not convinced by use case #1. Values can be assigned by a default value; and initialization using procedure is usually done within reset.

Use case #2 is more interesting. Propagation through nets is immediate, contrary to signal assignment. With vhdl 2008, it is possible to add logic in port map but they are delayed by one delta cycle. As far as I know, it is not easy to do logic on clocks. But I think this case must be dug a bit more.

Supporters

-- MortenZilmer - 2015-01-21

-- PatrickLehmann - 2016-08-01

Topic revision: r8 - 2020-02-17 - 15:34:36 - JimLewis
 
Copyright © 2008-2021 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback