標(biāo)題: 搞定HDLCompiler:499 line:Illegal operation with real number [打印本頁(yè)]

作者: piaolin    時(shí)間: 2015-11-1 18:03
標(biāo)題: 搞定HDLCompiler:499 line:Illegal operation with real number

一、parameter在可綜合邏輯設(shè)計(jì)中只能用于定義整數(shù),否則綜合后會(huì)提示下面的錯(cuò)誤信息;而在仿真中既可以定義整數(shù),也可以定義實(shí)數(shù)。


HDLCompiler:499 "" line 60: Illegal operation with real number


二、當(dāng)以下面的形式給出參數(shù)定義時(shí),CLK_CYCLE將是一個(gè)舍去小數(shù)部分的整數(shù)。

parameter CLK_CYCLE = 10/4;

三、在仿真時(shí)如果要定義一個(gè)實(shí)數(shù)參數(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;

四、在進(jìn)行可綜合邏輯設(shè)計(jì)時(shí),如果一個(gè)參數(shù)是經(jīng)過(guò)又乘又除后得到的,那么有如下兩種形式,一種是先除后乘,另一種是先乘后除。這里推薦用先乘后除,杜絕用先除后乘,理由是先乘后除的結(jié)果更加接近真實(shí)值(能夠除盡的情況除外)。不妨以具體數(shù)值進(jìn)行分析,如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更加接近真實(shí)值。

parameter CLK_CYCLE = 100/T0*10; 或

parameter CLK_CYCLE = 100*10/T0;







歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1