a123-flex 0 21 августа, 2019 Опубликовано 21 августа, 2019 · Жалоба Понравилась реклама) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Amurak 0 22 августа, 2019 Опубликовано 22 августа, 2019 · Жалоба We created Cx in 2012 to get rid of the complexity of traditional HDLs. Today, Cx is an open-source language used by engineers and makers who want to efficiently create systems and applications for FPGAs and ASICs. The language has a C-like syntax, it features a strong bit-accurate static typing, and it allows cycle-accurate behavior to be implicitly expressed with structured code. Cx can be compiled into Verilog using the Synflow IDE. It offers the same Quality of Result and performance as HDLs with the simplicity of the C language. Как же я люблю такие фразы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dxp 31 23 августа, 2019 Опубликовано 23 августа, 2019 · Жалоба Посмотрел по диагонали. В туторе обратил внимание на результат кодогенерации рассматриваемого примера: always @(negedge reset_n or posedge clock_PLL) begin if (~reset_n) begin clock_50hz = 0; count = 0; end else begin if (count == 1000) begin clock_50hz = ~clock_50hz; count = 0; end else begin count = count + 1; end end end По факту always @(posedge clk) - блок, генерирующий флопы. Но присваивания внутри блока все блокирующие (источник неприятных сюрпризов). Что это? Недосмотр или некомпетентность? Сие резко подрывает доверие ко всей этой теме. Имхо, это похоже на стартап, созданный в надежде, что его заметит и купит кто-нить из крупных игроков (как обычно, ведь это основная цель подавляющего большинства стартапов). Ну, и по технике, как всегда, ещё один вопрос: как это все увязывать с имеющейся инфраструктурой, например, на этапе моделирования в симуляторах. Например, вот есть аппаратный блок, скажем, PCIe, вендор предоставляет IP ядро на HDL. Как это внедрять в этот их флоу, чтобы погонять на симуляторе? Как я понял, у них в системе симулятор не HDL, а какой-то свой, который "в 16 раз быстрее HDL симулятора". Этот вопрос относится ко всем С-подобным языкам, "убийцам" HDL. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RobFPGA 27 23 августа, 2019 Опубликовано 23 августа, 2019 · Жалоба Приветствую! 6 hours ago, dxp said: По факту always @(posedge clk) - блок, генерирующий флопы. Но присваивания внутри блока все блокирующие (источник неприятных сюрпризов). Что это? Недосмотр или некомпетентность? Сие резко подрывает доверие ко всей этой теме Сами по себе блокирующие присваивания не источник проблем. Тут так же будут генерироваться флопы. Ну а при синтезе из высокоуровневых языков так проще конвертировать логику алгоритма. Ведь в концепции оных присвоения значений переменным всегда блокирующие. 6 hours ago, dxp said: Имхо, это похоже на стартап, созданный в надежде, что его заметит и купит кто-нить из крупных игроков (как обычно, ведь это основная цель подавляющего большинства стартапов). Так и есть. Но и Vivado в свое время был стартапом граф. оболочки для разработки FPGA . Помню реклама была типа "Honey, ask your son to stop developing for FPGA" и карапуз на фоне бука с открытой BD Vivado - А теперь мы все что те карапузы, ни как не остановимся ... Удачи! Rob. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dxp 31 23 августа, 2019 Опубликовано 23 августа, 2019 · Жалоба 2 часа назад, RobFPGA сказал: Сами по себе блокирующие присваивания не источник проблем. Тут так же будут генерироваться флопы. Я сталкивался с проблемами, даже тут тему создавал по этому поводу не так давно . Там именно было, что в task были @(posedge clk) конструкции, а присваивания были блокирующими, и это приводило к проблемам из-за гонок совсем в другом месте - срабатывало на такт раньше (или позже), а происходило это из-за того, что шедулер симулятора выражения с блокирующими присваиваниями обрабатывает в начале цикла, а с неблокирующими - в конце. Очень поганенький был баг. 2 часа назад, RobFPGA сказал: Ведь в концепции оных присвоения значений переменным всегда блокирующие Так в этих языках и концепция другая: поток обработки и семантика присваивания иные. И должны быть средства управления тем, во что должно трансформироваться описание с этого языка - в комбинационку или во флопы. И вот тут оно должно работать правильно, иначе это таким инструментом будет тяжело пользоваться. 2 часа назад, RobFPGA сказал: Так и есть. Но и Vivado в свое время был стартапом граф. оболочки для разработки FPGA Оболочка, возможно так (не следил). Но синтез-то, насколько понимаю, всё же родной от Xilinx. А это-то и есть самое главное. Оболочка, кстати, в виваде - кака. В смысле тормознутости глючности. Такого тормоза, как вивадо - поискать. Даже консоль тиклевая - просто консоль - запускается на очень резвом компе несколько секунд. За аналогичная консоль той же квесты поднимается мгновенно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RobFPGA 27 23 августа, 2019 Опубликовано 23 августа, 2019 · Жалоба Приветствую! 17 minutes ago, dxp said: Оболочка, возможно так (не следил). Но синтез-то, насколько понимаю, всё же родной от Xilinx. А это-то и есть самое главное. Оболочка, кстати, в виваде - кака. В смысле тормознутости глючности. Такого тормоза, как вивадо - поискать. Даже консоль тиклевая - просто консоль - запускается на очень резвом компе несколько секунд. За аналогичная консоль той же квесты поднимается мгновенно. Тормоза это да, что есть, то есть ... хотя как по наполнению, так и по интеграции оболочка tcl в Vivado мне больше нравится чем в Qu. Ну может допилят когда-нибудь - или если не смогут заменять на новый стартап :) Удачи! Rob. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться