mirror of
https://github.com/MPSU/APS.git
synced 2025-09-16 09:40:10 +00:00
Merge remote-tracking branch 'origin/master' into brosandr.03_rf
This commit is contained in:
BIN
.pic/Other/Students server/x2go_terminate.jpg
Normal file
BIN
.pic/Other/Students server/x2go_terminate.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 35 KiB |
@@ -108,13 +108,13 @@ end
|
||||
logic Y;
|
||||
always_comb begin
|
||||
if(S==1) begin
|
||||
Y <= D1;
|
||||
Y = D1;
|
||||
end
|
||||
end
|
||||
|
||||
always_comb begin
|
||||
if(S==0) begin // Нельзя выполнять операцию присваивания
|
||||
Y <= D0; // для одного сигнала (Y) в нескольких
|
||||
Y = D0; // для одного сигнала (Y) в нескольких
|
||||
end // блоках always!
|
||||
end
|
||||
```
|
||||
@@ -140,8 +140,8 @@ logic Y;
|
||||
always_comb begin
|
||||
case(S) // Описываем блок case, где значение сигнала S
|
||||
// будет сравниваться с различными возможными его значениями
|
||||
1'b0: Y <= D0; // Если S==0, то Y = D0
|
||||
1'b1: Y <= D1;
|
||||
1'b0: Y = D0; // Если S==0, то Y = D0
|
||||
1'b1: Y = D1;
|
||||
endcase // Каждый case должен заканчиваться endcase
|
||||
end // (так же как каждый begin должен оканчиваться end)
|
||||
```
|
||||
@@ -165,10 +165,10 @@ module case_mux_ex(
|
||||
);
|
||||
always_comb begin
|
||||
case(S)
|
||||
3'b00: Y <= A;
|
||||
3'b01: Y <= C | B; // в блоке case можно мультиплексировать
|
||||
3'b00: Y = A;
|
||||
3'b01: Y = C | B; // в блоке case можно мультиплексировать
|
||||
// не только провода, но и логические выражения
|
||||
3'b10: Y <= (C|B) & D;
|
||||
3'b10: Y = (C|B) & D;
|
||||
/*
|
||||
Обратите внимание, что разрядность сигнала S — 3 бита.
|
||||
Это означает, что есть 8 комбинаций его разрядов.
|
||||
@@ -177,7 +177,7 @@ module case_mux_ex(
|
||||
быть какое-то одно значение "по умолчанию", используется специальная
|
||||
комбинация "default":
|
||||
*/
|
||||
default: Y <= D;
|
||||
default: Y = D;
|
||||
endcase
|
||||
end
|
||||
endmodule
|
||||
@@ -214,9 +214,10 @@ assign one_bit_result = bus1024[select];
|
||||
3. Во избежание появления [защелок](Latches.md) при описании мультиплексора, необходимо убедиться что у блоков `if` есть соответствующие им блоки `else`, а у мультиплексоров описаны все комбинации управляющего сигнала (при необходимости, множество оставшихся комбинаций можно покрыть с помощью комбинации `default`). Появление непреднамеренной защелки в дизайне ведет к ухудшению временных характеристик, избыточному использованию ресурсов, а также непредсказуемому поведению схемы из-за возможного удержания сигнала.
|
||||
4. Важно отметить, что блоки `if-else` и `case` могут использоваться не только для описания мультиплексоров.
|
||||
5. Конструкции `if-else` и `case` в рамках данных лабораторных работ можно описывать только внутри блока [`always`](#блок-always). При работе с этим блоком необходимо помнить следующие особенности:
|
||||
1. Существует несколько типов блока `always`: `always_comb`, `always_ff`, `always_latch`, определяющих то, к чему будет подключена описанная в этом блоке логика: проводу, регистру или защелке соответственно.
|
||||
2. Внутри блока always следует использовать оператор неблокирующего присваивания `<=`.
|
||||
3. Присваивание для любого сигнала возможно только внутри **одного** блока always. Два разных сигнала могут присваиваться как в одном блоке always, так каждый в отдельном, но операция присваивания одному и тому же сигналу в двух разных блоках always — нет.
|
||||
1. Существует несколько типов блока `always`: `always_comb`, `always_ff`, `always_latch`, определяющих то, к чему будет подключена описанная в этом блоке логика: проводу, регистру или защелке соответственно. В данных лабораторных работах вам нужно будет пользоваться блоками `always_ff` и `always_comb`, причем:
|
||||
1. внутри блока `always_ff` необходимо использовать оператор неблокирующего присваивания (`<=`);
|
||||
2. внутри блока `always_comb` необходимо использовать оператор блокирующего присваивания (`=`).
|
||||
2. Присваивание для любого сигнала возможно только внутри **одного** блока always. Два разных сигнала могут присваиваться как в одном блоке always, так и каждый в отдельном, но операция присваивания одному и тому же сигналу в двух разных блоках always — нет.
|
||||
|
||||
---
|
||||
|
||||
|
@@ -8,7 +8,7 @@
|
||||
See https://github.com/MPSU/APS/blob/master/LICENSE file for licensing details.
|
||||
* ------------------------------------------------------------------------------
|
||||
*/
|
||||
module tb_miriscv_alu();
|
||||
module tb_alu();
|
||||
|
||||
import alu_opcodes_pkg::*;
|
||||
|
||||
|
@@ -2,18 +2,39 @@
|
||||
|
||||
Данный сервер поднят для выполнения студентами их [индивидуального задания](../Labs/04.%20Primitive%20programmable%20device#индивидуальные-задания), а также для тех студентов, кому не хватило места в учебной аудитории. На сервере установлены: `Vivado`, `VSCode`, `gcc`, `git`. Поскольку сервер имеет ограниченные ресурсы, а студенты не имеют привычки закрывать за собой программы при завершении сессии, тут не установлен браузер. Имейте в виду, что если вы закрыли сессию, не закрыв Vivado и там остались несохраненные файлы, то вы рискуете потерять свои изменения.
|
||||
|
||||
## Правила работы на сервере
|
||||
Есть некоторые правила, которых необходимо придерживаться:
|
||||
* Не хулиганить на сервере, не распаковывать zip-бомбы, не забивать преднамеренно всю оперативную память, не майнить, не выполнять любые противоправные действия и действия, которые нельзя назвать "работой на сервере". За нарушение перманентный бан без возможности восстановления доступа.
|
||||
* Если вы очень долго не пользуетесь удаленным рабочим столом, закрывайте открытые программы и окна. Ресурсы сервера ограничены и одни на всех, уважайте своих коллег.
|
||||
* Нельзя передавать другим данные своей учетной записи.
|
||||
* Всегда сохраняйте все файлы после работы. Мы не гарантируем того, что сервер не будет перезагружен с потерей несохраненных данных в редакторах кода.
|
||||
* В конце семестра учетные записи и все данные удаляются для всех групп, поэтому не забывайте сохранить данные "на память".
|
||||
|
||||
|
||||
## Разные учётные записи
|
||||
|
||||
На этом месте необходимо разобраться, какие существуют учетные записи и для чего они предназначены:
|
||||
1. При поступлении в МИЭТ, каждому студенту выдаётся учетная запись, с помощью которой он может пользоваться внутренними сервисами ВУЗа. Например, вы используете эту учетную запись, чтобы войти в ОРИОКС. Эту учетную запись мы будем называть **"Учётной записью МИЭТ"**. В этом документе мы используем данную учетную запись только для подключения к VPN МИЭТ.
|
||||
2. Для прохождения курса АПС каждому студенту создаётся учетная запись на сервере и преподавателем вам выдаются её данные: логин/пароль. Эту учетную запись мы называем **"Учетной записью сервера АПС"**. Её мы используем для подключения к серверу через программы x2go и WinSCP.
|
||||
|
||||
## VPN МИЭТ
|
||||
|
||||
Подключение к серверу осуществляется из миэтовской сети. Это значит, что для подключения нужно либо подключиться к общажной сети (которая является частью миэтовской), либо воспользоваться [миэтовским VPN](https://vpn.miet.ru/).
|
||||
|
||||
Существует несколько важных замечаний касательно VPN МИЭТ:
|
||||
* Для подключения к VPN МИЭТ необходимо использовать данные **учётной записи МИЭТ**.
|
||||
* Одновременно к VPN с одной учетной записи может быть подключено только одно устройство. Из-за этого могут возникать забавные ситуации, когда дома вышел из сна компьютер и пытается подключиться к VPN, из-за чего постоянно рвется VPN-соединение вашего ноутбука на лабораторной.
|
||||
* Чтобы подключиться к VPN, вам обязательно надо хотя-бы один раз поменять пароль учетной записи МИЭТ со стандартного (дата вашего дня рождения) на свой. Большинство людей делают это на первом курсе и забывают на всю оставшуюся жизнь.
|
||||
* Авторы курса и преподаватели не поддерживают и не отвечают за работоспособность VPN. Если у вас не работает VPN, и вы уверены в том, что всё делаете правильно, то стоит обращаться к администраторам VPN в аудиторию 4100.
|
||||
|
||||
## Порядок подключения к серверу
|
||||
|
||||
За каждым студентом закреплена учетная запись на сервере и выданы её логин/пароль.
|
||||
|
||||
Подключение осуществляется из миэтовской сети. Это значит, что для подключения нужно либо подключиться к общажной сети (которая является частью миэтовской), либо воспользоваться [миэтовским vpn](https://vpn.miet.ru/).
|
||||
|
||||
Для подключения, необходимо скачать и установить программу [`X2Go client`](http://code.x2go.org/releases/X2GoClient_latest_mswin32-setup.exe). Во время установки можно оставить все опции без изменений.
|
||||
|
||||
При первом запуске, появится окно настройки подключения (если окно не появилось, нажмите `Ctrl+N`). Вам необходимо заполнить поля:
|
||||
При первом запуске, появится окно настройки подключения (если окно не появилось, нажмите `Ctrl+N` или выберите в меню `Session -> New Session`). Вам необходимо заполнить поля:
|
||||
|
||||
- Хост (вводим `82.179.178.13`)
|
||||
- Пользователь (ввводим логин с листочка)
|
||||
- Пользователь (вводим логин **учетной записи сервера АПС**, который вам выдал преподаватель)
|
||||
- SSH порт (вводим `2222`)
|
||||
- Тип сессии (выбираем `XFCE`)
|
||||
|
||||
@@ -26,7 +47,18 @@
|
||||
|
||||
</details>
|
||||
|
||||
После создания сессии, она отобразится в правой части программы. Двойной клик по сессии создаст подключение, в процессе которого от вас потребуется ввести пароль от выданной вам учетной записи.
|
||||
После создания сессии, она отобразится в правой части программы. Двойной клик по сессии создаст подключение, в процессе которого от вас потребуется ввести пароль от выданной вам **учетной записи сервера АПС**. После небольшого ожидания, откроется окно с удаленным рабочим столом.
|
||||
|
||||
Можно менять размер окна, размер рабочего стола подстроится автоматически. Также работает копи-паст текста между компьютером и удаленным рабочим столом.
|
||||
|
||||
В случае возникновения проблем с удаленным рабочим столом, рекомендуется первым делом попробовать перезапустить сессию на сервере нажатием кнопки «Terminate».
|
||||
|
||||
<details>
|
||||
<summary>Где найти кнопку Terminate</summary>
|
||||
|
||||

|
||||
|
||||
</details>
|
||||
|
||||
## Как работать на сервере
|
||||
|
||||
|
Reference in New Issue
Block a user