本人初学VHDL,本程序在MAX+plusII中运行通过,通过COMPONENT语句及其例化语句调用自制器件
实验报告要求两个程序的y的端口名应保持一直(见红字),教材上在讲COMPONENT没有提到这一点,我的程序依然通过了,不很理解(是知道是不是MAX软件自身问题)。
特别是后两个红色字体的端口名在当第一个是buffer 第二个为 out buffer均可,但第一个是OUT时第二个只能是OUT,why?
请高手讲解
程序如下:
----------fpq.vhd------------------
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY fpq IS
PORT(clk:IN STD_LOGIC;
y:BUFFER STD_LOGIC);
END fpq;
ARCHITECTURE a OF fpq IS
BEGIN
p: PROCESS(clk)
BEGIN
IF(clk'EVENT AND clk='1') THEN
y<=NOT y;
END IF;
END PROCESS;
END a;
---------------call_fpq.vhd-----------
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY call_fpq IS
PORT(clk:IN STD_LOGIC;
y:OUT STD_LOGIC);
END;
ARCHITECTURE a OF call_fpq IS
COMPONENT fpq IS
PORT(clk:IN STD_LOGIC;
y:OUT STD_LOGIC);
END COMPONENT;
BEGIN
u1:fpq PORT MAP(clk,y);
END;