通用多路复用器警告

时间:2016-01-24 17:00:14

标签: vhdl fpga

我在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();
}

1 个答案:

答案 0 :(得分:1)

如果到目前为止还没有完成,请更新到最新的ISE版本14.7。然后为Spartan-3E FPGA启用新的解析器:

  • 右键单击Synthesize - &gt;流程属性。
  • 将属性显示级别更改为&#34;高级&#34;。
  • 对于属性&#34;其他XST命令行选项&#34;输入-use_new_parser yes

现在警告消失了。只是注意到新的解析器不是默认的,它会出现一个新的警告。但是,我还没有遇到过这个问题。

顺便说一下,您的多路复用器描述效率还不高。请看my other post,了解不同的实现及其对资源使用和时序分析的影响。