TGViewer
Записки CPU designer'a Записки CPU designer'a @cpu_design · 3.6K subscribers
Post #98 1.71K
Сегодня начинаем новую рубрику - best practice, по мнению автора канала конечно же☺️

На повестке дня: Set membership (inside) operator

Открыл для себя новый оператор в SystemVerilog для задач в синтезируемом подмножестве языка.

SystemVerilog привнес интересные нововведения в языке, которые должны были упростить жизнь RTL-инженерам. Например interface или modport, но EDA тулы до сих пор не могут выдать стабильные результаты синтеза SystemVerilog кода, при использовании новых фич языка.
Спасибо хотя бы за enum и package. Теперь наследовать параметры, и описывать fsm стало на порядок проще и удобнее.

Что же делает оператор inside?
Оператор возвращает 1'b1 если сравниваемое выражение [слева от ключевого слова inside] совпадает с любым из выражений в наборе {}, в остальных случаях 1'b0 (синтаксис смотри на скриншоте).

Как и где применять?
▫️построение зависимостей внутри FSM
▫️поиск битовой подстроки в битовом векторе:
always_comb begin
flag = data_in inside {8'b??0011??};
end // true if the middle bits of data match 4'b0011
▫️поиск элемента в массиве хранимых регистров
always_comb begin
prime_val = data_in inside {data_set_array};
end // true if data matches a value inside the data_set_array array
▫️пример из моего текущего проекта - при помощи inside определяю тип команды для FMA блока: FMADD,FMSUB,FNMADD, и.т.д - в зависимости от команды понимаю нужно ли мне изменять знак одного из операндов или нет. Очень удобная замена ==, | операторов получилась.

⏺NOTE⏺
Протестировал оператор в Synopsys 2022.1, Vivado 2020.1, Siemens Oasys-RTL 2022.1.R1, Cadence Genus 21.1. Все эти тулы поддерживают стандарт SystemVerilog-2012 (IEEE Standard 1800-2012), не уверен что тулы, которые поддерживают стандарты 2009-го или 2005-го года корректно работают с inside

#bestpractice
  • 👍 27
  • 🔥 10
  • 🐳 3
  • 🤓 1
  • 🆒 1
More from @cpu_design
  1. Oct 3, 2026Нашёл на просторах Твиттера сборник лекций по analog/mixed-signal IC design: от физики MOS…
  2. Oct 2, 2026Как скосить перед начальством за ответственного сотрудника и заставить всех коллег себя не…
  3. Oct 2, 2026А вот и результаты Jane Street ASIC Puzzle подъехали 👀 https://blog.janestreet.com/asic-p…
  4. Oct 1, 2026OpenAI and Synopsys Announce GPT-Synopsys Ну что, вот они и пришли за нами. Если кратко, т…
  5. Sep 30, 2026Уже влезли в долги, чтобы наскрести на подписку ChatGPT за 500$? Пока убеждаете друзей зан…
  6. Sep 29, 2026Нидерланды продолжают укреплять свои позиции как один из ключевых полупроводниковых хабов…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →