IEEE 200X Fast Track Change Proposal ID: FT-19 Proposer: Jim Lewis email: Jim@SynthWorks.com Status: Open Proposed: Date Analyzed: Date Resolved: Date Enhancement Summary: process_comb, process_latch, process_ff Related issues: Relevant LRM section: Enhancement Detail: ---------------------------- Processes with implied sensitivity lists and synthesis semantics. Analysis: ---------------------------- Modifications to 1076-2002 Modify process_statement definition in clause 8.4 to: process_statement ::= [ process_label : ] [ postponed ] process_sensitivity [ is ] process_declarative_part begin process_statement_part end [ postponed ] process [ process_label ] ; Add definition for process_sensitivity in clause 8.4: process_sensitivity ::= process [ ( sensitivity_list ) ] | process_comb | process_latch | process_ff Add definition for clock_edge in clause 8.4: clock_edge ::= clock_level and event_expr | event_expr and clock_level clock_level ::= clk_signal_name = '0' | clk_signal_name = '1' event_expr ::= clk_signal_name'EVENT | not clk_signal_name'STABLE Note, the procedures RISING_EDGE and FALLING_EDGE as defined in IEEE 1164 conform to the above. Add the following paragraph to clause 8.4: A process of the form process_comb shall be executed as if it contains a sensitivity list that has all of the signals read in the process (see clause 4.3.2 for a definition of read). Software tools (such as lint checkers and synthesis tools) can perform additional checks to warn if any behavior within a process_comb process does not represent combinational logic, such as if rising-edge or level-sensitive storage elements are implied. A process of the form, process_latch, shall be executed as if it contains a sensitivity list that has all of the signals read in the process (see clause 4.3.2 for a definition of read). Software tools can perform additional checks to warn if any behavior within a process_latch process does not represent a level sensitive storage element (latch). A process of the form, process_ff, shall be executed as if it contains the clock_edge and any signal read independently from the clock on the sensitivity list. Clock_edge shall be as defined above. Software tools can perform additional checks to warn if any behavior within a process_latch process does not represent a latch. Resolution: ---------------------------- [To be performed by the 200X Fast Track Working Group]