微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 求助:VHDL package 中定义信号,仿真出错

求助:VHDL package 中定义信号,仿真出错

时间:10-02 整理:3721RD 点击:
在package中定义全局信号a然后在子模块中对a赋值,在tb中调用a信号,仿真观察波形异常。
若在tb中对a赋值,在tb中调用a信号,则显示波形正常。
特来请教各位大侠。

package test is
signal a : std_logic;
end package;
entity module1 is
end entity;
architecture rtl of module1 is
    signal b: std_logic;
begin
    a <= b;
end rtl;
entity tb is
end entity;
architecture rtl of tb is
    signal c : std_logic;
begin
    c <= a;
end rtl;




找到原因了,我的设计中同样的module1有3个,因此导致多值驱动,输出异常。
我的本意是在仿真时能够查看子模块中变量,看来多次调用同一个模块的设计这种方式是行不通的。
VHDL中也没有像VERILOG一样的层级调用方式,只能用最土的映射到端口来查看子模块内部信号啊。


仿真时是可以进入到内部模块看每一个值的变化的啊,不需要把相应信号连接到TOP上再来观察,对VHDL与VERILOG都一样。另外,VERILOG可以如你所说,直接和TB上去调用给定底层路径的变量的值,VHDL里面没用过。


功能仿真是可以查看内部信号的,门级仿真信号被打乱了,我用的lattice+modelsim,有时候甚至找不到原信号名。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top