Skip to content

add new lab "04_10_11_distributor"#25

Open
32FedorovAlexey wants to merge 2 commits into
yuri-panchul:mainfrom
32FedorovAlexey:04_10_11_distributor
Open

add new lab "04_10_11_distributor"#25
32FedorovAlexey wants to merge 2 commits into
yuri-panchul:mainfrom
32FedorovAlexey:04_10_11_distributor

Conversation

@32FedorovAlexey

Copy link
Copy Markdown

Вариант псевдо конвейера, вычисления выполняются на N блоках с латентностью N.

logic [LATENCY-1:0] ptr_in; // one-hot registre
logic [$clog2(LATENCY-1):0] n_out; // регистр хранения номера вычислителя с валидным результатом
logic [LATENCY-1 :0] delay_vld; // сдвиговый регистр для сигнала vld
logic [FLEN - 1:0] res_0, res_1, res_2, res_3, res_4, res_5, res_6, res_7, res_8, res_9;

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

А зачем эти переменные? Они же не используются

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Переменные забыл удалить, я их использовал в промежуточном варианте.

// первый выбор входов вычислителя идет через функцию "И" сигнала arg_vld и n-ного разряда one_hot
// регистра-селектора. При активном arg_vld, в каждом такте регистр-селектор сдвигается на 1 разряд
// выходы вычислителей через мультиплексор подключены к выходу модуля. При наличии сигнала res_vld
// каждый такт инкрементирует регистр-селектор выходов n_out. Сигнал res_vld формируется из входного

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Так как по условию задачи латентность модуля фиксирована, и при этом есть вывод res_vld, который тем самым находится в фиксированном отношении с arg_vld, то нам не нужно протаскивать arg_vld, не так ли? Достаточно использовать res_vld_o[n_out]?

Завтра посмотрю внимательнее

@32FedorovAlexey 32FedorovAlexey Jan 7, 2025

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Вы правы, можно легко обойтись без сдвигового регистра delay_vld. Можно еще упростить код если на выходе вычислителей использовать регистры с Z состоянием. Если есть на выходе корректные данные, то модуль выдает их на шину, если нет то отключается от шины. Тогда код сведется к двум строчкам, загрузить 1 в регистр-селектор, и сдвинуть его если на входе есть данные.

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Не, Z на внутренних сигналах в дизайнах не используется

@yuri-panchul

Copy link
Copy Markdown
Owner

Просьба перенести все в https://github.com/ddvca/systemverilog-homework-private в виде pull request - я это там приму и будем редактировать там

@32FedorovAlexey

Copy link
Copy Markdown
Author

Перенести данные в https://github.com/ddvca/systemverilog-homework-private не получается, git-hub дает ошибку 404, похоже нет прав.

@yuri-panchul

yuri-panchul commented Jan 7, 2025

Copy link
Copy Markdown
Owner

Перенести данные в https://github.com/ddvca/systemverilog-homework-private не получается, git-hub дает ошибку 404, похоже нет прав.

Я выслал вам приглашение , его нужно принять (вам приходило на email?), потом сделать fork приватного репозитория, потом сделать pull request к нему:
image

@32FedorovAlexey

Copy link
Copy Markdown
Author

Спасибо, увидел, сделаю завтра, у меня уже ночь.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants