微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > Quartus17.0调用Modelsim仿真PLL无输出

Quartus17.0调用Modelsim仿真PLL无输出

时间:10-02 整理:3721RD 点击:
本人安装的是Quartus17.0-Lite(配套Modelsim-Altera)
添加PLL的IP核,仿真的时候c0输出高阻,locked一直输出低;
选用:Cyclone10的10CL016E144C8
目前尝试办法:
①选择Cyclone4的器件,调用C4的PLL IP仿真,IP可以正常仿真;
②更换Modelsim SE10.5(破解版),仿真c0输出高阻;
③安装Quartus17.0-stand(破解版),仿真c0输出高阻;
④自己重新编译了ModelSim的Altera库,依然c0输出高阻;
求大神指导指导。
注:目前器件不能变更,最终是要使用Cyclone10LP的,而目前只有Quartus17.0支持Cyclone10LP;



各位,再补一个顶层代码和testbench代码:
①top_pll3:
module        top_pll3(
        clk25M,
        rst_n,
        clk_50M,
        locked
        );
       
       
        input        clk25M;
        input        rst_n;
        output        clk_50M;
        output        locked;
       
        wire        clk_50M;
        wire        locked;
        wire        clk_c0;
       
        PLL1                PLL_50M(
                .areset                (~rst_n),
                .inclk0                (clk25M),
                .c0                        (clk_50M),
//                .c1                        (clk_200M)
                .locked                (locked)
        );
       
endmodule
②testbench代码:
`timescale 1 ps/ 1 ps
module top_pll3_vlg_tst();
// constants                                          
// general purpose registers
// test vector input registers
reg clk25M;
reg rst_n;
// wires                                               
wire clk_50M;
wire locked;
// assign statements (if any)                          
top_pll3 i1 (
// port map - connection between master ports and signals/registers   
        .clk25M(clk25M),
        .clk_50M(clk_50M),
        .locked(locked),
        .rst_n(rst_n)
);
        initial begin
                // Initialize Inputs
                rst_n = 1'b1;
                #10000;
                rst_n = 1'b0;
                #10000;
                rst_n = 1'b1;
                #10000;
/*                 rst_n = 1'b0;
                #1000;
                rst_n = 1'b1;
                #1000; */
        end
        //clk initialzation
        initial begin
                clk25M = 1'b0;
                forever
                        #20 clk25M = ~clk25M;
        end                           
                                                  
endmodule

没用过  帮你顶下

学习一下专业技能。

咨询过一些大牛,和多次尝试,问题出在软件上,正版的软件也没办法仿真。
目前一个比较折中的解决方案是:器件选10CL16型号,但是PLL选用Cyclone V的PLL库,是能够正常综合编译、仿真的。但这种办法还没有进行上板验证。
另外:过几天出新版17.1,到时候再尝试一下,看看是否可以解决,同时咨询技术支持,看看是否有合理的解释,后面有新结果了再更新,希望不要出现同样的坑。

你去掉复位引脚试试,IP设置去掉

尝试过了,也不行!通常去掉复位输入,pll的c0输出就变成不定值了

引脚绑定的对吗?板子上的晶振有没有起振啊

还处于仿真阶段呢。仿真的时候PLL无输出(输出高阻态)

最近Intel刚刚更新了Quartus17.1,我下载使用之后,发现还是PLL输出高阻态,总感觉是PLL核本身有问题,Intel的IP核某些状态位无法跳转导致的输出高阻。

测试文件输入激励不对吧,20ns对应50MHz,你例化的PLL输入是25MHz那么周期应该是40ns,而你的测试文件里面时间单位是ps周期是40ps,那么你的测试文件周期激励是25000MHz,所以与你当时例化是PLL的输入时钟不符合,将测试文件里面的时钟单位改了如`timescale 1 ps/ 1 ps 改成 `timescale 1 ns/ 1 ps应该就可以了,仅供参考

20ns反转,正反各反转一次才是一个周期,20ns对应是25MHz是没错的;
另外关于仿真时间设置,我之前设置过1ns/1ps,但输出没区别,后面就没有改了。仿真时间设置,我之前只是调整了testbench,以及软件里面的setup sim仿真设置,按你这一说,我是不是top、PLL模块里面的仿真时间没设置影响的呢?我回去再试一下给你答复,多谢你的建议。

我也是17.0,我直接把PLL例化作为了顶层仿真时可以的,应该是你仿真设置的不对。最直接的方法就是你把PLL的输入输出引脚绑定好,用示波器进行板载测试就知道了,手边没有示波器也可以使用signalTapII也可以的,只要有板子






Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top