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