mirror of
https://github.com/MPSU/APS.git
synced 2025-09-15 17:20:10 +00:00
Merge pull request #55 from MPSU/svg-transition
Перенос drawio-изображений в svg-формат
This commit is contained in:
@@ -4,11 +4,11 @@
|
||||
|
||||
Иными словами, мультиплексор — это переключатель (коммутатор), соединяющий выход с одним из множества входов.
|
||||
|
||||

|
||||

|
||||
|
||||
Для начала создадим простой двухвходовой мультиплексор. Предположим, на `Y` нам необходимо передать один из сигналов — `D0` или `D1` в зависимости от значения управляющего сигнала `S`: когда `S==0`, на `Y` подается сигнал `D0`, в противном случае — `D1`.
|
||||
|
||||

|
||||

|
||||
|
||||
На языке SystemVerilog это можно описать несколькими способами. Первый — с помощью **[тернарного условного оператора](https://ru.wikipedia.org/wiki/Тернарная_условная_операция)**:
|
||||
|
||||
@@ -49,7 +49,7 @@ assign Y = S==1 ? D1 : D0;
|
||||
|
||||
Данное выражение говорит нам, что если `S==1`, то `Y` присваивается значение `D1`, в противном случае — значение `D0`.
|
||||
|
||||

|
||||

|
||||
|
||||
Также мультиплексор можно описать через конструкцию `if-else` в блоке `always`.
|
||||
|
||||
@@ -137,7 +137,7 @@ end // (так же как каждый begin должен ок
|
||||
|
||||
Рассмотрим вариант посложнее и опишем следующую схему:
|
||||
|
||||

|
||||

|
||||
|
||||
Здесь уже используется мультиплексор 4в1. Управляющий сигнал `S` в данном случае двухбитный. В блоке `case` мы перечисляем всевозможные варианты значений `S` и описываем выход мультиплексора.
|
||||
|
||||
@@ -269,4 +269,4 @@ endmodule
|
||||
|
||||
Как, по-вашему, описать на языке SystemVerilog схему, приведённую ниже?
|
||||
|
||||

|
||||

|
||||
|
Reference in New Issue
Block a user