加入收藏 | 设为首页 | 会员中心 | 我要投稿 | RSSRSS-巴斯仪表网
您当前的位置:首页 > 电子发烧 > EDA技术

ISE仿真中需要注意的问题

时间:2013-08-27  来源:123485.com  作者:9stone

    在我们团队负责的项目光栅传感器系统高频并行解调算法的FPGA实现中,需要直接频率合成模块,因此我们想在FPGA上实现一个DDS芯片的功能,最近在BASYS板上调通了DDS模块,在功能仿真过程中我们发现在ISE环境下编写VHDL时对信号赋初值对仿真是十分必要的。
    由于参数的要求模块中用到了一个三分频电路。程序如下: 

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL; 
---- Uncomment the following library declaration if instantiating
---- any Xilinx primitives in this code.
--library UNISIM;
--use UNISIM.VComponents.all;
 
entity fredevider3 is
port
(clock:in std_logic;
clk:out std_logic
);
end fredevider3;
 
architecture Behavioral of fredevider3 is
signal counter:integer range 0 to 2;
signal temp1,temp2:std_logic; 
begin
process(clock) 
begin 
if rising_edge(clock) then
 if counter=2 then
    counter<=0;
        temp1<=not temp1;
 else
    counter<=counter+1;
 end if;
end if;
if falling_edge(clock) then
 if counter=1 then
    temp2<=not temp2;
 end if;
end if;
end process;
clk<=temp1 xor temp2;
end Behavioral;
 
    可是行为仿真后却没有预期的信号输出,看了一下message也没有任何报错的信息。 
 
     把中间信号加进去又看了一下结果,发现counter变了,但是temp1和temp2没有反应,说明程序运行了,但为什么没反应呢?如图。这个程序我以前在QUARTUS II中跑过完全没有问题为什么这里没反应呢?
 
    我又在QUARTUS II中把程序跑了一遍,完全没有问题,仿真有结果。
    刚开始以为所用软件是ISE9.1i的评估版问题,后来换用ISE8.2i完全版,问题仍然如故,郁闷,开始胡思乱想。。。是不是ISE自带的仿真器有bug?我用换了Modelsim问题还是解决不了。
    后来我突然想起在VHDL中有给变量赋初值的语句,而我的程序中变量未赋初值, U的出现是不是因为变量未赋初值,查了一下VHDL的语法书”STD_LOGIC”型数据可以有九种不同的值,其中’U’代表初始值。我改了一下程序,把原来的
signal temp1,temp2:std_logic;
改为
signal temp1:std_logic:='0';
signal temp2:std_logic:='0';
仿真,问题解决了。
 
    仔细分析一下原因应该是这样的:QUARTUS II的仿真器能够自动为信号赋一个初值,而这里在ISE中我们通过Test Bench Waveform生成测试激励文件.vhw,信号赋初值工作需要我们编程人员在编写程序时加入。我们忽略了在程序中为temp1和temp2赋初值,使得Simulator不知道temp1和temp2是什么值,才造成这种结果。
    可以说思维定势是产生这个问题的直接原因,所以我们学习新东西时要注意思维定势对我们的影响,不知道各位同仁是否也遇到类似的问题,希望我的这点提醒能让大家少走弯路。


分享到:
来顶一下
返回首页
返回首页
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
栏目导航->EDA技术
  • 电子应用基础
  • 电源技术
  • 无线传输技术
  • 信号处理
  • PCB设计
  • EDA技术
  • 单片机学习
  • 电子工具设备
  • 技术文章
  • 精彩拆解欣赏
  • 推荐资讯
    使用普通运放的仪表放大器
    使用普通运放的仪表放
    3V与5V混合系统中逻辑器接口问题
    3V与5V混合系统中逻辑
    数字PID控制及其改进算法的应用
    数字PID控制及其改进
    恶劣环境下的高性价比AD信号处理数据采集系统
    恶劣环境下的高性价比
    栏目更新
    栏目热门