vhdl中的conv_整数
这个看起来对吗vhdl中的conv_整数,vhdl,Vhdl,这个看起来对吗 Lookup_表(conv_整数(128位))--位置为标准逻辑向量(7到0) 函数conv_integer的参考页没有说明是否可以在括号之间使用两个参数,如上所述。但是,如果参数是整数,则返回整数。有什么想法吗?您正在寻找to_integer方法 通过使用以下代码行之一将位置转换为整数,可以对位置执行整数数学运算: 到_整数(无符号(位置))或到_整数(有符号(位置))取决于它是有符号还是无符号8位向量 然后可以执行查找表(128到整数(无符号(位置)) 在从低阶(更少位)逻辑
Lookup_表(conv_整数(128位))代码>--位置为标准逻辑向量(7到0)
函数
conv_integer
的参考页没有说明是否可以在括号之间使用两个参数,如上所述。但是,如果参数是整数,则返回整数。有什么想法吗?您正在寻找to_integer
方法
通过使用以下代码行之一将位置转换为整数,可以对位置执行整数数学运算:
到_整数(无符号(位置))
或到_整数(有符号(位置))
取决于它是有符号还是无符号8位向量
然后可以执行查找表(128到整数(无符号(位置))
在从低阶(更少位)逻辑向量转换为整数之前,您应该始终执行特定的有符号
/无符号
转换。另外,如果你在做int
math,最好在做算术之前先转换成整数
否则,VHDL就像任何常规编程语言一样,它会在将方法的参数放入方法之前对其进行求值,因此在参数内执行操作是完全正确的。对于VHDL,我通常使用2选1方法在std_逻辑_向量和整数之间进行转换
results您试图转换为整数astd\u逻辑向量(127向下到0)
?我对这个问题的理解正确吗?128是一个整数,“位置”是位长为8位的std_逻辑_向量。我试图从128中减去“position”的整数值,并使用整数结果对数组LUT中的数据进行索引。即使类型是std_logic_vector而不是unsigned,您是否应该指定“unsigned”?我现在的方式在数学上会出什么问题?它编译得很好。它要么是“有符号”逻辑向量,要么是“无符号”逻辑向量。例如,如果您的std逻辑向量的常数为x“FF”,那么应该是-1还是127?
result<=std_logic_vector(to_unsigned(128-x,bit_length); -- For unsigned
result<=std_logic_vector(to_signed(128-x,bit_length); -- For signed