分享

modelsim仿真xilinx ip核的方法举例

 shysheng 2012-04-05

第一大步:主要是将xilinx的常用的三个库编译到modelsim中去

第二大步,以实例来验证一下

例:使用DDS IP Core实例化一个2MHz,分辨率为0.1Hz,带外抑制比为60dB的正、余弦信号发生器,假设工作时钟为50MHz。

 

DDS模块的输出频率 是系统工作频率 、相位累加器比特数N以及频率控制字K三者的一个函数。

DDS IP Core支持余弦、正弦以及正交函数的输出,旁瓣抑制比的范围从18dB 到115dB,最小频率分辨率为0.02Hz,可同时独立支持16个通道。其中的查找表既可以利用分布式RAM,也可利用块RAM。


公式:fo=fclk*K/(2的N次幂) 

K即为本例输入的data,N取28,fclk=50M,fo=2M,可计算出data大约=10737418

第三大步:

1.生成dds ip核,命名为mydds.xco。在Math Functions---Trag Functions---DDS Compliier.然后设置相应的频率,位宽等

2.编写顶层文件dds1.v

module dds1(
   clk,
   we,
   data,
   sine,
   cosine
    );
//*****
input clk;
input we;
input [27:0] data;
//**output**//
output [9:0] sine;
output [9:0] cosine;


mydds mydds_inst(
     .clk(clk),
     .we(we),
     .data(data),
     .sine(sine),
     .cosine(cosine)
     );
 
endmodule

3.测试激励很简单,把clk设置为50M,data=10737418,we相应的设置为1.

4.仿真注意事项

新建一个工程,并添加所有的.v文件(三个.v文件);然后点Add to project--Simulation Configuration设置:

(1)添加Library。由于我们要仿真Xilinx的IP core,所以我们需要添加编译好的Xilinx仿真库:xilinx_corelib(用于仿真Xilinx IP core),xilinx_unisims(用于进行功能仿真),xilinx_simprims(用于进行布线后仿真)。

(2)修改Design选项,选择仿真文件,这里需要注意:要不仅要选择testbench文件,还要选择glbl文件(在modelsim中编译其他.v文件时自动生成的)。否则在仿真时会提示出错。另外,还要去掉左下角的Enable optimization选项,如果不去掉,在仿真时,有些信号会被优化掉。

(3)如果需要进行后仿真,需要添加SDF文件。如果只是进行功能仿真就不需要添加SDF文件了。设置完成后,点击Save。可以看到Project中添加了一个Simulation configure文件,即为simulation 1,双击它即可仿真,但是还没出来波形,点击run all快捷图标即可。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多