Re: Null statement in VHDL

|----------------------------------------------------------------------------| |"[..] | | | |At least most tools now recognize initialization values for signals." | |----------------------------------------------------------------------------|

Synopsys Presto VHDL Version Y-2006.06 does not according to what is written on Page 5 of sold/doc/online/dc/pvhdl/pvhdl_c.pdf (Page C-5 of "HDL Compiler (Preso VHDL) Reference Manual". Which ones do?

|----------------------------------------------------------------------------| |"Took them only 20 years to implement that. | | | | | |My frustration comes from work in the EDA software field. I see that | |really hard tasks that are solved successfully during the synthesis | |and implementation process and wonder why topics like those above or | |not handled well, even though they are a lot simpler. | | | |Kolja Sulimma" | |----------------------------------------------------------------------------|

Perhaps they can not be bothered as customers can be convinced that such convenience is wishful thinking. E.g. Jonathan Bromley posted on

2007 March 5th in news: snipped-for-privacy@4ax.com :"[..] [..] The majority of hardware platforms do not offer reliable power-up initialisation of internal state. Consequently it is appropriate to code explicitly some reset behaviour. For exactly this reason, the hardware-oriented data types in VHDL (std_logic, etc) have a specific undefined value as the leftmost value of their value-set, so that initialisation oversights are more likely to be detected.

Unfortunately for a purist such as you, there are many occasions in hardware design where it is entirely appropriate to read an uninitialised object. For example, a pipeline or shift register probably does not need the hardware overhead of reset; it will automatically flush itself out over the first few clock cycles - but only if you allow it to run, which of course entails reading uninitialised (or default-initialised) values. Consequently it is appropriate for synthesis tools to do pretty much what they generally do: don't worry about initialisations. For preference, they should issue warnings about attempts to do explicit initialisation, since these cannot be synthesised to hardware on most platforms. However, even then it may be appropriate to let this past, since the explicit initialisation may be useful in order to limit the excessive pessimism that usually occurs when a simulator is confronted with a lot of 'U' or 'X' values. This issue is one of those things that hardware designers are required to be aware of, and failure to attend to it is usually a good identifying mark of a beginner, or a dyed-in-the-wool programmer assuming that hardware design is easy.

[..]"

Regards, Colin Paul Gloster

Reply to
Colin Paul Gloster
Loading thread data ...

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.