?

Log in

No account? Create an account
Заметки во время ревью главы про мультиплексоры для российского лабника по Verilog+RTL+FPGA - Юрий Панчул [entries|archive|friends|userinfo]
Money can buy bandwidth. Latency requires bribing God.

[ website | My Website ]
[ userinfo | livejournal userinfo ]
[ archive | journal archive ]

Заметки во время ревью главы про мультиплексоры для российского лабника по Verilog+RTL+FPGA [Dec. 2nd, 2018|11:36 pm]
Yuri Panchul
Сегодня я делал ревью главы про мультиплексоры для российского лабника по Verilog+RTL+FPGA. Во время ревью я заметил, что в главе не хватает некоторых полезных идей, которые есть в других книгах. Поэтому я оставляю куски этих книг здесь, а потом буду на этот пост ссылаться.

1. В главе под ревью показно, как сделать мультиплексор из логических элементов. Но в ней не показано, как сделать любой логический элемент из мультиплексора. В частности любую функцию двух вводов, используя четырехвходной мультиплексор. Это важная идея, которая подводит читателя к устройству LUT в FPGA. Эта идея описана в книжке Harris & Harris (см. скриншоты ниже).

2. Помимо общего случая с lookup table (1) существует популярный элементарный вопрос для собеседований "сделайте такую-то gate из двухвходового мультиплексора и инвертора". Это стоит ввести в вопросы в конце главы (см. ответы в книжке Digital Logic Interview Questions ниже).

3. У читателя главы может сложится впечатление, что все мультиплексоры во всех микросхемах строятся из логических элементов. Это не так - разные виды MUX-ов как правило есть в ASIC libraries в standard cell design, не говоря уже о custom design. Это стоит упомянуть, со ссылкой на книжку CMOS VLSI design by Weste & Harris. На страницах ниже показано как сделать mux из transmission gates, транзисторов и tristate elements. Tristate наверное упоминать не надо, но про компактную реализацию mux для ASIC или custom пару предложений стоит сказать.

4. Важным моментом является использование mux-ов для resource allocation and sharing в арифметических операциях. В книжке Bhasker-а приводится пример экономии целого ALU с помощью перестановки mux-а для управления операндом. Его стоит привести с ссылкой на книжку Bhasker-а. Операции такого рода часто делаются например в схемах для DSP:

5. Пару кусков кода в главе можно улучшить с помощью feature которая называется variable vector part select. Есть куча людей, которые считают, что это черта SystemVerilog, а не Verilog, но на самом деле это черта Verilog-2001, и ее можно спокойно использовать, даже если требование блока использовать только Verilog, и не SystemVerilog. Сейчас поддержка тулами Verilog-2001 практически такая же, как и Verilog-95, поэтому большинство компаний стандартизуются минимум на Verilog-2001 даже для самого консервативного синтезируемого подмножества языка:

Страницы (с повторением текста):

1. В главе под ревью показно, как сделать мультиплексор из логических элементов. Но в ней не показано, как сделать любой логический элемент из мультиплексора. В частности любую функцию двух вводов, используя четырехвходной мультиплексор. Это важная идея, которая подводит читателя к устройству LUT в FPGA. Эта идея описана в книжке Harris & Harris (см. скриншоты ниже).











2. Помимо общего случая с lookup table (1) существует популярный элементарный вопрос для собеседований "сделайте такую-то gate из двухвходового мультиплексора и инвертора". Это стоит ввести в вопросы в конце главы (см. ответы в книжке Digital Logic Interview Questions ниже).









3. У читателя главы может сложится впечатление, что все мультиплексоры во всех микросхемах строятся из логических элементов. Это не так - разные виды MUX-ов как правило есть в ASIC libraries в standard cell design, не говоря уже о custom design. Это стоит упомянуть, со ссылкой на книжку CMOS VLSI design by Weste & Harris. На страницах ниже показано как сделать mux из transmission gates, транзисторов и tristate elements. Tristate наверное упоминать не надо, но про компактную реализацию mux для ASIC или custom пару предложений стоит сказать.













4. Важным моментом является использование mux-ов для resource allocation and sharing в арифметических операциях. В книжке Bhasker-а приводится пример экономии целого ALU с помощью перестановки mux-а для управления операндом. Его стоит привести с ссылкой на книжку Bhasker-а. Операции такого рода часто делаются например в схемах для DSP:













5. Пару кусков кода в главе можно улучшить с помощью feature которая называется variable vector part select. Есть куча людей, которые считают, что это черта SystemVerilog, а не Verilog, но на самом деле это черта Verilog-2001, и ее можно спокойно использовать, даже если требование блока использовать только Verilog, и не SystemVerilog. Сейчас поддержка тулами Verilog-2001 практически такая же, как и Verilog-95, поэтому большинство компаний стандартизуются минимум на нем даже для самого консервативного синтезируемого подмножества языка:





LinkReply

Comments:
[User Picture]From: podrivnik
2018-12-03 02:58 pm (UTC)
Я видел этот пост без комментариев.

А что за лабник Verilog+RTL+FPGA?
(Reply) (Thread)
[User Picture]From: panchul
2018-12-03 04:01 pm (UTC)
Под эгидой ВШЭ МИЭМ, с участием МГУ, ИТМО, IVA TEch, а также преподавателей украинских вузов.
(Reply) (Parent) (Thread)
[User Picture]From: 18cc
2018-12-03 05:14 pm (UTC)
Пост не читал, но Панчулу рад!

ЗЫ: Как там Радулова?
ЗЫЗЫ: Где опрос?
(Reply) (Thread)
[User Picture]From: panchul
2018-12-03 07:47 pm (UTC)
Радулова бегает за Волочковой и пишет все скучнее и скучнее. Наверное мужчины стали ее меньше обижать, вот и талант гаснет.
(Reply) (Parent) (Thread)
[User Picture]From: max_tx
2018-12-03 06:54 pm (UTC)
Юра, русский перевод реально режет ухо; это уже после редакторской правки?
(Reply) (Thread)
[User Picture]From: panchul
2018-12-03 07:26 pm (UTC)
Это про что?
(Reply) (Parent) (Thread)
[User Picture]From: max_tx
2018-12-03 08:08 pm (UTC)
Pages in russian (scanned ones)
(Reply) (Parent) (Thread)
[User Picture]From: panchul
2018-12-03 08:33 pm (UTC)
Переведи лучше
(Reply) (Parent) (Thread)
[User Picture]From: musli_o_raznom
2018-12-07 03:54 pm (UTC)
Ого, Ю.Панчул на Хабре! 🙌

YuriPanchul сегодня в 15:50
Десятиклассница из Сибири хочет стать проектировщицей процессоров. Почему бы ей не сделать нейроускоритель на ПЛИС?

https://m.habr.com/post/432378/
(Reply) (Thread)
[User Picture]From: musli_o_raznom
2018-12-07 04:02 pm (UTC)
Даша - симпатяга 👍

А вы похудели...
видимо, от непосильной работы и постоянных перемещений по планете )

Берегите себя!
💝
(Reply) (Thread)