Добрый день! Если следовать примерам из лабораторной работы, выходит, что модуль вычислителя находится в сбросе во время симуляции:
В тестовом окружении в initial блоке сброса сигнал p_rst_i изначально выставляется в высокий уровень и, спустя 200 нс, в низкий.
initial
begin
p_dat_i = 'hz;
p_enable_i = 0;
p_sel_i = 0;
p_we_i = 'hz;
p_adr_i = 'hz;
p_rst_i = 1;
#200
p_rst_i = 0; // Запись #200 обозначает что смена значения сигнала сброса произойдет через 200нс.
end
В в порты подключаемого wrapper'а этот сигнал подаётся без инверсии,
wrapper_crc8
dut_wrapper_crc8
(
.p_rst_i (p_rst_i),
...
);
а в самом wrapper'е при подключении crc8 появляется инверсия.
crc8
i_crc8
(
.clk_i (p_clk_i),
.rst_i (!p_rst_i),
.din_i (din_i),
.data_valid_i (data_valid_i),
.crc_rd (crc_rd),
.crc_o (crc_o)
);
Внутри модуля CRC сброс осуществляется по высокому уровню соответствующего сигнала
always_ff @(posedge clk_i)
begin
if (rst_i) begin // Сигнал сброса - обнуляем все регистры
state_ff <= IDLE;
data_current_ff <= 8'b0;
crc_ff <= 8'b0;
crc_counter_ff <= 4'd0;
end
else begin
Вся эта цепочка сигнала p_rst_i приводит к тому, что после 200нс p_rst_i = 0, а в модуле crc8 rst_i будет равен 1 на протяжении всей последующей симуляции (как указал ранее, crc8 сбрасывается по высокому уровню).
Не стал делать pr, оставлю место корректировки сигнала на ваше усмотрение.
Добрый день! Если следовать примерам из лабораторной работы, выходит, что модуль вычислителя находится в сбросе во время симуляции:
В тестовом окружении в initial блоке сброса сигнал
p_rst_iизначально выставляется в высокий уровень и, спустя 200 нс, в низкий.В в порты подключаемого wrapper'а этот сигнал подаётся без инверсии,
wrapper_crc8 dut_wrapper_crc8 ( .p_rst_i (p_rst_i), ... );а в самом wrapper'е при подключении crc8 появляется инверсия.
crc8 i_crc8 ( .clk_i (p_clk_i), .rst_i (!p_rst_i), .din_i (din_i), .data_valid_i (data_valid_i), .crc_rd (crc_rd), .crc_o (crc_o) );Внутри модуля CRC сброс осуществляется по высокому уровню соответствующего сигнала
Вся эта цепочка сигнала
p_rst_iприводит к тому, что после 200нсp_rst_i = 0, а в модуле crc8rst_iбудет равен1на протяжении всей последующей симуляции (как указал ранее, crc8 сбрасывается по высокому уровню).Не стал делать pr, оставлю место корректировки сигнала на ваше усмотрение.