VHDL语言:正式端口没有实际值或默认值 [英] VHDL: formal port 'portName' has no actual or default value

查看:0
本文介绍了VHDL语言:正式端口没有实际值或默认值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在实例化VHDL模块PWM的VHDL测试台上收到一个编译错误:"正式端口‘Duty_Cycle’没有实际值或缺省值"。站在"dev_to_test:pwm"代码行时出现错误。在实例化的PWM模块中,DUTY_Cycle STG_LOGIC_VECTOR被强制转换为UNSIGNED,然后被赋值为整数,但不要认为这会影响端口实例化。 我试图在端口映射中传递"00001111"向量值,但结果是相同的错误。 请帮助确定错误是什么。

architecture test of test_pwm is
component PWM
    Generic (
        BIT_DEPTH   : integer;
        INPUT_CLK   : integer; -- 50MHz
        FREQ        : integer); -- 50Hz
    Port (
        Pwm_Out     : out std_logic;
        Duty_Cycle  : in std_logic_vector(BIT_DEPTH - 1 downto 0);
        Clk         : in std_logic;
        Enable      : in std_logic);
end component;

constant BIT_DEPTH  : integer := 8;
constant INPUT_CLK  : integer := 125000000; -- 50MHz
constant FREQ       : integer := 50; -- 50Hz

signal Enable      : std_logic := '0';
signal Duty_Cycle  : std_logic_vector(BIT_DEPTH - 1 downto 0) := "00001111";
signal Clk         : std_logic := '1';
signal Pwm_Out     : std_logic;   


begin
    dev_to_test: PWM
        generic map(BIT_DEPTH,INPUT_CLK,FREQ);
        port map(Pwm_Out,Duty_Cycle,Clk,Enable);

推荐答案

IEEE标准1076-2008

11.7组件实例化语句

component_instantiation_statement ::=
    instantiation_label :
        instantiated_unit
            [ generic_map_aspect ]
            [ port_map_aspect ] ; 

generic_map_aspect ::=     
   generic map (generic_association_list ) 

您在generic map(BIT_DEPTH,INPUT_CLK,FREQ);的末尾有太多的分号,因此,它看不到端口的映射,并向您显示错误。 要解决该错误,只需删除分号:

dev_to_test: PWM
        generic map(BIT_DEPTH,INPUT_CLK,FREQ)
        port map(Pwm_Out,Duty_Cycle,Clk,Enable);

PS:为了降低设计错误的风险,最好在端口和泛型映射中使用命名关联,而不是位置映射。

这篇关于VHDL语言:正式端口没有实际值或默认值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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