请教:altpll综合后仿真和时序仿真不出结果?

我在quartus中调用了altera的megafunciton:altpll,将20M频率倍到40M,然后在modelsim中利用调用时生成的*.v文件和自己编写的testbench文件新建了工程并完成了综合前的仿真,结果正确。但是在进行综合后仿真(利用quartus生成的*.vo文件和自己编写的testbench文件新建工程)以及时序仿真(在前者基础上加入了sdf文件)却没有结果出来,而在装载设计时并没有报什么错,以下是装载设计后的信息:
vsim -L F:/zy/work/modelsim_library/altera_lib/verilog/cycloneii_ver -sdftyp {/dut=F:/zy/work/synplify project/modelsim_project/PLL_testbench/test_postPR/mypll_v.sdo} work.test_mypll
# vsim -L F:/zy/work/modelsim_library/altera_lib/verilog/cycloneii_ver -sdftyp {/dut=F:/zy/work/synplify project/modelsim_project/PLL_testbench/test_postPR/mypll_v.sdo} work.test_mypll
# Loading work.test_mypll
# Loading work.mypll
# ** Warning: (vsim-3010) [TSCALE] - Module 'mypll' has a `timescale directive in effect, but previous modules do not.
#         Region: /test_mypll/dut
# Loading F:/zy/work/modelsim_library/altera_lib/verilog/cycloneii_ver.cycloneii_io
# Loading F:/zy/work/modelsim_library/altera_lib/verilog/cycloneii_ver.cycloneii_mux21
# Loading F:/zy/work/modelsim_library/altera_lib/verilog/cycloneii_ver.cycloneii_dffe
# Loading F:/zy/work/modelsim_library/altera_lib/verilog/cycloneii_ver.cycloneii_asynch_io
# Loading F:/zy/work/modelsim_library/altera_lib/verilog/cycloneii_ver.cycloneii_pll
# Loading F:/zy/work/modelsim_library/altera_lib/verilog/cycloneii_ver.cycloneii_pll_reg
# Loading F:/zy/work/modelsim_library/altera_lib/verilog/cycloneii_ver.cycloneii_m_cntr
# Loading F:/zy/work/modelsim_library/altera_lib/verilog/cycloneii_ver.cycloneii_n_cntr
# Loading F:/zy/work/modelsim_library/altera_lib/verilog/cycloneii_ver.cycloneii_scale_cntr
# Loading F:/zy/work/modelsim_library/altera_lib/verilog/cycloneii_ver.cycloneii_clkctrl
# Loading F:/zy/work/modelsim_library/altera_lib/verilog/cycloneii_ver.cycloneii_mux41
# Loading F:/zy/work/modelsim_library/altera_lib/verilog/cycloneii_ver.cycloneii_ena_reg
# Loading F:/zy/work/modelsim_library/altera_lib/verilog/cycloneii_ver.CYCLONEII_PRIM_DFFE
# ** Note: (vsim-3587) SDF Backannotation Successfully Completed.
#    Time: 0 ps  Iteration: 0  Region: /test_mypll  File: F:/zy/work/synplify project/modelsim_project/PLL_testbench/test_postPR/test_mypll.v
之后我便运行(按F9),结果波形如下图,没有结果


未命名.jpg


我也来说两句 查看全部回复

最新回复

  • ycyuhoney (2008-10-06 19:47:47)

    哦,这个图不是很清楚,第一个信号是复位信号areset,第二个信号是倍频后的时钟信号c0,第三个信号是输入20M的时钟,第四个信号是输出锁定信号locked。其中只有时钟输入和复位输入是按照testbench里写的激励那样出来的,但是倍频输出和锁定输出2个信号都没有反应,刚开始的时候这2个信号都是红色的,后来,输出锁定信号便一直为低,而倍频输出则一直保持红色状态,实在想不通是哪里的问题,希望大家能指点迷津,谢谢!
  • ycyuhoney (2008-10-07 15:19:06)

    为什么没有人回答啊,请大家帮帮忙吧!
  • bemoon (2008-10-07 15:30:05)

    是否是timescale的问题,最好在testbench中指定timescale。
    或者是某些寄存器没有初始值?
  • ycyuhoney (2008-10-07 17:10:47)

    谢谢楼上,可是我加了timescale的,而且综合前仿真都有结果,就是综合后的没有结果出来,会不会是网表文件的问题呢,可能会是怎样的原因会导致加入网标后就没有结果了
  • bemoon (2008-10-07 20:00:51)

    ** Warning: (vsim-3010) [TSCALE] - Module 'mypll' has a `timescale directive in effect, but previous modules do not.
    这里的previous module应该是test_mypll吧。test_mypll应该是testbench吧。我感觉最好给testbench加上timescale因为它是最上层的。
  • ycyuhoney (2008-10-07 21:58:14)

    说的是,那个warning应该就是那个意思,可是我加上了`timescale  1ps/1ps
    结果还是那个样子
  • bemoon (2008-10-07 22:54:26)

    一般情况下,20mhz的时钟域没有必要用1ps/1ps这样的单位和精度。这样带来的运算数据比较大,不方便。
    你要搞清楚timescale的含义:前者是指仿真时间单位,后者是指仿真数据精度。
    1ps/1ps就等于告诉仿真软件,仿真时间单位是1ps,精度是1ps,那么在仿真中遇到# 1这样的延时语句将产生1ps的延时,而小于1ps宽度的信号将被忽略。如果你采用1ps作为时间单位,那么20mhz的时钟周期就是50000ps,应该用#25000作为反转延时。不知道你搞对了没有。
  • ycyuhoney (2008-10-08 15:56:10)

    现在已经对了,真是谢谢你啦!
  • bemoon (2008-10-08 16:32:03)

    没关系,相互学习,能帮到你就好。