Как определить точность шкалы времени, использованную в симуляции, из исходного кода? Предположим, у меня есть параметр конфигурации (cfg_delay_i) некоторого значения задержки, заданного пользователем в единицах времени как fs . Если пользователь дает 1000 , мой код должен ждать 1000fs или 1ps перед выполнением.
#(cfg_delay_i * 1fs );//will wait only if timescale is 1ps/1fs
do_something();
Если точность шкалы времени равна 1fs , проблем не будет, но если точность выше, чем эта, она не будет ждать и будет работать как 0 задержка . Поэтому я хочу написать код, который будет определять временную шкалу, используемую пользователем, и соответственно указывать задержку. Мой ожидаемый псевдокод будет выглядеть следующим образом:
if(timeprecision == 1fs )#(cfg_delay_i * 1fs ) ;
else if(timeprecision == 1ps )#(cfg_delay_i/1000 * 1ps ) ;
Пожалуйста, помогите мне с логикой, чтобы определитьединица измерения времени и точность внутри.