微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > porcess外的信号赋值出错

porcess外的信号赋值出错

时间:10-02 整理:3721RD 点击:
我写了一个实现转置的程序,程序里用到了双口RAM。写的程序主要是,将A口设置为写,B口设置为读。这些都没什么问题。 程序中用到了三个process,其中一个process如下,这个程序将dat_vld_o_buf信号赋值给dat_vld_o。没有语法错误。但是仿真时出错。单步仿真时的错误也截图了。到底哪里出了问题。
-----------结构体---------------------
process(clk_i,rst)
begin
    IF(rst='0')THEN
        dat_vld_o_buf<='0';
    ELSIF(RISING_EDGE(CLK_I)) then
        if(cnt="10001")then
            dat_vld_o_buf<='1';
        end if;
    END IF;
end process;
addra_ram<=addra;-----这个可以赋值
addrb_ram<=addrb;--这个可以赋值
dat_vld_o <= dat_vld_o_buf;--这个完蛋了可以看modelsim中dat_vld_o一直为U.
-------------------------------------------

从仿真可以看出信号buf并没有赋值给dat_vld_o


这个是我单步仿真到,dat_vld_o <= dat_vld_o_buf这个语句时显示出的调用fushion(actel fpga)窗口,似乎 ...


确认一下dat_vld_o是否被使用,有可能被优化了

这个仿真是我没有进行综合之前的仿真,应该不会被优化才对。

终于发现了原因,我再modelsim中仿真时的警告如下Uninitialized out port has no driver ,我仔细查看了发现我的testbench 文件中在例化模块时没有将port map()写完整。特此结贴。

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

网站地图

Top