Определение времени выполнения всех операторов в процессе FPGA - PullRequest
0 голосов
/ 05 сентября 2018

Я начинающий, изучаю FPGA. Я путаю проблему. У меня есть код и тип данных, который я использую, с фиксированной точкой:

process(clk)
  begin
   if(clk'EVENT and clk ='1') then
      r_amp := to_sfixed (amp,amp'HIGH,amp'LOW);
    r_Va  := resize (r_amp * to_sfixed(Va,0,-31),r_Va);
    r_Vb  := resize (r_amp * to_sfixed(Vb,0,-31),r_Vb);
    r_Vc  := resize (r_amp * to_sfixed(Vc,0,-31),r_Vc);
    V_alpha := resize(r_Va/(to_sfixed (2/3,4,-27)*Udc),V_alpha);
    V_beta  := resize(to_sfixed(0.57735026919,4,-27)*(r_Vb-r_Vc)/(to_sfixed (2/3,4,-27)*Udc),V_beta);
    tmp := resize(to_sfixed(0.57735026919,4,-27)*V_beta,tmp);
    z1x := resize(V_alpha - tmp,z1x);
    z1y := resize(to_sfixed (2,4,-27)*tmp,z1y);
    z2x := resize(z1x+z1y,z2x);
    z2y := resize(to_sfixed (-1,4,-27)*z1x,z2y);
    z3x := resize(z1y,z3x);
    z3y := resize(to_sfixed (-1,4,-27),z3y);
   end if;
   end process;

Как рассчитать время выполнения всех операторов в процессе? что произойдет, если все операторы не завершатся за 1 такт? Спасибо за просмотр.

1 Ответ

0 голосов
/ 05 сентября 2018

Вы определяете период времени в нс, и инструменты synt / PR пытаются разместить логику, чтобы это ограничение по времени было выполнено. Если это не удастся, вы получите ошибку синхронизации.

Если он не завершен в течение 1 клика, результат не определен.

...