Verilog 为什么DCM不';在Modelsim 10.3中不工作?

Verilog 为什么DCM不';在Modelsim 10.3中不工作?,verilog,fpga,xilinx,modelsim,Verilog,Fpga,Xilinx,Modelsim,我尝试使用数字时钟管理器(DCM)并将输入时钟加倍。iSim(Xilinx仿真工具)给出了正确的结果,但在Modelsim中,输出时钟始终为零 我总是在modelsim中的项目库中编译unisims文件夹(由xilinx软件中的IBUFG、DCM和BUFG模块组成) 根据Russel的回答,我使用了Xilinx核心生成器。我希望CLKFX的频率是CLKIN的两倍。如下图所示,iSim(Xilinx模拟器)的结果是正确的,但在ModelsimCLKFX中始终为零: iSim结果(Xilinx模拟

我尝试使用数字时钟管理器(DCM)并将输入时钟加倍。iSim(Xilinx仿真工具)给出了正确的结果,但在Modelsim中,输出时钟始终为零

我总是在modelsim中的项目库中编译unisims文件夹(由xilinx软件中的IBUFG、DCM和BUFG模块组成)


根据Russel的回答,我使用了Xilinx核心生成器。我希望
CLKFX
的频率是
CLKIN
的两倍。如下图所示,iSim(Xilinx模拟器)的结果是正确的,但在Modelsim
CLKFX
中始终为零:

iSim结果(Xilinx模拟器):

Modelsim结果:


如果您认为DCM设置不正确,则需要阅读有关DCM及其工作原理的文档。如果搜索Xilinx库指南(+FPGA名称),您将找到设备中可用的所有原语。或者您可以在此处查看完整列表:


如果查看所有参数后仍有问题,可以尝试使用CoreGen为您生成DCM。CoreGen将确保您不会犯任何错误或在无效配置中实例化某些内容。CoreGen的输出是一个.vhd文件,您可以将其放入您的modelsim项目中进行模拟。

您是否为DCM编写了verilog,modelsim如何使用该模型或代码?unisims文件夹(在xilinx中)由DCM、BUFG和IBUFG模块(verilog代码)组成。我在modelsim中编译了项目库中的文件夹。(C:\Xilinx\14.2\ISE\u DS\ISE\verilog\src\unisims)DCM最多需要160 us才能产生稳定的输出时钟。您模拟过这么长的时间吗?在iSim中,15个周期后(如果1500 ns后T=100 ns)会提供输出时钟,但在modelsim中,我运行了200微秒(2000个周期),没有发现任何变化。谢谢Russell。我使用Core Generator(Xilinx工具)创建了一个DCM。输出
CLK0
正确,但
CLKFX
CLK2X
在modelsim中不工作。它们总是零!编译代码或加载模拟时,是否看到任何modelsim警告?如果modelsim找不到DCM,它将创建一个黑盒,您可能会看到这种行为。仔细查看modelsim警告。不幸的是,modelsim成绩单中没有警告或错误。正如您所说,我多次使用Core Generator创建了DCM。警告或错误的数量始终为零,输出
CLK0
类似于输入
CLKIN
,但输出
CLKFX
始终为零。
CLKFX
的频率应为
CLKIN
的两倍。(我用iSim和Modelsim模拟器的结果编辑了我的问题)我可以得到正确的结果。它与IBUFG、DCM和BUFG模块相关。我更改了模块中的时间刻度。默认值是皮秒,我把它改为纳秒。是我的错。非常感谢你,拉塞尔。核心发电机是个好主意。@Amir,好发现!是的,我忘了!DCM的分辨率必须更小才能正常工作。我很高兴你查到了真相。事实上,我有点惊讶Modelsim没有就此向您发出警告。