与信号微调相关的映射误差 [英] Mapping Error related to trimming of signals

查看:35
本文介绍了与信号微调相关的映射误差的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我解决了之前的错误,但系统不允许我创建一个新问题,这就是我编辑当前问题的原因.现在我在地图中遇到这样的错误:

I resolved the previous error but system is not allowing me to create a new question that's why i am editing the current one. Now i am getting an error in map like this:

ERROR:MapLib:979 - LUT6 符号Mmux_ac97_sdata_out22"(输出信号=Mmux_ac97_sdata_out21) 有输入信号Madd_frame_count_lut<1>"这将被修剪.有关详细信息,请参阅地图报告文件的第 5 部分为什么输入信号将变为未驱动.错误:MapLib:979 - LUT6 符号Mmux_ac97_sdata_out22"(输出信号=Mmux_ac97_sdata_out21) 有输入信号Madd_frame_count_lut<3>"这将被修剪.有关详细信息,请参阅地图报告文件的第 5 部分为什么输入信号将变为未驱动.错误:MapLib:979 - LUT6 符号Mmux_ac97_sdata_out22"(输出信号=Mmux_ac97_sdata_out21) 有输入信号Madd_frame_count_lut<2>"这将被修剪.有关详细信息,请参阅地图报告文件的第 5 部分为什么输入信号将变为未驱动.错误:MapLib:979 - LUT6 符号Mmux_ac97_sdata_out23"(输出signal=Mmux_ac97_sdata_out22) 有输入信号Madd_frame_count_cy<0>"将被修剪.有关原因的详细信息,请参阅地图报告文件的第 5 部分输入信号将变为未驱动.错误:MapLib:979 - LUT6 符号Mmux_ac97_sdata_out25"(输出信号=Mmux_ac97_sdata_out24) 有输入信号Madd_frame_count_lut<1>"这将被修剪.有关详细信息,请参阅地图报告文件的第 5 部分为什么输入信号将变为未驱动.错误:MapLib:979 - LUT6 符号Mmux_ac97_sdata_out25"(输出信号=Mmux_ac97_sdata_out24) 有输入信号Madd_frame_count_lut<2>"这将被修剪.有关详细信息,请参阅地图报告文件的第 5 部分为什么输入信号将变为未驱动.错误:MapLib:979 - LUT6 符号Mmux_ac97_sdata_out25"(输出信号=Mmux_ac97_sdata_out24) 有输入信号Madd_frame_count_lut<3>"这将被修剪.有关详细信息,请参阅地图报告文件的第 5 部分为什么输入信号将变为未驱动.错误:MapLib:979 - LUT6 符号Mmux_ac97_sdata_out25"(输出信号=Mmux_ac97_sdata_out24) 有输入信号Madd_frame_count_cy<0>"将被修剪.有关原因的详细信息,请参阅地图报告文件的第 5 部分输入信号将变为未驱动.ERROR:MapLib:979 - LUT5 符号Mmux_ac97_sdata_out29_F"(输出信号=N8)有将被修剪的输入信号Mmux_ac97_sdata_out25".见第 5 节地图报告文件详细了解为什么输入信号会变成未驱动.ERROR:MapLib:979 - LUT4 符号Mmux_ac97_sdata_out29_G"(输出信号=N9)有将被修整的输入信号Madd_frame_count_cy<0>".见第 5 节地图报告文件详细了解为什么输入信号会变成未驱动.ERROR:MapLib:979 - LUT4 符号Mmux_ac97_sdata_out29_G"(输出信号=N9)有将被修剪的输入信号Mmux_ac97_sdata_out25".见第 5 节地图报告文件详细了解为什么输入信号会变成未驱动.错误:MapLib:978 - LUT6 符号Mmux_ac97_sdata_out22"(输出信号=Mmux_ac97_sdata_out21) 有一个使用输入引脚 I0 的方程,它不再有连接信号.请确保使用的所有引脚此 LUT 的等式具有未修整的信号(请参阅第 5 节映射报告文件以获取有关修剪信号的详细信息).错误:MapLib:978 - LUT6 符号Mmux_ac97_sdata_out22"(输出信号=Mmux_ac97_sdata_out21) 有一个使用输入引脚 I1 的方程,它不再有连接信号.请确保使用的所有引脚此 LUT 的等式具有未修整的信号(请参阅第 5 节映射报告文件以获取有关修剪信号的详细信息).错误:MapLib:978 - LUT6 符号Mmux_ac97_sdata_out22"(输出信号=Mmux_ac97_sdata_out21) 有一个使用输入引脚 I2 的方程,它不再有连接信号.请确保使用的所有引脚此 LUT 的等式具有未修整的信号(请参阅第 5 节映射报告文件以获取有关修剪信号的详细信息).错误:MapLib:978 - LUT6 符号Mmux_ac97_sdata_out23"(输出信号=Mmux_ac97_sdata_out22) 有一个使用输入引脚 I1 的方程,它不再有连接信号.请确保使用的所有引脚此 LUT 的等式具有未修整的信号(请参阅第 5 节映射报告文件以获取有关修剪信号的详细信息).错误:MapLib:978 - LUT6 符号Mmux_ac97_sdata_out25"(输出信号=Mmux_ac97_sdata_out24) 有一个使用输入引脚 I1 的方程,它不再有连接信号.请确保使用的所有引脚此 LUT 的等式具有未修整的信号(请参阅第 5 节映射报告文件以获取有关修剪信号的详细信息).错误:MapLib:978 - LUT6 符号Mmux_ac97_sdata_out25"(输出信号=Mmux_ac97_sdata_out24) 有一个使用输入引脚 I3 的方程,它不再有连接信号.请确保使用的所有引脚此 LUT 的等式具有未修整的信号(请参阅第 5 节映射报告文件以获取有关修剪信号的详细信息).错误:MapLib:978 - LUT6 符号Mmux_ac97_sdata_out25"(输出信号=Mmux_ac97_sdata_out24) 有一个使用输入引脚 I4 的方程,它不再有连接信号.请确保使用的所有引脚此 LUT 的等式具有未修整的信号(请参阅第 5 节映射报告文件以获取有关修剪信号的详细信息).错误:MapLib:978 - LUT6 符号Mmux_ac97_sdata_out25"(输出signal=Mmux_ac97_sdata_out24) 有一个使用输入引脚 I5 的方程,它不再有连接信号.请确保使用的所有引脚此 LUT 的等式具有未修整的信号(请参阅第 5 节映射报告文件以获取有关修剪信号的详细信息).ERROR:MapLib:978 - LUT5 符号Mmux_ac97_sdata_out29_F"(输出信号=N8)有使用输入引脚 I3 的等式,该引脚不再具有连接的信号.请确保此 LUT 等式中使用的所有引脚都具有未修剪的信号(请参阅地图报告文件的第 5 部分以了解有关修剪信号的详细信息).ERROR:MapLib:978 - LUT4 符号Mmux_ac97_sdata_out29_G"(输出信号=N9)有使用输入引脚 I0 的等式,该引脚不再具有连接信号.请确保此 LUT 等式中使用的所有引脚都具有未修剪的信号(请参阅地图报告文件的第 5 部分以了解有关修剪信号的详细信息).ERROR:MapLib:978 - LUT4 符号Mmux_ac97_sdata_out29_G"(输出信号=N9)有使用输入引脚 I3 的等式,该引脚不再具有连接的信号.请确保此 LUT 等式中使用的所有引脚都具有未修剪的信号(请参阅地图报告文件的第 5 部分以了解有关修剪哪些信号的详细信息).

