one_eight_seven 3 13 мая, 2019 Опубликовано 13 мая, 2019 · Жалоба 41 minutes ago, andrew_b said: Verilog провоцирует на написание такого говнокода, который на VHDL в принципе невозможен. 1. Нет, не провоцирует. 2. Есть известное изречение о том, что языки, призванные бороться с идиотией, очень быстро сами становятся идиотскими. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andrew_b 14 13 мая, 2019 Опубликовано 13 мая, 2019 · Жалоба 4 минуты назад, one_eight_seven сказал: 1. Нет, не провоцирует. Ну да, когда вы соединяете шины разной разрядности и в ответ получаете только варнинг, а потом начинаете выяснять, а чо оно не работатет, это не провокация, нет. Или забываете продекларировать сигнал, а в ответ тоже варнинг, это просто замечательно. Я сейчас имею дело с проектом, написанном на этом вашем СистемВерилоге. Его писал не я. В проекте используется хренова туча IP-ядер, написананных на том же прекрасном (Систем)Верилоге. И когда синтезатор выдаёт несколько сотен варнингов, среди которых и несовпадение разрядностей, и забытые сигналы, хочется убивать. Потому что язык, допускающий такое, не корявым назвать нельзя. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 13 мая, 2019 Опубликовано 13 мая, 2019 · Жалоба А предупреждения игнорирует только "корявый" программист, что на C, что на Verilog. В любом случае Verilog намного ближе к C, чем VHDL. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RobFPGA 27 13 мая, 2019 Опубликовано 13 мая, 2019 · Жалоба Приветствую! 1 hour ago, andrew_b said: Ну да, когда вы соединяете шины разной разрядности и в ответ получаете только варнинг, а потом начинаете выяснять, а чо оно не работатет, это не провокация, нет. Или забываете продекларировать сигнал, а в ответ тоже варнинг, это просто замечательно. Я сейчас имею дело с проектом, написанном на этом вашем СистемВерилоге. Его писал не я. В проекте используется хренова туча IP-ядер, написананных на том же прекрасном (Систем)Верилоге. И когда синтезатор выдаёт несколько сотен варнингов, среди которых и несовпадение разрядностей, и забытые сигналы, хочется убивать. Потому что язык, допускающий такое, не корявым назвать нельзя. На код писанный на VHDL синтезатор так же выдает кучу варнингов, в том числе и на забытые сигналы и на висящие порты без драйверов, и.т.д. И какое это отношение имеет к языку? Если не уметь пользоваться возможностями языка то даже разговаривая на великом и могучем можно в результат одни маты получать (поле синтеза ) Включить ошибку при компиляции/синтезе необъявленного сигнала в SV просто - `default_nettype none в начале исходника точно спасет жизнь кому-нибудь. (System)Verilog проще в изучении на начальном этапе так как многие вещи позволяет делать по умолчанию. Но это не заначить что этот язык прост. И это также налагает некоторую ответственность на разработчика в обмен на уменьшение объема глупой графоманской работы. Но в любом случае полезно попробовать оба и тогда решать на чем писать. Удачи! Rob. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Leka 0 13 мая, 2019 Опубликовано 13 мая, 2019 · Жалоба 33 minutes ago, ViKo said: В любом случае Verilog намного ближе к C, чем VHDL. Конечно ближе. Понадобился crc16 для USB в ПЛИС, взял с Вики исходник на Си, заменил { } на begin end, готово: `default_nettype none module crc16(clk, clr, en, a, q); input clk, clr, en; input [7:0] a; output reg [15:0] q; `define P 16'hA001; always@(posedge clk)begin if(clr) q=0; if(en) begin q=~q^a; for(int i=0; i<8; i++) if(q&1)begin q>>=1; q^=`P; end else q>>=1; q=~q; end end endmodule Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Yuri124 1 13 мая, 2019 Опубликовано 13 мая, 2019 (изменено) · Жалоба Ну, все же не стал бы ставить даже знак приблизительного равенства между С и Verilog - несмотря на формальное сходство, делают же они принципиально разные вещи. Вернее - этими языками описывается принципиально разное. Изменено 13 мая, 2019 пользователем Yuri124 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andrew_b 14 13 мая, 2019 Опубликовано 13 мая, 2019 · Жалоба 2 часа назад, ViKo сказал: А предупреждения игнорирует только "корявый" программист, что на C, что на Verilog. Как мне не игнорировать предупреждения, которые порождает код криворуких индусов в IP-ядрах? 2 часа назад, RobFPGA сказал: И какое это отношение имеет к языку? Прямое. Незадекларированные сигналы, соединение шин разных разрядностей в VHDL в принципе невозможны. Это будет ошибкой. 2 часа назад, RobFPGA сказал: обмен на уменьшение объема глупой графоманской работы Вы точно знаете, что означает слово "графомания"? И еще я вам по секрету скажу. Если использовать не куцый редактор из среды, а нормальный, который умеет шаблоны, то объём стука по клавиатуре сокращается в разы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexadmin 0 13 мая, 2019 Опубликовано 13 мая, 2019 · Жалоба Раз уж "началось" (ц) предлагаю адептам Verilog маленькую задачку для общего развития, написать аналог: Generic ( X : natural; Y : natural) ... attribute LOC of FFi:label is "SLICE_X" & integer'image(X)& "Y" & integer'image(Y); PS Заодно расширю свои познания в верилоге. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
yes 5 13 мая, 2019 Опубликовано 13 мая, 2019 · Жалоба 54 minutes ago, andrew_b said: Прямое. Незадекларированные сигналы, соединение шин разных разрядностей в VHDL в принципе невозможны. Это будет ошибкой. ну так для этого декларируют все нужное и не нужное. я не знаю лучшего примера использования использования VHDL, чем гейслеровская GRLIB, с которой много работал. дык там на сборку процессора для АЗИК-а (где традиционно варнингам уделяется больше места) набирается больше 10к варнингов. ну и большие проблемы с инкапсуляцией (уж извините за такие слова), чтобы что-то добавить в либу, нужно в десяток файлов вносить изменения, как правило дублирующиеся ------------- поэтому только систем верилог, рекомендовать для освоения VHDL это просто издеваться над начинающим, по-моему. ну и не могу не вспомнить известную хохму от Cooley (ESNUG) когда он собрал в реале две команды топящие за V и VHDL и дал им задание довести до нетлиста какую-то FSM (не помню уже детали) без доступа к хелпу, по-моему. ну хотелось там времянки сравнить и все-такое, дык, насколько я помню, сравнивать не понадобилось, из VHDL-шиков никто не успел довести до синтеза за отпущенное время 9 minutes ago, alexadmin said: Раз уж "началось" (ц) предлагаю адептам Verilog маленькую задачку для общего развития, написать аналог: Generic ( X : natural; Y : natural) ... attribute LOC of FFi:label is "SLICE_X" & integer'image(X)& "Y" & integer'image(Y); PS Заодно расширю свои познания в верилоге. defparam FFi.SLICE_X = X ; // ну то есть тут склейте строку, какую хотите, если я понял смысл вопроса Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 60 13 мая, 2019 Опубликовано 13 мая, 2019 · Жалоба Коллеги, очень интересно и много познавательной информации! Спасибо! Это по языкам))) По плис тоже вроде ясно. А что со средами? Код предпочитаю в Slick Edit писать, он и подсветку имеет для этих языков. Моделировать ModelSim? Синтезировать только в "родной" среде от производителя ПЛИС? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexadmin 0 13 мая, 2019 Опубликовано 13 мая, 2019 · Жалоба 12 minutes ago, yes said: defparam FFi.SLICE_X = X ; // ну то есть тут склейте строку, какую хотите, если я понял смысл вопроса defparam это не synthesis attribute... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
yes 5 13 мая, 2019 Опубликовано 13 мая, 2019 · Жалоба 3 minutes ago, haker_fox said: Моделировать ModelSim? Синтезировать только в "родной" среде от производителя ПЛИС? дык ответ зависит от среды, то есть от производителя ПЛИС. синтез может быть симплифай (machxo*, ice40 или актел), а в качестве симулятора Алдек - это все дается бесплатно для маленьких ПЛИС, то есть без кряков и т.п. (иногда важно) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
yes 5 13 мая, 2019 Опубликовано 13 мая, 2019 · Жалоба 1 hour ago, alexadmin said: defparam это не synthesis attribute... defparam это метод передачи значения в атрибут синтеза (то есть в примере не атрибут синтеза, а констрейн размещения, но оставим это для ясности). в отличие от VHDL можно указывать иерархический путь. я понимаю, что речь про якобы недостаток верилога, что нельзя написать что-то типа (* LOCK= вот тут что-то вычисляем из параметров переданных в модуль *) FFi; для латтиса или актела, в исходнике вообще такое не задается, ну и там где можно, как-то нехорошо такое делать (upd: это должно задаваться в файле констрейнов, а не в исходнике. ведь исходник можно применить там, где такого констрейна/атрибута вообще нет.) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 13 мая, 2019 Опубликовано 13 мая, 2019 · Жалоба Ух ты, давно холиваров VHDL vs Verilog не было, последний серьёзный, ЕМНИП с Acvarif закончился ничем (правда там он за AHDL топил). Прошу всех не заводиться, тему отслеживаю. Модератор Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 60 13 мая, 2019 Опубликовано 13 мая, 2019 · Жалоба 11 hours ago, des00 said: Прошу всех не заводиться, тему отслеживаю. Модератор Ну вот и я из этой темы про языки вполне достаточно узнал. Что-то другие аспекты почти не обсуждаются, а было бы, как начинающему, весьма интересно послушать) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться