我在VHDL中创建了一个通用多路复用器(在输入数和每个输入的位数上)。我测试了它,它工作正常,但我得到一个宽度不匹配警告: 宽度不匹配。 <输出>宽度为8位,但赋值表达式为64位宽。 这是我的通用MUX的代码。谁能解释我为什么会收到这个警告?我的代码有什么问题?我的教授希望我在不使用过程的情况下实现这一点。感谢
library IEEE;
use IEEE.STD_LOGIC_1164.all;
package package_log is
function log2ceil( n : natural) return natural;
end package_log;
package body package_log is
function log2ceil (N : natural) return natural is
variable i, j : natural;
begin
i := 0;
j := 1;
while (j < N) loop
i := i+1;
j := 2*j;
end loop;
return i;
end function log2ceil;
end package_log;
函数log2ceil以这种方式定义:
function findCountryname($countryID){
include 'connect.php';
$stmt = $conn->prepare("SELECT * FROM countries WHERE id=? and
pic!='NULL'");
$stmt->bind_param("i", $countryID);
$stmt->execute();
}
答案 0 :(得分:1)
如果到目前为止还没有完成,请更新到最新的ISE版本14.7。然后为Spartan-3E FPGA启用新的解析器:
-use_new_parser yes
。现在警告消失了。只是注意到新的解析器不是默认的,它会出现一个新的警告。但是,我还没有遇到过这个问题。
顺便说一下,您的多路复用器描述效率还不高。请看my other post,了解不同的实现及其对资源使用和时序分析的影响。