ERROR:MapLib:979 - LUT6 symbol "Mmux_ac97_sdata_out22" (output signal=Mmux_ac97_sdata_out21) has input signal "Madd_frame_count_lut<1>" which will be trimmed. See Section 5 of the Map Report File for details about why the input signal will become undriven. ERROR:MapLib:979 - LUT6 symbol "Mmux_ac97_sdata_out22" (output signal=Mmux_ac97_sdata_out21) has input signal "Madd_frame_count_lut<3>" which will be trimmed. See Section 5 of the Map Report File for details about why the input signal will become undriven. ERROR:MapLib:979 - LUT6 symbol "Mmux_ac97_sdata_out22" (output signal=Mmux_ac97_sdata_out21) has input signal "Madd_frame_count_lut<2>" which will be trimmed. See Section 5 of the Map Report File for details about why the input signal will become undriven. ERROR:MapLib:979 - LUT6 symbol "Mmux_ac97_sdata_out23" (output signal=Mmux_ac97_sdata_out22) has input signal "Madd_frame_count_cy<0>" which will be trimmed. See Section 5 of the Map Report File for details about why the input signal will become undriven. ERROR:MapLib:979 - LUT6 symbol "Mmux_ac97_sdata_out25" (output signal=Mmux_ac97_sdata_out24) has input signal "Madd_frame_count_lut<1>" which will be trimmed. See Section 5 of the Map Report File for details about why the input signal will become undriven. ERROR:MapLib:979 - LUT6 symbol "Mmux_ac97_sdata_out25" (output signal=Mmux_ac97_sdata_out24) has input signal "Madd_frame_count_lut<2>" which will be trimmed. See Section 5 of the Map Report File for details about why the input signal will become undriven. ERROR:MapLib:979 - LUT6 symbol "Mmux_ac97_sdata_out25" (output signal=Mmux_ac97_sdata_out24) has input signal "Madd_frame_count_lut<3>" which will be trimmed. See Section 5 of the Map Report File for details about why the input signal will become undriven. ERROR:MapLib:979 - LUT6 symbol "Mmux_ac97_sdata_out25" (output signal=Mmux_ac97_sdata_out24) has input signal "Madd_frame_count_cy<0>" which will be trimmed. See Section 5 of the Map Report File for details about why the input signal will become undriven. ERROR:MapLib:979 - LUT5 symbol "Mmux_ac97_sdata_out29_F" (output signal=N8) has input signal "Mmux_ac97_sdata_out25" which will be trimmed. See Section 5 of the Map Report File for details about why the input signal will become undriven. ERROR:MapLib:979 - LUT4 symbol "Mmux_ac97_sdata_out29_G" (output signal=N9) has input signal "Madd_frame_count_cy<0>" which will be trimmed. See Section 5 of the Map Report File for details about why the input signal will become undriven. ERROR:MapLib:979 - LUT4 symbol "Mmux_ac97_sdata_out29_G" (output signal=N9) has input signal "Mmux_ac97_sdata_out25" which will be trimmed. See Section 5 of the Map Report File for details about why the input signal will become undriven. ERROR:MapLib:978 - LUT6 symbol "Mmux_ac97_sdata_out22" (output signal=Mmux_ac97_sdata_out21) has an equation that uses input pin I0, which no longer has a connected signal. Please ensure that all the pins used in the equation for this LUT have signals that are not trimmed (see Section 5 of the Map Report File for details on which signals were trimmed). ERROR:MapLib:978 - LUT6 symbol "Mmux_ac97_sdata_out22" (output signal=Mmux_ac97_sdata_out21) has an equation that uses input pin I1, which no longer has a connected signal. Please ensure that all the pins used in the equation for this LUT have signals that are not trimmed (see Section 5 of the Map Report File for details on which signals were trimmed). ERROR:MapLib:978 - LUT6 symbol "Mmux_ac97_sdata_out22" (output signal=Mmux_ac97_sdata_out21) has an equation that uses input pin I2, which no longer has a connected signal. Please ensure that all the pins used in the equation for this LUT have signals that are not trimmed (see Section 5 of the Map Report File for details on which signals were trimmed). ERROR:MapLib:978 - LUT6 symbol "Mmux_ac97_sdata_out23" (output signal=Mmux_ac97_sdata_out22) has an equation that uses input pin I1, which no longer has a connected signal. Please ensure that all the pins used in the equation for this LUT have signals that are not trimmed (see Section 5 of the Map Report File for details on which signals were trimmed). ERROR:MapLib:978 - LUT6 symbol "Mmux_ac97_sdata_out25" (output signal=Mmux_ac97_sdata_out24) has an equation that uses input pin I1, which no longer has a connected signal. Please ensure that all the pins used in the equation for this LUT have signals that are not trimmed (see Section 5 of the Map Report File for details on which signals were trimmed). ERROR:MapLib:978 - LUT6 symbol "Mmux_ac97_sdata_out25" (output signal=Mmux_ac97_sdata_out24) has an equation that uses input pin I3, which no longer has a connected signal. Please ensure that all the pins used in the equation for this LUT have signals that are not trimmed (see Section 5 of the Map Report File for details on which signals were trimmed). ERROR:MapLib:978 - LUT6 symbol "Mmux_ac97_sdata_out25" (output signal=Mmux_ac97_sdata_out24) has an equation that uses input pin I4, which no longer has a connected signal. Please ensure that all the pins used in the equation for this LUT have signals that are not trimmed (see Section 5 of the Map Report File for details on which signals were trimmed). ERROR:MapLib:978 - LUT6 symbol "Mmux_ac97_sdata_out25" (output signal=Mmux_ac97_sdata_out24) has an equation that uses input pin I5, which no longer has a connected signal. Please ensure that all the pins used in the equation for this LUT have signals that are not trimmed (see Section 5 of the Map Report File for details on which signals were trimmed). ERROR:MapLib:978 - LUT5 symbol "Mmux_ac97_sdata_out29_F" (output signal=N8) has an equation that uses input pin I3, which no longer has a connected signal. Please ensure that all the pins used in the equation for this LUT have signals that are not trimmed (see Section 5 of the Map Report File for details on which signals were trimmed). ERROR:MapLib:978 - LUT4 symbol "Mmux_ac97_sdata_out29_G" (output signal=N9) has an equation that uses input pin I0, which no longer has a connected signal. Please ensure that all the pins used in the equation for this LUT have signals that are not trimmed (see Section 5 of the Map Report File for details on which signals were trimmed). ERROR:MapLib:978 - LUT4 symbol "Mmux_ac97_sdata_out29_G" (output signal=N9) has an equation that uses input pin I3, which no longer has a connected signal. Please ensure that all the pins used in the equation for this LUT have signals that are not trimmed (see Section 5 of the Map Report File for details on which signals were trimmed).

