VHDL中输入向量的实际长度

VHDL中输入向量的实际长度,vhdl,Vhdl,我正在运行一个用VHDL编写的HDL代码,我有一个最大长度为512位的输入向量。我的一些输入小于最大大小。所以我想知道是否有一种方法可以找到每个输入的实际长度,以便在输入向量的最高有效位切割不需要的零。有没有任何可能的方法来做这种事情?我想您正在寻找一种明确的数据填充方法。我建议您采用ISO/IEC 9797-1填充方法2,如下所示: 对于每个输入数据(即使它已经有512位),您添加一个前导“1”位。然后添加前导“0”位(可能没有)以填充向量 要实现此方案,您必须将输入向量放大到513位(因为您

我正在运行一个用VHDL编写的HDL代码,我有一个最大长度为512位的输入向量。我的一些输入小于最大大小。所以我想知道是否有一种方法可以找到每个输入的实际长度,以便在输入向量的最高有效位切割不需要的零。有没有任何可能的方法来做这种事情?

我想您正在寻找一种明确的数据填充方法。我建议您采用ISO/IEC 9797-1填充方法2,如下所示:

对于每个输入数据(即使它已经有512位),您添加一个前导“1”位。然后添加前导“0”位(可能没有)以填充向量

要实现此方案,您必须将输入向量放大到513位(因为您必须始终添加至少一位)

要删除填充,只需遍历从MSB开始的向量并找到第一个“1”位,它标志着apdding模式的结束

示例(对于8+1位):

输入:10101

填充:0001 10101

输入:00000000


padded:100000000

您能给出一些输入示例和预期输出吗。此外,请张贴所需的信号/变量去极化。此外,请显示您尝试去极化的代码,这样答案可以满足您的具体要求,因为选项空间非常宽。长度可以确定,知道它是上升还是下降范围。一个非合成合格的函数是easy-
函数getlen(inp:bit_vector)返回整数是别名输入:bit_vector(inp'length-1到0)是inp;如果输入(i)/=“0”,则开始输入范围循环中的i,然后返回输入(i向下至0)长度;如果结束;端环;返回0;末端功能描述用于合成的512位优先级编码器,以及利用它的硬件稍微复杂一点。你能再具体一点吗?