原创 Xilinx DDS IPcore的仿真

2010-7-23 23:22 5127 10 10 分类: FPGA/CPLD

         使用Xilinx的DDS   IPcore的时候发现一个问题,使用ModelSim仿真发现DDS的输出始终为未知态,很是奇怪,因为所使用的工程ML505的开发板上是完全可以正常工作的,这让我很是奇怪。


        DDS模块的接口如下所示:


      module DDS(
                                DATA,     //控制字 该端口为复用端口 可输如频率和相位控制字
                                WE,        //写使能
                                A,            //低4位通道选择,最高位的1表示写相位控制字,0则是频率控制字
                               CLK,        //时钟
                               RFD,
                               RDY,
                               SINE,      //正弦输出
                               COSINE
                               ); // synthesis black_box


                               input [27 : 0] DATA;
                               input WE;
                               input [4 : 0] A;
                               input CLK;
                               output RFD;
                               output RDY;
                               output [9 : 0] SINE;
                               output [9 : 0] COSINE;


         为何会出现这种情况呢?单独对DDS模块进行仿真,没有任何问题,但是一旦加上了前级的一个module输出就成为未知态了,于是将DDS的DATA和WE写了一个固定的值,这样一来。实际上DDS是不受前级控制的,这时候仿真就好了。说明问题出在前级,但是通过观察前级的输出信号,发现是完全满足要求的。前级使用了同步清零的方式,问题就出在这了,同步清理导致在第一个时钟到来的时候,DDS写使能没有被清零,这就导致了仿真的错位。


        也就是说在ModelSim中仿真DDS的IPcore的时候,DDS的写使能必须先清零,仿真才能进行。


 


 

文章评论0条评论)

登录后参与讨论
我要评论
0
10
关闭 站长推荐上一条 /2 下一条