VHDL 中的完整代码是:

Full code in VHDL is:

  ----------------------------------------------------------------------------------
-- Company: 
-- Engineer: 
-- 
-- Create Date:    14:35:54 02/28/2016 
-- Design Name: 
-- Module Name:    audioloopbackVHDL - Behavioral 
-- Project Name: 
-- Target Devices: 
-- Tool versions: 
-- Description: 
--
-- Dependencies: 
--
-- Revision: 
-- Revision 0.01 - File Created
-- Additional Comments: 
--
----------------------------------------------------------------------------------
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use ieee.numeric_std.all;

-- Uncomment the following library declaration if using
-- arithmetic functions with Signed or Unsigned values
--use IEEE.NUMERIC_STD.ALL;

-- Uncomment the following library declaration if instantiating
-- any Xilinx primitives in this code.
--library UNISIM;
--use UNISIM.VComponents.all;

entity audioloopbackVHDL is
port (
    clock           :in std_logic;
    ac97_sdata_out  :out std_logic;
    ac97_sdata_in   :in std_logic;
    ac97_sync       :out std_logic;
    audio_reset_b   :out std_logic;
    ac97_bit_clock  :in std_logic);
end audioloopbackVHDL;

architecture Behavioral of audioloopbackVHDL is
--attribute S: string;
--attribute S of ac97_sdata_out: signal is "TRUE";
signal abc : std_logic_vector (7 downto 0);
signal def : integer;
signal ghi : std_logic_vector (7 downto 0);
signal jkl : integer;
signal command_address : std_logic_vector(19 downto 0); 
signal command_data : std_logic_vector(19 downto 0);
signal bit_count : std_logic_vector(7 downto 0) := "00000000";
signal frame_count : std_logic_vector(3 downto 0) := "0000";
signal command : std_logic_vector(23 downto 0);
signal reset_count : std_logic_vector(7 downto 0) := "00000000";
signal count : std_logic_vector(18 downto 0);
signal enable : std_logic_vector(19 downto 0);
signal en1 : std_logic_vector(17 downto 0);

