FPGA_DDR错误总结

1otp 31-67

解决 端口没连接 必须赋值;

2.PLACE 30-58 TERM PLINITCALIBZ这里有问题 在顶层输出但是没有管脚约束报错

3.ERROR: Place 30-675

这是时钟不匹配IBUF不在同一个时钟域,时钟不在同一个时钟域里,推荐的不建议修改

问题

原本的时钟是从fpga端口输出给pll,pll产生的时钟给各个模块。选的是 nobuffer,会报错并且没有进ibuff bufg

解决:

生成两个pll,一个是给所有的模块所用到的时钟,一个是专门给migddr3的时钟。

端口的差分时钟进入IBUFDS,把差分转单端,并且进入一个BUFG,从BUFG出来的时钟作为pll锁相环的输入,同时在配置pll的时候选择global_buffer.

复制代码
//+FHEADER ===============================================================================
// Copyright(c) Comlighten TECHNOLOGY Co.,LTD. All rights reserved.
// =======================================================================================
// 
// File Name     :  
// Department    : 
// Author        :  
// Author's Email:  
// 
// =======================================================================================
// PURPOSE:
//
//    
// =======================================================================================
// RELEASE HISTORY
// VERSION        DATE      AUTHOR         DESCRIPTION
//   
// 
// 
//
//-FHEADER ===============================================================================
`timescale 1 ps / 1 ps

module dcm_wrapper(
input   fpga_clk_p,
input   fpga_clk_n,
input   sys_rst   ,
output  clk_240  ,
output  clk_dac  ,
output  clk_720,
output reg  rf_init ,
output  asy_rst

);


wire clk40_s;
wire clk40_g;
wire clk600_lock;
wire  lock;

assign asy_rst = (~lock)&(~clk600_lock);

//clk_wiz_1 clk_wiz_1 (
//.clk_in1_p( fpga_clk_p ),
//.clk_in1_n( fpga_clk_n ),
//.clk_out1 ( clk_dac    ),
//.clk_out2 ( clk_240    ),
//.clk_out3 ( clk_720    ),
//.reset    ( sys_rst    ),
//.locked   ( lock       )
// );
//
//reg [31: 0] power_up_dly;
//
//always @( posedge clk_240 or posedge asy_rst ) begin
//    if( asy_rst == 1'b1 )
//        power_up_dly <= 32'd0;
//    else if( power_up_dly == 32'd80000000 )
//        power_up_dly <= power_up_dly;
//    else
//        power_up_dly <= power_up_dly + 32'd1;
//end
//
//
//
//always @( posedge clk_240 or posedge asy_rst ) begin
//    if( asy_rst == 1'b1 )
//        rf_init <= 1'b1;
//    else if( power_up_dly == 32'd80000000 )
//        rf_init <= 1'b0;
//    else;
//end



IBUFDS #(
.DIFF_TERM("FALSE"),       // Differential Termination
.IBUF_LOW_PWR("TRUE"),     // Low power="TRUE", Highest performance="FALSE" 
.IOSTANDARD("DEFAULT")     // Specify the input I/O standard
) IBUFDS_inst (
.O(clk40_s),  // Buffer output
.I(fpga_clk_p),  // Diff_p buffer input (connect directly to top-level port)
.IB(fpga_clk_n) // Diff_n buffer input (connect directly to top-level port)
   );

   BUFG BUFG_inst (
      .O(clk40_g), // 1-bit output: Clock output
      .I(clk40_s)  // 1-bit input: Clock input
   );



clk_wiz_1 clk_wiz_1 (
.clk_in1  ( clk40_g    ),
.clk_out1 ( clk_dac    ),
.clk_out2 ( clk_240    ),
//.clk_out3 ( clk_720    ),
.reset    ( sys_rst    ),
.locked   ( lock       )
 );
 
 
 
  clk_wiz_600 instance_name
   (
    // Clock out ports
    .clk_out1(clk_720),     // output clk_out1
    // Status and control signals
    .reset(sys_rst), // input reset
    .locked(clk600_lock),       // output locked
   // Clock in ports
    .clk_in1(clk40_g));      //

reg [31: 0] power_up_dly;

always @( posedge clk_240 or posedge asy_rst ) begin
    if( asy_rst == 1'b1 )
        power_up_dly <= 32'd0;
    else if( power_up_dly == 32'd80000000 )
        power_up_dly <= power_up_dly;
    else
        power_up_dly <= power_up_dly + 32'd1;
end



always @( posedge clk_240 or posedge asy_rst ) begin
    if( asy_rst == 1'b1 )
        rf_init <= 1'b1;
    else if( power_up_dly == 32'd80000000 )
        rf_init <= 1'b0;
    else;
end




endmodule

选择global

相关推荐
156082072195 小时前
JFMZQ28DR、JFMZQ68DR、RFsoc XCZU47DR、XCZU48DR 信号处理板
fpga开发·信号处理
XMAIPC_Robot7 小时前
-40~85℃宽温实测:RK3588 机器人控制器硬件底座,长时间 SLAM 定位稳定性验证
人工智能·fpga开发·机器人·边缘计算·arm+fpga·rk3588+fpga
樱木花道長8 小时前
AMD Ross 深度系列 8:FAQ 七问七答(文末附网盘链接)
人工智能·fpga开发
FPGA小迷弟8 小时前
FPGA 与无人机:从飞控实时性到智能载荷的硬件加速实践
人工智能·ai·fpga开发·架构·无人机·ai编程
低慢小uav10 小时前
(已解决)Zynq芯片lwip协议栈,使用tcp作为服务器Service,接收大量数据时,长度接收正常,接收对数据校验,校验和异常分析
网络协议·tcp/ip·fpga开发
szxinmai主板定制专家12 小时前
ARM+FPGA 数控机床控制器:选 CODESYS SoftMotion CNC,还是基于 LinuxCNC 自研搭建?架构、授权、实时性、量产风险深度对比
arm开发·fpga开发·codesys·数据采集卡·linuxcnc·rk3576
女神下凡12 小时前
芯参谋(79):嵌入式学习进阶_(硬件与软件)深入实践指南
arm开发·单片机·嵌入式硬件·学习·fpga开发·设计规范
路上有只喵14 小时前
认识元器件 · 单片机(MCU/MPU/SOC) · 实战篇5
单片机·嵌入式硬件·fpga开发
爱吃汽的小橘14 小时前
FPGA/数字IC设计的时序优化
fpga开发
FPGA小迷弟14 小时前
FPGA 与无线电:从软件定义无线电到 5G 基带的硬件实现之路
5g·fpga开发·架构·dsp开发·fpga·无线电