首页 > 解决方案 > 为什么 vhdl 不能识别这个端口?

问题描述

我是 VHDL 新手,我试图让这个计数器与 D 触发器组件一起工作,但我不断收到错误“错误(10482):lab8.vhd(16)处的 VHDL 错误:使用了对象“qn”但是未声明”,无论我尝试做什么。

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
ENTITY counter IS 
PORT(clk:IN STD_LOGIC;c0,c1:OUT STD_LOGIC);
END counter;

ARCHITECTURE func of counter IS

COMPONENT dFlipFlop IS
port(D,dflipclock:IN STD_LOGIC;q,qn:OUT STD_LOGIC);
END COMPONENT dFlipFlop;

BEGIN

G1:dFlipFlop
PORT MAP(D=>qn,dflipclock=>clk,q=>c0);

G2:dFlipFlop
PORT MAP(D=>qn,c0=>dflipclock,q=>c1);

END func;

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;

ENTITY dFlipFlop IS
port(D,dflipclock:IN STD_LOGIC;q,qn:OUT STD_LOGIC);
END dFlipFlop;

ARCHITECTURE flipper OF dFlipFlop IS
SIGNAL currentState:STD_LOGIC:='0';--not sure what STD_LOGIC initial value is so im setting it to zero here
BEGIN
PROCESS(dflipclock)
BEGIN
IF(dflipclock'EVENT AND dflipclock ='1') THEN --positive edge triggered
currentState<=D;
END IF;
END PROCESS;
q<=currentState;
qn<=not currentState;
END flipper;

我觉得我犯了某种愚蠢的新手错误,但我已经盯着这个东西看了好几个小时了,我一辈子都想不出哪里错了。

标签: vhdl

解决方案


推荐阅读