Skip to content

Commit

Permalink
ЛР2. Обновление порядка выполнения задания
Browse files Browse the repository at this point in the history
  • Loading branch information
HepoH3 authored Oct 14, 2024
1 parent f47397b commit d997c2f
Showing 1 changed file with 6 additions and 3 deletions.
9 changes: 6 additions & 3 deletions Labs/02. Arithmetic-logic unit/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -294,7 +294,10 @@ _Рисунок 4. Пример схемы, реализующей АЛУ._
### Порядок выполнения задания

1. Добавьте в `Design Sources` проекта файл [`alu_opcodes_pkg.sv`](alu_opcodes_pkg.sv). Этот файл содержит объявление пакета `alu_opcodes_pkg`, в котором прописаны все опкоды АЛУ.
2. Опишите модуль `alu` с таким же именем и портами, как указано в [задании](#задание).
1. Поскольку данный файл не содержит описания модулей, этот файл неотобразится во вкладке `Hierarchy` окна `Sources` в Vivado (исключением может быть ситуация, когда в проекте вообще нет ни одного модуля). Добавленный файл можно будет найти во вкладках `Libraries` и `Compile Order`.
2. Обратите внимание, что имена параметров кодов операций АЛУ, объявленных в добавляемом пакете имеют префикс `ALU_`, которого не было в таблице.
3. В случае, если вы добавили пакет в проект и импортировали его в модуле АЛУ, однако Vivado выдает ошибку о том, что используемые параметры не объявлены, попробуйте сперва исправить все остальные синтаксические ошибки и сохранить файл. Если и это не помогло, можно перейти на вкладку `Compile Order`, нажать правой кнопкой мыши по файлу `alu_opcodes_pkg.sv` и выбрть `Move to Top`. Это вариант "последней надежды" и должен использоваться только в самом крайнем случае. Vivado всегда может самостоятельно определить порядок компиляции файлов, если в проекте нет никаких проблем, и тот факт что вам приходися менять этот порядок означает, что какие-то в проекте есть какие-то проблемы.
3. Опишите модуль `alu` с таким же именем и портами, как указано в [задании](#задание).
1. Поскольку у вас два выходных сигнала, зависящих от сигнала `alu_op_i`, вам потребуется описать два разных [мультиплексора](../../Basic%20Verilog%20structures/Multiplexors.md) (их лучше всего описывать через два отдельных блока `case`). При описании, используйте `default` на оставшиеся комбинации сигнала `alu_op_i`.
2. Следите за разрядностью ваших сигналов.
3. Для реализации АЛУ, руководствуйтесь таблицей с операциями, а не схемой в конце задания, которая приведена в качестве референса. Обратите внимание, в одной половине операций `flag_o` должен быть равен нулю, в другой `result_o` (т.е. всегда либо один, либо другой сигнал должен быть равен нулю). Именно поэтому удобней всего будет описывать АЛУ в двух разных блоках `case`.
Expand All @@ -303,9 +306,9 @@ _Рисунок 4. Пример схемы, реализующей АЛУ._
1. При подключении сумматора, на входной бит переноса необходимо подать значение `1'b0`. Если не подать значение на входной бит переноса, результат суммы будет не определен (т.к. не определено одно из слагаемых).
2. Выходной бит переноса при подключении сумматора можно не указывать, т.к. он использоваться не будет.
6. При реализации операций сдвига, руководствуйтесь [особенностями реализации сдвигов](#особенности-реализации-сдвига).
3. Проверьте модуль с помощью верификационного окружения, представленного в файле [`lab_02.tb_alu.sv`](lab_02.tb_alu.sv). В случае, если в TCL-консоли появились сообщения об ошибках, вам необходимо [найти](../../Vivado%20Basics/05.%20Bug%20hunting.md) и исправить их.
4. Проверьте модуль с помощью верификационного окружения, представленного в файле [`lab_02.tb_alu.sv`](lab_02.tb_alu.sv). В случае, если в TCL-консоли появились сообщения об ошибках, вам необходимо [найти](../../Vivado%20Basics/05.%20Bug%20hunting.md) и исправить их.
1. Перед запуском моделирования, убедитесь, что у вас выбран корректный модуль верхнего уровня в `Simulation Sources`.
4. Проверьте работоспособность вашей цифровой схемы в ПЛИС.
5. Проверьте работоспособность вашей цифровой схемы в ПЛИС.

## Список использованной литературы

Expand Down

0 comments on commit d997c2f

Please sign in to comment.