add new lab "04_10_11_distributor"#25
Conversation
| 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; |
There was a problem hiding this comment.
А зачем эти переменные? Они же не используются
There was a problem hiding this comment.
Переменные забыл удалить, я их использовал в промежуточном варианте.
| // первый выбор входов вычислителя идет через функцию "И" сигнала arg_vld и n-ного разряда one_hot | ||
| // регистра-селектора. При активном arg_vld, в каждом такте регистр-селектор сдвигается на 1 разряд | ||
| // выходы вычислителей через мультиплексор подключены к выходу модуля. При наличии сигнала res_vld | ||
| // каждый такт инкрементирует регистр-селектор выходов n_out. Сигнал res_vld формируется из входного |
There was a problem hiding this comment.
Так как по условию задачи латентность модуля фиксирована, и при этом есть вывод res_vld, который тем самым находится в фиксированном отношении с arg_vld, то нам не нужно протаскивать arg_vld, не так ли? Достаточно использовать res_vld_o[n_out]?
Завтра посмотрю внимательнее
There was a problem hiding this comment.
Вы правы, можно легко обойтись без сдвигового регистра delay_vld. Можно еще упростить код если на выходе вычислителей использовать регистры с Z состоянием. Если есть на выходе корректные данные, то модуль выдает их на шину, если нет то отключается от шины. Тогда код сведется к двум строчкам, загрузить 1 в регистр-селектор, и сдвинуть его если на входе есть данные.
There was a problem hiding this comment.
Не, Z на внутренних сигналах в дизайнах не используется
|
Просьба перенести все в https://github.com/ddvca/systemverilog-homework-private в виде pull request - я это там приму и будем редактировать там |
|
Перенести данные в https://github.com/ddvca/systemverilog-homework-private не получается, git-hub дает ошибку 404, похоже нет прав. |
Я выслал вам приглашение , его нужно принять (вам приходило на email?), потом сделать fork приватного репозитория, потом сделать pull request к нему: |
|
Спасибо, увидел, сделаю завтра, у меня уже ночь. |

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