crazybird

【原创】关于parameter的一些用法

0
阅读(3375)

一、parameter在可综合逻辑设计中只能用于定义整数,否则综合后会提示下面的错误信息;而在仿真中既可以定义整数,也可以定义实数。

image

二、当以下面的形式给出参数定义时,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;