Jump to content

    

Дробные параметры в Верилоге

Приветствую!

 

Это не мой способ. Это способ RobFPGA. Его и благодарите.. :biggrin:

Ну так как я забыл написать localparam то чесно поделим благодарность пополам :) .

 

Есть еще вариант если нужно присваивать константу wire|logic - обернуть вычисление в функцию которая возвращает integer.

Только вот для успешного синтеза в выражении real значения там могут быть только литеральными константами.

И не должно быть промежуточных real variable.

например

function integer ms_n(input integer ms);
   return (FREQ_Hz * 0.001 * ms);
endfunction

И опят же надо проверять в конкретном синтезаторе. А то у меня была эпопея когда "...return integer'(...)" в Vivado для всех отрицательных значений real выражения в скобках всегда выдавал -1. А просто "...return (...)" работал правильно.

 

Удачи! Rob.

 

Share this post


Link to post
Share on other sites
И опят же надо проверять в конкретном синтезаторе. А то у меня была эпопея когда "...return integer'(...)" в Vivado для всех отрицательных значений real выражения в скобках всегда выдавал -1. А просто "...return (...)" работал правильно.

А позвольте полюбопытствовать. Я по смыслу понимаю, что конструкция integer' - это приведение типа к целому. Но, перерыл IEEE'шный стандарт Верилога-2001(ieee_std_1364_2001) ничего такого не нашёл. Это какая-то узко-Vivado'вская фича, или я просто не нашёл?

Share this post


Link to post
Share on other sites
Но, перерыл IEEE'шный стандарт Верилога-2001(ieee_std_1364_2001) ничего такого не нашёл. Это какая-то узко-Vivado'вская фича, или я просто не нашёл?

Это фича SystemVerilog'a.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this