begin

process(clock)
begin
if(rising_edge(clock))then
    if(reset_count <= "11111111")then
       audio_reset_b <= '1';
    else
       reset_count <= std_logic_vector(unsigned(reset_count) + 1 );
   end if;
end if;
end process;

process(bit_count, ac97_bit_clock, command_data, command_address, frame_count)
begin
  -- Generate the sync signal
  if (bit_count <= "11111111")then
    ac97_sync     <= '1';
  end if;
  if (bit_count <= "00001111")then
    ac97_sync     <= '0';
  end if;
  if ((bit_count >= "00000000") and (bit_count <= "00001111"))then
        -- Slot 0: Tags
    case bit_count is
          when "00000000" => ac97_sdata_out <= '1';
          when "00000001" => ac97_sdata_out <= '1';
          when "00000010" => ac97_sdata_out <= '1';
          when others     => ac97_sdata_out <= '0';
    end case;

  elsif ((bit_count >= "00010000") and (bit_count <= "00100011"))then
          -- Slot 1: Command address
    abc            <= std_logic_vector(35 - unsigned(bit_count));
    def            <= to_integer(unsigned(abc));
    ac97_sdata_out <= command_address(def);


  elsif ((bit_count >= "00100100") and (bit_count <= "00110111"))then
            -- Slot 2: Command data
    ghi            <= std_logic_vector(55 - unsigned(bit_count));
    jkl            <= to_integer(unsigned(ghi));
    ac97_sdata_out <= command_data(jkl);

  else
    ac97_sdata_out <= '0';
  end if;

  if (bit_count <= "11111111")then
    frame_count <= std_logic_vector(unsigned(frame_count) + 1);
    bit_count   <= std_logic_vector(unsigned(bit_count) + 1);
  end if;
