RobFPGA 27 29 июля, 2020 Опубликовано 29 июля, 2020 · Жалоба Приветствую! 39 minutes ago, RadiatoR said: Если бы были структуры и {} вместо begin/end было бы просто восхитительно! Ну в SV они (структуры) уже есть, да и куча другого полезного. А к begin/end привыкаешь быстро (и {} скобки уже оказались занятыми). Да и странно бы наверное смотрелась конструкция if (...) { : if_block_name ... } Хотя и к такому бы привыкли Удачи! Rob. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RadiatoR 2 29 июля, 2020 Опубликовано 29 июля, 2020 · Жалоба 48 minutes ago, RobFPGA said: и {} скобки уже оказались занятыми Точно. Конкатенация, забыл, новичок =). А на SV что-то не хочется пока переходить. Пока опыта мало буду работать с .v Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RobFPGA 27 29 июля, 2020 Опубликовано 29 июля, 2020 · Жалоба Приветствую! Just now, RadiatoR said: А на SV что-то не хочется пока переходить. Пока опыта мало буду работать с .v На SV для синтеза переходит легко так как там фактически тот же Verilog плюс дополнительные плюшки которыми можно начинать пользоваться по мере изучения. Например тот же struct, typedef или enum. Удачи! Rob. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
one_eight_seven 3 29 июля, 2020 Опубликовано 29 июля, 2020 (изменено) · Жалоба 1 hour ago, RobFPGA said: Ну в SV они (структуры) уже есть, да и куча другого полезного. А к begin/end привыкаешь быстро (и {} скобки уже оказались занятыми). Да и странно бы наверное смотрелась конструкция Нет, они свободны. и вполне себе в SV есть конструкции: if ( something == condition1 ) { value1 == constraint1; value2 inside { [start_value1 : end_value1] }; } else if ( something == condition2 ) { value1 == constraint2; value2 inside { [start_value2 : end_value2] }; } else { value1 == constraint3; value2 inside { [start_value3 : end_value3] }; } Если в описании ограничений это сумели сделать (как и foreach там тоже с фигурными скобками), то могли сделать и в остальных местах. Думаю, просто такой заменой (или дублированием функционала) решили не заниматься (если такие предложения были), и оставили, как есть в verilog'е. Изменено 29 июля, 2020 пользователем one_eight_seven Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andrew_b 14 29 июля, 2020 Опубликовано 29 июля, 2020 · Жалоба 1 час назад, RobFPGA сказал: Да и странно бы наверное смотрелась конструкция if (...) { : if_block_name ... } Да оно и сейчас с begin странно выглядит. Где логика размещения метки оператора именно в этом месте? Не перед, не после, а где-то в середине. Не, действительно, Верилог придумывали, находясь под воздействием какой-то дури. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RobFPGA 27 29 июля, 2020 Опубликовано 29 июля, 2020 · Жалоба Приветствую! 14 minutes ago, one_eight_seven said: Нет, они свободны. и вполне себе в SV есть конструкции: Это все-же не для синтеза, а для верификации - ту не надо было оглядываться на совместимость с verilog. И мне кажется что реализация таких конструкций перекочевала в SV чуть ли напрямую из e или vera Удачи! Rob. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
one_eight_seven 3 29 июля, 2020 Опубликовано 29 июля, 2020 (изменено) · Жалоба 9 minutes ago, andrew_b said: Где логика размещения метки оператора именно в этом месте? Не перед, не после, а где-то в середине. Метка сразу после слова begin. Для педантов в SV имеется возможность ставить такую же метку и после end, и компилятор отслеживает их соответствие (есть ли такая возможность в verilog - не помню). Перед началом блока (begin) может стоять какой-то оператор, например if, или for. Вот так и логика: Оператор () начало блока : метка блок конец блока : метка Изменено 29 июля, 2020 пользователем one_eight_seven Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RobFPGA 27 29 июля, 2020 Опубликовано 29 июля, 2020 · Жалоба Приветствую! 17 minutes ago, andrew_b said: Да оно и сейчас с begin странно выглядит. Где логика размещения метки оператора именно в этом месте? Не перед, не после, а где-то в середине. Можете думать что не в середине, а в начале блока! if (...) begin : if_block_name reg aa; ... begin : internal_blok_name reg aa; ... end end Как по мне странно и неудобно было бы первый раз именовать блок в конце. Хотя на вкус и цвет как говорится ... Удачи! Rob. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться