VHDL-分层块<;FF>;在块中未连接<;解复用>;。它将从设计中删除

VHDL-分层块<;FF>;在块中未连接<;解复用>;。它将从设计中删除,vhdl,Vhdl,注:图中应连接D和右U 大家好,我很难在图片上创建一个回路。这个想法是有一个旋转结,每次向右旋转,一些计数器都会增加,每次向左旋转,计数器都会减少。当达到某个值时,我希望一些LED发光。其工作原理如下:如果先激活左信号,则为向右旋转,否则为向左旋转。但是经过过滤后,逻辑与代码中的逻辑相同。如果存在上升沿(如果D触发器上的Q和D不同),且D为“1”,但同时另一个信号为“1”,则表示向右旋转,否则表示向左旋转 我使用的是斯巴达3AN入门套件FPGA。我在两个独立的实体中描述了过滤器和DFF,并在我的

注:图中应连接D和右U

大家好,我很难在图片上创建一个回路。这个想法是有一个旋转结,每次向右旋转,一些计数器都会增加,每次向左旋转,计数器都会减少。当达到某个值时,我希望一些LED发光。其工作原理如下:如果先激活左信号,则为向右旋转,否则为向左旋转。但是经过过滤后,逻辑与代码中的逻辑相同。如果存在上升沿(如果D触发器上的Q和D不同),且D为“1”,但同时另一个信号为“1”,则表示向右旋转,否则表示向左旋转

我使用的是斯巴达3AN入门套件FPGA。我在两个独立的实体中描述了过滤器和DFF,并在我的主项目中将它们作为组件使用,但警告不断发出信号,表明无论我做什么,它们都保持不连接,即使它成功地合成了。我想知道这是为什么

以下是电路图、我的VHDL代码和警告:

这是主要项目:

--Main project
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use WORK.all;

entity Demux is


    port ( led : OUT std_logic_vector(7 downto 0);
            turn_right, turn_left,clk: IN std_logic);

        subtype smallint is integer range 0 to 80;

end Demux;

architecture Behavioral of Demux is

component dff
port (set,reset,D,clk: IN std_logic;    
        Q: OUT std_logic);
end component;

component filter
port (clk,turn_right,turn_left: in std_logic;
        filtered_right, filtered_left: out std_logic);
end component;

signal counter: smallint:=0;
signal Q: std_logic;
signal filtered_right: std_logic :='0'; 
signal filtered_left: std_logic := '0';
signal set: std_logic;
signal reset: std_logic;
begin

    set <= '0';
    reset <='0';

    FF: dff port map (
            set=>set,
            reset=>reset,
            D=>filtered_right,
            clk=>clk,
            Q=>Q);

    filt: filter port map (
            turn_right=>turn_right,
            turn_left=>turn_left,
            filtered_right=>filtered_right,
            filtered_left=>filtered_left,
            clk=>clk);

    compare: process (clk,Q) is
    begin
        if ((clk'event) and (clk='1')) then
            if ((filtered_right /= Q) and (filtered_right='1')) then
                    if (filtered_left = '1') then
                        counter <= counter + 1;
                    elsif (filtered_left = '0') then
                        counter <= counter - 1;
                    end if;
            end if;

            if (counter>80) or (counter<0) then
                counter <=0;
            end if;
        end if;
    end process compare;

        led(0) <= '1' when counter = 10;
        led(1) <= '1' when counter = 20;
        led(2) <= '1' when counter = 30;
        led(3) <= '1' when counter = 40;
        led(4) <= '1' when counter = 50;
        led(5) <= '1' when counter = 60;
        led(6) <= '1' when counter = 70;
        led(7) <= '1' when counter = 80;

end Behavioral;
——主项目
图书馆IEEE;
使用IEEE.STD_LOGIC_1164.ALL;
使用WORK.all;
实体Demux是
端口(led:输出标准逻辑向量(7到0);
右转、左转、时钟:在标准逻辑中);
子类型smallint是0到80之间的整数;
终端解复用;
Demux的架构是
组件dff
端口(设置、复位、D、时钟:在标准逻辑中;
Q:输出标准(U逻辑);
端部元件;
组件过滤器
端口(时钟、右转、左转:在标准逻辑中;
过滤的\右,过滤的\左:输出标准\逻辑);
端部元件;
信号计数器:smallint:=0;
信号Q:std_逻辑;
信号过滤右:标准逻辑:='0';
信号过滤_左:标准_逻辑:='0';
信号集:标准逻辑;
信号复位:标准逻辑;
开始
设置重置,
D=>对,
时钟=>clk,
Q=>Q);
过滤器:过滤器端口映射(
右转=>右转,
左转=>左转,
filtered_right=>filtered_right,
filtered_left=>filtered_left,
clk=>clk);
比较:过程(clk,Q)为
开始
如果((clk'事件)和(clk='1')),则
如果((filtered_right/=Q)和(filtered_right='1')),则
如果(过滤左='1'),则
计数器已过滤的\u right\u temp:=已过滤的\u right\u temp;
过滤后的左温度:=过滤后的左温度;
终例;

右尝试在Demux.vhd中添加一些
else
子句到
when
子句

led(0) <= '1' when counter = 10 else '0';
led(1) <= '1' when counter = 20 else '0';
led(2) <= '1' when counter = 30 else '0';
led(3) <= '1' when counter = 40 else '0';
led(4) <= '1' when counter = 50 else '0';
led(5) <= '1' when counter = 60 else '0';
led(6) <= '1' when counter = 70 else '0';
led(7) <= '1' when counter = 80 else '0';  

led(0)尝试在Demux.vhd中添加一些
else
子句到
when
子句

led(0) <= '1' when counter = 10 else '0';
led(1) <= '1' when counter = 20 else '0';
led(2) <= '1' when counter = 30 else '0';
led(3) <= '1' when counter = 40 else '0';
led(4) <= '1' when counter = 50 else '0';
led(5) <= '1' when counter = 60 else '0';
led(6) <= '1' when counter = 70 else '0';
led(7) <= '1' when counter = 80 else '0';  
led(0)
WARNING:Xst:1290 - Hierarchical block <FF> is unconnected in block <Demux>.
   It will be removed from the design.
WARNING:Xst:1290 - Hierarchical block <filt> is unconnected in block <Demux>.
   It will be removed from the design.
WARNING:Xst:2677 - Node <FF/Q> of sequential type is unconnected in block <Demux>.
WARNING:Xst:2677 - Node <filt/filtered_right_temp> of sequential type is unconnected in block <Demux>.
WARNING:Xst:2677 - Node <filt/filtered_left_temp> of sequential type is unconnected in block <Demux>.
led(0) <= '1' when counter = 10 else '0';
led(1) <= '1' when counter = 20 else '0';
led(2) <= '1' when counter = 30 else '0';
led(3) <= '1' when counter = 40 else '0';
led(4) <= '1' when counter = 50 else '0';
led(5) <= '1' when counter = 60 else '0';
led(6) <= '1' when counter = 70 else '0';
led(7) <= '1' when counter = 80 else '0';