Jump to content

    

Задержка сигнала на Verilog

50 minutes ago, Doka said:

FPGA <-> ASIC

RTL-код перестал вдруг портироваться на асики? Really, Elon Mask?!

Share this post


Link to post
Share on other sites
41 minutes ago, Kluwer said:

RTL-код перестал вдруг портироваться на асики? Really, Elon Mask?!

А почему вдруг? Я лет 5, не меньше, знаю контору, которая разрабатывает Асики на ПЛИСах

Share this post


Link to post
Share on other sites
2 hours ago, Kluwer said:

RTL-код перестал вдруг портироваться на асики? Really, Elon Mask?!

а как это бьётся с этим заявлением:

 

 

On 5/22/2019 at 10:50 AM, Kluwer said:

Никогда не мог понять желание всё подряд писать руками и обвешивать атрибутами синтеза, к-рые, на самом деле синтезатор Квартуса игнорит только в путь. Для таких задач специально сделаны удобные и вылизанные IP-коры или мегафункции.

 

 

Share this post


Link to post
Share on other sites

Самые "кровавые" споры это о терминологии... :acute:

Share this post


Link to post
Share on other sites
On 5/17/2019 at 4:17 PM, des00 said:

вот как раз этот вариант, адекватен и нормален. для альтеры я поступаю точно также. Квартус тоже глючит, особенно с пользовательскими типами.


  always_ff @(posedge iclk) begin
    if (iclkena) begin
      if (ival) begin
        addr        <= addr + 1'b1;
        raddr       <= addr;
        waddr       <= addr + delay;
        //
        ram[waddr]  <= wdata;
        rdata       <= ram[raddr];
        //
        dat2out     <= rdata;
      end
    end
  end

на все случаи жизни, завернуть в компонент и использовать.

Более того, как видно из кода, задержка меньше трех тактов, на памяти не получится при полной конвейризации и двух без оной. Это сразу показывает например, почему софту не выгодно делать мелкие задержки на памяти)

В итоге сдался и сделал так же. Хотел только узнать - двойная выходная буферизация - для того, чтобы на выходе BRAM использовать встроенные регистры, а второй регистр использовать на россыпи в месте, где эти самые данные будут использованы?

 

Похоже иного способа заставить вивадо не существует,

что примечательно, в синплифай для xilinx нет значения атрибута syn_srlstyle, который бы позволял указывать на реализацию на блочной памяти, а для Altera & Lattice такое значение атрибута есть. странно это всё....

 

Share this post


Link to post
Share on other sites

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

1 hour ago, Doka said:

В итоге сдался и сделал так же. Хотел только узнать - двойная выходная буферизация - для того, чтобы на выходе BRAM использовать встроенные регистры, а второй регистр использовать на россыпи в месте, где эти самые данные будут использованы?

Второй регистр  на выходе BRAM  это встроенный в BRAM примитив. Улучшает  времянку чтения на высоких частотах. Но при P&R  Vivado часто "вытягивает" этот регистр  в обычную логику, чтобы сбалансировать задержки межу BRAM регистром и получателями данных или улучшить времянку при высоких fanout.  Естественно если есть запас по таймингам. 

Удачи! Rob.

Share this post


Link to post
Share on other sites

Собственно RobFPGA уже ответил) при желании, можно три регистра поставить, два в памяти и один для улучшения разводки)

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