一、parameter在可綜合邏輯設(shè)計中只能用于定義整數(shù),否則綜合后會提示下面的錯誤信息;而在仿真中既可以定義整數(shù),也可以定義實數(shù)。
HDLCompiler:499 "" line 60: Illegal operation with real number
二、當以下面的形式給出參數(shù)定義時,CLK_CYCLE將是一個舍去小數(shù)部分的整數(shù)。
parameter CLK_CYCLE = 10/4;
三、在仿真時如果要定義一個實數(shù)參數(shù)時,可以是下面任意一種定義形式。
parameter CLK_CYCLE = 2.5; 或
parameter CLK_CYCLE = 10.0/4; 或
parameter CLK_CYCLE = 10/4.0; 或
parameter CLK_CYCLE = 10.0/4.0;
四、在進行可綜合邏輯設(shè)計時,如果一個參數(shù)是經(jīng)過又乘又除后得到的,那么有如下兩種形式,一種是先除后乘,另一種是先乘后除。這里推薦用先乘后除,杜絕用先除后乘,理由是先乘后除的結(jié)果更加接近真實值(能夠除盡的情況除外)。不妨以具體數(shù)值進行分析,如T0=15,CLK_CYCLE的值理論上為66.6667。如果采用先除后乘,由于100/15舍去小數(shù)后得6,再乘以10,CLK_CYCLE結(jié)果為60;如果采用先乘后除,100*10得1000,再除以15,舍去小數(shù)后CLK_CYCLE結(jié)果為66。很明顯,66更加接近真實值。
parameter CLK_CYCLE = 100/T0*10; 或
parameter CLK_CYCLE = 100*10/T0;