在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 6952|回复: 5

[求助] FPGA综合的时候关于PLL报错不会解决,求大手指点!?

[复制链接]
发表于 2013-3-29 16:26:11 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
`define ROWSTART        9           
`define ROWSIZE         13
`define COLSTART        0
`define COLSIZE         9
`define BANKSTART       22
`define BANKSIZE        2
// Address and Data Bus Sizes
`define  ASIZE           25      // total address width of the SDRAM
`define  DSIZE           16      // Width of data bus to SDRAMS
`timescale 1ps / 1ps
module top_sdram(
      clk_50,
      //clk_28,
      reset_n,
      switch,      
      SA,
      BA,
      CS_N,
      CKE,
      RAS_N,
      CAS_N,
      WE_N,
      DQ,
      DQM,            
      clk_vga,
      clk_vga0,
      clk_sdram,
      hsync_o,  
      vsync_o,  
      valid_o,  
      r_o,      
      g_o,      
      b_o                                    
      );

input                  clk_50;
//input                  clk_28;
input                  reset_n;
input                  switch;
output      [12:0]        SA;
output      [1:0]         BA;
output      [1:0]         CS_N;
output                 CKE;
output                 RAS_N;
output                 CAS_N;
output                 WE_N;
inout       [`DSIZE-1:0]       DQ;
output      [`DSIZE/8-1:0]     DQM;
output                 clk_vga;
output                 clk_vga0;
output                 clk_sdram;
output                 hsync_o;
output                 vsync_o;
output                 valid_o;
output      [7 : 0]        r_o;
output      [7 : 0]        g_o;
output      [7 : 0]        b_o;

      
wire                 clk_50;
wire                 reset_n;
wire                 switch;
wire      [12:0]        SA;
wire      [1:0]         BA;
wire      [1:0]         CS_N;
wire                 CKE;
wire                 RAS_N;
wire                 CAS_N;
wire                 WE_N;
wire      [`DSIZE-1:0]       DQ;
wire      [`DSIZE/8-1:0]     DQM;
wire      [2:0]         CMD;
wire      [`ASIZE - 1 : 0]   addr;
wire      [`DSIZE - 1 : 0]   datain;
wire      [`DSIZE/8 - 1 : 0]  dm;
wire                 cmdack;
wire      [`DSIZE - 1 : 0]   dataout;
wire                 clk_vga;
wire                 clk_vga0;
wire                 clk_sdram;
wire                 hsync_o;
wire                 vsync_o;
wire                 valid_o;
wire      [7 : 0]        r_o;
wire      [7 : 0]        g_o;
wire      [7 : 0]        b_o;
wire                 locked_sig;

sdr_sdram sdr_sdram_1(
        .CLK(clk_ctrl),
        .RESET_N(reset_n),
        .ADDR(addr),
        .CMD(CMD),
        .CMDACK(cmdack),
        .DATAIN(datain),
        .DATAOUT(dataout),
        .DM(dm),
        .SA(SA),
        .BA(BA),
        .CS_N(CS_N),
        .CKE(CKE),
        .RAS_N(RAS_N),
        .CAS_N(CAS_N),
        .WE_N(WE_N),
        .DQ(DQ),
        .DQM(DQM)
        );

sdr_sdram_rd sdr_sdram_rd_1(
         .clk_ctrl(clk_ctrl),
         .clk_vga0(clk_vga),
         .reset_n(reset_n),
         .switch(switch),
         .cmdack(cmdack),
         .dataout(dataout),
         .CMD(CMD),
         .addr(addr),
         .datain(datain),
         .dm(dm),
         .hsync_o(hsync_o),
         .vsync_o(vsync_o),
         .valid_o(valid_o),
         .r_o(r_o),
         .g_o(g_o),
         .b_o(b_o));

pll_vga pll_vga_inst (
.areset (0),
.inclk0 ( clk_50 ),
.c0 ( clk_vga ),
.locked ( locked_sig )
);


pll_vga0 pll_vga0_inst (
.areset (0),
.inclk0 ( clk_50 ),
.c0 ( clk_vga0 ),
.locked ( locked_sig )
);

pll_ctrl_sdram pll_ctrl_sdram_inst (
.areset (0),
.inclk0 ( clk_50 ),
.c0 ( clk_ctrl ),
.c1 ( clk_sdram ),
.locked ( locked_sig )
);
endmodule




    这是我写的程序的顶层模块,sdr_sdram是SDRAM控制器模块,sdr_sdram_rd是对SDRAM读写的时序控制模块,这个整体框架中要用到的4个时钟,我用了3个PLL,可是以上面例化的PLL来综合的话,报错:Error: Input clock "clk_50" cannot feed more than one PLL
    看起来的意思是clk_50不能同时接到多于一个pll上,然后我就把锁相环三个中的一个pll_vga 的输出管脚中的c1,c2输出clk_50一样频率的时钟结果报错:
Error: Can't fit fan-out of node pll_vga:pll_vga_inst|altpll:altpll_component|_clk1 into a single clock region
Error: Can't fit fan-out of node pll_vga:pll_vga_inst|altpll:altpll_component|_clk2 into a single clock region


关于PLL的使用中以上设计是违反了什么规则么?好纠结,求大手指点一二呀!??
发表于 2013-3-29 17:42:22 | 显示全部楼层
一般PLL有多个时钟输出的,你只要使用一个PLL就可以了
发表于 2013-3-29 17:46:20 | 显示全部楼层
VGA的时钟如果不高也不需要PLL,用主时钟模拟一个时钟输出就可以了
 楼主| 发表于 2013-3-30 09:10:10 | 显示全部楼层
回复 2# xuy731


    我要用到18MHZ,36MHZ,125MHZ,但是这几个时钟不能同时生成,可能是内部倍频分频参数的冲突造成的,但是具体原理我也没仔细研究,总之在用quartus2 生成以上时钟是做不到放在同一个PLL中的,可是用多个PLL又出现这种问题。
 楼主| 发表于 2013-3-30 09:12:53 | 显示全部楼层
回复 3# xuy731


    要用到好三个不同频率固定时钟,PLL必须要用到啊
发表于 2013-3-30 11:12:32 | 显示全部楼层
pll没有怎么用。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-23 20:03 , Processed in 0.022462 second(s), 9 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表