end process;

process(frame_count, command, ac97_bit_clock, count, command_address, command_data, ac97_sdata_in)
begin
     case frame_count is
       when "0000" => command <= "000000100000000000000000"; -- Unmute line outputs
       when "0001" => command <= "000001000000000000000000"; -- Unmute headphones
       when "0010" => command <= "000100000000100000001000"; -- Unmute line inputs
       when others => command <= "111111000000000000000000"; -- Read vendor ID
     end case;



   -- Separate the address and data portions of the command
   -- and pad them to 20 bits
   command_address(19 downto 12) <= command(23 downto 16);
    command_address(11 downto 0) <= "000000000000";
   command_data(19 downto 4) <= command(15 downto 0);
    command_data(3 downto 0) <= "0000";
end process;


end architecture;

我还附上了我的 ucf 代码:

I am also attaching my ucf code:

NET "clock"          LOC="V10"  | IOSTANDARD=LVCMOS33 | CLOCK_DEDICATED_ROUTE=FALSE;
#
# Audio CODEC
#

NET "audio_reset_b"  LOC="K15" | IOSTANDARD = LVCMOS33 | DRIVE = 8 | SLEW = FAST ;
NET "ac97_sdata_out" LOC="H18" | IOSTANDARD = LVCMOS33 | DRIVE = 8 | SLEW = FAST ;
NET "ac97_sdata_in"  LOC="J16" | IOSTANDARD = LVCMOS33 | DRIVE = 8 | SLEW = FAST ;
NET "ac97_sync"     LOC="K16" | IOSTANDARD = LVCMOS33 | DRIVE = 8 | SLEW = FAST ;
NET "ac97_bit_clock" LOC="J18" | IOSTANDARD = LVCMOS33 | DRIVE = 8 | SLEW = FAST  | CLOCK_DEDICATED_ROUTE=FALSE;

此外,当主程序在 Verilog 中时,这个 ucf 可以正常工作.请帮帮我

Also, this ucf worked as desired when main program was in Verilog. Please help me out

推荐答案

至少在第二个过程中,if ... end if 是不平衡的,因此缺少了一些 结束如果的.可能还有其他问题;正如皮贝尔所问;什么是第 119 行?

At least in the second process, the if ... end if ain't balanced, thus there are missing some end if's. There may be other issues also; as Peabbels asks; what is line 119 ?

尝试根据控制结构缩进代码,因为这很容易显示语法问题.使用 Emacs VHDL 美化显示如下代码:

Try to indent the code according to the control structure, since this easily shows syntax problems. Using Emacs VHDL beautify shows the code like:

process(bit_count, ac97_sync, ac97_bit_clock, ac97_sdata_out, command_data, command_address, frame_count)
begin
  -- Generate the sync signal
  if (bit_count <= "11111111")then
    ac97_sync     <= '1';
    if (bit_count <= "00001111")then
      ac97_sync                                    <= '0';
      if ((bit_count >= "00000000") and (bit_count <= "00001111"))then
        -- Slot 0: Tags
        case bit_count is
          when "00000000" => ac97_sdata_out <= '1';
          when "00000001" => ac97_sdata_out <= '1';
          when "00000010" => ac97_sdata_out <= '1';
          when others     => ac97_sdata_out <= '0';
        end case;
      else
        if ((bit_count >= "00010000") and (bit_count <= "00100011"))then
          -- Slot 1: Command address
          abc            <= std_logic_vector(35 - unsigned(bit_count));
          def            <= to_integer(unsigned(abc));
          ac97_sdata_out <= command_address(def);
        else
          if ((bit_count >= "00100100") and (bit_count <= "00110111"))then
            -- Slot 2: Command data
            ghi            <= std_logic_vector(55 - unsigned(bit_count));
            jkl            <= to_integer(unsigned(ghi));
            ac97_sdata_out <= command_data(jkl);
          else
            ac97_sdata_out <= '0';
          end if;
          if (bit_count <= "11111111")then
            frame_count <= std_logic_vector(unsigned(frame_count) + 1);
            bit_count   <= std_logic_vector(unsigned(bit_count) + 1);
          end if;
end process;

这篇关于与信号微调相关的映射误差的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