topor_topor 0 12 сентября, 2013 Опубликовано 12 сентября, 2013 · Жалоба Почему все так плотно сидят на VHDL? ведь он гораздо труднее veriloga Какие он дает преимущества? Он принят в милитари и аероспейс... у буржуев по крайней мере.... Ну и насчёт ошибок в VHDL... Фигня это на постном масле. К Verilog есть синтаксические чекеры которое такое проверяют что VHDL и не снилось (даже коректность стиля написания FSM и т.п.). Например - Cadence HAL. Ну а с SV - VHDL и рядом не валялся. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Maverick_ 15 12 сентября, 2013 Опубликовано 12 сентября, 2013 · Жалоба sifadin посмотрите открытый проект myhdl - мне он понравился... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Raven 11 13 сентября, 2013 Опубликовано 13 сентября, 2013 · Жалоба Все-таки не удержался ... :) Ну и насчёт ошибок в VHDL... Фигня это на постном масле. К Verilog есть синтаксические чекеры которое такое проверяют что VHDL и не снилось (даже коректность стиля написания FSM и т.п.). Те же (или аналогичные) чекеры и VHDL проверяют. Но VHDL заставляет думать и проектировать более ответственно, и кроме того, когда (и если) чекер что-то найдет, то для VHDL, как правило, сразу понятно, в чем проблема, что не понравилось. А вот с V/SV иногда и не сразу разберешься, до малого расследования доходит. Ну а с SV - VHDL и рядом не валялся. :) Попробуйте только языковыми средствами в SV сколотить систему, в которой будут присутствовать несколько инстансов одного и того же, но с разными наборами параметров, определенных в include'ах ;-) В VHDL же такой вариант предусмотрен (конфигурации). Есть и другие приколы. В чем SV действительно силен и за что ему "грейт сенька" :) - это верификация. В RTL части он лишь сокращает разрыв между Verilog'ом и VHDL до терпимого состояния, но все же остается на втором месте. IMHO. 2 sifadin: Современный инженер должен быть вхож в оба домена - и VHDL, и V/SV. Принципы построения RTL кода в обоих весьма близки, а разница в языковом представлении - это дело второго порядка (важного для эффективного выражения мысли на конкретном языке, но все же менее, чем понимание RTL основ). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Maverick_ 15 14 сентября, 2013 Опубликовано 14 сентября, 2013 · Жалоба вот интересная статистика, как раз на эту тему Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Raven 11 14 сентября, 2013 Опубликовано 14 сентября, 2013 · Жалоба Да, интересный блог. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Golikov 0 14 сентября, 2013 Опубликовано 14 сентября, 2013 · Жалоба VHDL - старше и старее, с него начинали, Verilog - новее, его делали учитывая что не хватало в VHDL. Отсюда сильна старая школа... Начинал писать на VHDL, потому что был курс в институте, потом был перерыв с плисами, сейчас опять начал, решил на veriloge попробовать, действительно есть некие сходства с С. ВХДЛ строже, и как было где-то написано им можно описать любое мыслимое и не мыслимое железо, им вроде как пользовались еще при создании микросхем. Верилог имеет ограничения, но они сдвинуты в область экзотики, большущая часть того что нужно обычным людям им описывается. Для меня сейчас выбор Верилога определяется более кратким синтаксисом. После годов писания кода для процов, компутеров, планшетов обнаружить среду (ISE) в которой нет синтаксис асиста - это как в каменный век попасть. Так отвыкаешь от необходимости помнить все названия переменных и их написание, что по началу даже теряешься. И вот тут как раз чем меньше текста надо писать, тем лучше, тем быстрее я опишу модуль. CTRL-C CTRL-V конечно здорово, но при большом модуле легче написать ручками чем мотать его туда суда и искать те переменные что тебе нужны. Потому сейчас для себя выбрал верилог... Но выбор не строгий, надо будет, перейду на VHDL, это инструменты, они просто нужны для решения задачи, а не для приема в секту. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
KalashKS 0 14 сентября, 2013 Опубликовано 14 сентября, 2013 · Жалоба Столкнулся недавно с одной проблемой. Есть описание FIFO, которое вставляется в проект раз тцать с различными параметрами, причем в ряде случаев его надо отсинтезить в блочную память, а иногда - в распределенную. Во что синтезить, определяется атрибутом симплифая. И вот тут возникает вопрос, как этот атрибут передать в FIFO. На VHDL решение очевидное - через generic, а на верилоге приходится писать два одинаковых файла с разным значением атрибута и через generate использовать нужный. Быть может кто-нибудь знает более изящное решение? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Sergey_Bekrenyov 0 15 сентября, 2013 Опубликовано 15 сентября, 2013 · Жалоба Столкнулся недавно с одной проблемой. Есть описание FIFO, которое вставляется в проект раз тцать с различными параметрами, причем в ряде случаев его надо отсинтезить в блочную память, а иногда - в распределенную. Во что синтезить, определяется атрибутом симплифая. И вот тут возникает вопрос, как этот атрибут передать в FIFO. На VHDL решение очевидное - через generic, а на верилоге приходится писать два одинаковых файла с разным значением атрибута и через generate использовать нужный. Быть может кто-нибудь знает более изящное решение? `define ???? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
KalashKS 0 15 сентября, 2013 Опубликовано 15 сентября, 2013 · Жалоба `define ???? На верилоге почти не пишу, могу ошибаться. Мне кажется, в этом случае атрибут будет одинаковым для всех вставленных компонентов. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Sergey_Bekrenyov 0 15 сентября, 2013 Опубликовано 15 сентября, 2013 · Жалоба На верилоге почти не пишу, могу ошибаться. Мне кажется, в этом случае атрибут будет одинаковым для всех вставленных компонентов. ISE languages templates В условиях должны быть константы - то есть либо параметры либо константы через дефайн generate if (<condition>) begin: <label_1> <code>; end else if (<condition>) begin: <label_2> <code>; end else begin: <label_3> <code>; end endgenerate Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
KalashKS 0 16 сентября, 2013 Опубликовано 16 сентября, 2013 · Жалоба То есть код generate if (BLOCK_RAM) begin: <label_1> reg [DWIDTH-1:0] mem [0:RAM_DEPTH-1];/*synthesis syn_ramstyle=block_ram*/ end else begin: <label_3> reg [DWIDTH-1:0] mem [0:RAM_DEPTH-1];/*synthesis syn_ramstyle=select_ram*/ end endgenerate должен работать? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Sergey_Bekrenyov 0 16 сентября, 2013 Опубликовано 16 сентября, 2013 · Жалоба То есть код generate if (BLOCK_RAM) begin: <label_1> reg [DWIDTH-1:0] mem [0:RAM_DEPTH-1];/*synthesis syn_ramstyle=block_ram*/ end else begin: <label_3> reg [DWIDTH-1:0] mem [0:RAM_DEPTH-1];/*synthesis syn_ramstyle=select_ram*/ end endgenerate должен работать? Честно сказать не знаю - обычно под такие конструкции убираю модули. а не объявления переменных. Попробуйте Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
KalashKS 0 16 сентября, 2013 Опубликовано 16 сентября, 2013 · Жалоба Честно сказать не знаю - обычно под такие конструкции убираю модули. а не объявления переменных. Попробуйте Пробовал. Надеялся, что не работало из-за моей криворукости. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Sergey_Bekrenyov 0 16 сентября, 2013 Опубликовано 16 сентября, 2013 · Жалоба Пробовал. Надеялся, что не работало из-за моей криворукости. Так нужно. .. parameter BLOCK_RAM = 1; parameter DWIDTH = 16; parameter RAM_DEPTH = 16; .. generate if (BLOCK_RAM) begin reg [DWIDTH-1:0] mem [0:RAM_DEPTH-1];/*synthesis syn_ramstyle=block_ram*/ end else begin reg [DWIDTH-1:0] mem [0:RAM_DEPTH-1];/*synthesis syn_ramstyle=select_ram*/ end endgenerate Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
yes 7 16 сентября, 2013 Опубликовано 16 сентября, 2013 · Жалоба Столкнулся недавно с одной проблемой. Есть описание FIFO, которое вставляется в проект раз тцать с различными параметрами, причем в ряде случаев его надо отсинтезить в блочную память, а иногда - в распределенную. Во что синтезить, определяется атрибутом симплифая. И вот тут возникает вопрос, как этот атрибут передать в FIFO. На VHDL решение очевидное - через generic, а на верилоге приходится писать два одинаковых файла с разным значением атрибута и через generate использовать нужный. Быть может кто-нибудь знает более изящное решение? в (* *) можно вставлять вычисляемое значение аттрибутов типа module m #( parameter string ramt="fifo"; ); (* synt_ramtype=ramt *) my_ram_reg; endmodule как-то так ----------------- выписка из стандарта attribute_instance ::= (* attr_spec { , attr_spec } *) attr_spec ::= attr_name [ = constant_expression ] attr_name ::= identifier Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться