Kluwer 0 23 мая, 2019 Опубликовано 23 мая, 2019 · Жалоба 50 minutes ago, Doka said: FPGA <-> ASIC RTL-код перестал вдруг портироваться на асики? Really, Elon Mask?! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Nick_K 0 23 мая, 2019 Опубликовано 23 мая, 2019 · Жалоба 41 minutes ago, Kluwer said: RTL-код перестал вдруг портироваться на асики? Really, Elon Mask?! А почему вдруг? Я лет 5, не меньше, знаю контору, которая разрабатывает Асики на ПЛИСах Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Doka 4 23 мая, 2019 Опубликовано 23 мая, 2019 · Жалоба 2 hours ago, Kluwer said: RTL-код перестал вдруг портироваться на асики? Really, Elon Mask?! а как это бьётся с этим заявлением: On 5/22/2019 at 10:50 AM, Kluwer said: Никогда не мог понять желание всё подряд писать руками и обвешивать атрибутами синтеза, к-рые, на самом деле синтезатор Квартуса игнорит только в путь. Для таких задач специально сделаны удобные и вылизанные IP-коры или мегафункции. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
1891ВМ12Я 0 23 мая, 2019 Опубликовано 23 мая, 2019 · Жалоба Самые "кровавые" споры это о терминологии... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Doka 4 27 мая, 2019 Опубликовано 27 мая, 2019 · Жалоба 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 такое значение атрибута есть. странно это всё.... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RobFPGA 35 27 мая, 2019 Опубликовано 27 мая, 2019 · Жалоба Приветствую! 1 hour ago, Doka said: В итоге сдался и сделал так же. Хотел только узнать - двойная выходная буферизация - для того, чтобы на выходе BRAM использовать встроенные регистры, а второй регистр использовать на россыпи в месте, где эти самые данные будут использованы? Второй регистр на выходе BRAM это встроенный в BRAM примитив. Улучшает времянку чтения на высоких частотах. Но при P&R Vivado часто "вытягивает" этот регистр в обычную логику, чтобы сбалансировать задержки межу BRAM регистром и получателями данных или улучшить времянку при высоких fanout. Естественно если есть запас по таймингам. Удачи! Rob. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 27 мая, 2019 Опубликовано 27 мая, 2019 · Жалоба Собственно RobFPGA уже ответил) при желании, можно три регистра поставить, два в памяти и один для улучшения разводки) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться