[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [f-cpu] HDL coding rules
On Tue, Jul 30, 2002 at 01:58:29PM +0200, Just an Illusion wrote:
> Hi,
>
> I have forgot some thing
>
> Just an Illusion wrote:
>
> >Hi,
> >
> >Yann Guidon wrote:
>
> <cut>
>
> >>
> >>maybe you can look at the code and see yourself.
> >>
> >Ok, I have done it.
> >
> >Please, Etienne forgive me, but your code can be a good example to
> >illustrated this subject.
> >
> >In the eu_inc.vhd file :
> >
> >* some keywords are in capital letter, some others not.
> >* The generic parameter eu_inc_width can be put in capital letter, to
> >help distinction with signal and variable value.
> >* The interface signals aren't globally in capital letter except for
> >function abs_chunk.
> >
> >That doesn't change the result, but can help the code reading.
> >
> >The next remark is not a "coding rule", but more a "coding style" rule.
> >
> >I thing is better if you create a package which embedded all the
> >necessary component (and perhaps functions) needed for your eu_inc and
> >eu_cmp rather than "use work.find_lsb;" notation.
>
> I have an other one (coding style) :
>
> Defined each value of eu_inc_mode by a constant, and use them into the
> case structure. Something like :
> ...
> architecture simple of eu_inc is
> ...
> constant C_EU_INC_MODE_NEG : natural := "000"
> constant C_EU_INC_MODE_DEC : natural := "001"
> constant C_EU_INC_MODE_INC : natural := "010"
> constant C_EU_INC_MODE_ABS : natural := "011"
> constant C_EU_INC_MODE_LSB0 : natural := "100"
> constant C_EU_INC_MODE_LSB1 : natural := "101"
> ...
> begin
> ...
> eu_inc_in : process(eu_inc_A, eu_inc_simd, eu_inc_mode) is
> begin
> -- Input of unit
> case eu_inc_mode is
> when C_EU_INC_MODE_NEG => tree_in <= not eu_inc_A;
> when C_EU_INC_MODE_DEC => tree_in <= not eu_inc_A;
> when C_EU_INC_MODE_INC => tree_in <= eu_inc_A;
> when C_EU_INC_MODE_ABS => tree_in <= not eu_inc_A;
> when C_EU_INC_MODE_LSB0 => tree_in <= eu_inc_A;
> when C_EU_INC_MODE_LSB1 => tree_in <= not eu_inc_A;
> when others => tree_in <= eu_inc_A;
> end case;
> end process;
> ...
>
> Now, if you want change the eu_inc_mode coding values, you need modify
> it only in one place.
>
> See the coding rule I have use to immediatly link (when read) the
> constant value with the content of eu_inc_mode.
Ok, il will modify my code. I don't wait the document had written :-)
Etienne
*************************************************************
To unsubscribe, send an e-mail to majordomo@seul.org with
unsubscribe f-cpu in the body. http://f-cpu.seul.org/