这是卷积编码器的顶级模块的实体。我想在input_tlast ='1'时对input_tdata进行零填充。问题是input_tlast仅在1个时钟周期内很高,但我想在尽可能多的时钟周期中添加(k-1)个零,其中k = 7。任何帮助?
entity conv_encoder is
Port (
clk : in STD_LOGIC;
rst : in STD_LOGIC;
input_tvalid : in STD_LOGIC;
input_tdata : in STD_LOGIC; -- Input data to be encoded
input_tlast : in STD_LOGIC; --Indicates End of Packet
output_tvalid : out STD_LOGIC;
y_out_1 : out STD_LOGIC;
y_out_2 : out STD_LOGIC;
output_tdata : out STD_LOGIC_VECTOR (1 downto 0)
);
end conv_encoder;
答案 0 :(得分:0)
一般情况下,您必须构建一个具有足够深度的FIFO。写入侧将连接到输入,读取侧将连接到输出。当input_tlast被置位时,您暂停从FIFO读取并使用倒计时将零插入输出。
这取决于要求的细节是否可以简化这一点。例如,如果在"数据包结束后"输入数据可以丢弃,那么你真的不需要FIFO。