首先在综合ddr3 ip核时会碰着下面的error
ID:15700 Termination calibration block atom \"大众<name>\"大众 uses <name> port, which must be connected to <name>

CAUSE: The specified Termination calibration block atomuses the specified port, but the port is not connected correctly. The port must be connected as specified.
ACTION: Locate the specified port and connect it as specified.
是由于OCT RZQIN这个引脚的问题,由于是用的FPGA逻辑里面的硬核资源做的设计,硬件那边也没有给这个引脚的事理图,找FAE和同事也没有得到很好的解答,在这里搜集资料花了很永劫光。
Creating OCT Signals
In ALTMEMPHY-based designs, the Quartus Prime Fitter creates the alt_oct block outside the IP core and connects it to the oct_ctl_rs_value and oct_ctl_rt_value signals.
In UniPHY-based designs, the OCT block is part of the IP core, so the design no longer requires these two ports. Instead, the UniPHY-based design requires two additional ports, oct_rup and oct_rdn (for Strati III and Stratix IV devices), or oct_rzqin (for Stratix V devices). You must create these ports in theinstantiating entity as input pins and connect to the UniPHY instance. Then route these pins to the toplevel design and connect to the OCT RUP and RDOWN resistors on the board. For information on OCT control block sharing, refer to “The OCT Sharing Interface” in this volume.
DDR3 datasheet
二、例化步骤
本文皆用DDR3作为实例。例化DDR3 HMC无非有两种办法,直接例化和在Qsys中例化。
7. 天生IP核。顶层文件看似繁芜,但是条理非常清楚。
hmc (
input wire pll_ref_clk, //接参考时钟
input wire global_reset_n, //低电平复位
input wire soft_reset_n, //低电平复位,但是不复位PLL
outputwire afi_clk, // 400MHz钟,与内存频率相同,不该用
outputwire afi_half_clk, //没有输出,不该用
outputwire afi_reset_n, //低电平复位
//接下来以mem开头的旗子暗记都是接内存芯片的旗子暗记,在FPGA上有固定的管脚,这里省略
mem_// 省略先容
//接下来以avl开头的旗子暗记是AvalonMM 总线,这里省略先容
avl_// 省略先容
//接下来是MPFE的FIFO时钟和复位旗子暗记
input wire mp_cmd_clk_0_clk,//接Avalone MM时钟域的钟,可以和afi钟不同
input wire mp_cmd_reset_n_0_reset_n, //接Avalone MM时钟域的复位
input wire mp_rfifo_clk_0_clk, //接Avalone MM时钟域的钟,可以和afi钟不同
input wire mp_rfifo_reset_n_0_reset_n, //接Avalone MM时钟域的复位
input wire mp_wfifo_clk_0_clk, //接Avalone MM时钟域的钟,可以和afi钟不同
input wire mp_wfifo_reset_n_0_reset_n, //接Avalone MM时钟域的复位
//状态旗子暗记
outputwire local_init_done, //初始化成功
outputwire local_cal_success, //校准成功
outputwire local_cal_fail, //校准失落败
//OCT旗子暗记
input wire oct_rzqin //接100欧姆电阻,供校准利用
);
从DDR3的芯片手册和altera关于硬核的利用user guide中我们可以理解到,OCT_RZQIN这个管脚是硬核里面和UniPHY链接做调试校准用的,而且必须放在顶层的module里面 也便是 input OCT_RZQIN而且硬件那里要制订专用引脚,不然全编译后,Quartus会随机给他分配一个引脚。
2、HPS里和硬核里面的管脚都是通过综合后实行pin_assignment.tcl分配好期间的电平标准在全编译后自动分配的专用管脚,如果你手动输入的话,编译会出错,是综合不过去的
3、还有便是你分配的GCLK是不能和ddr3在一个IO Bank里面的 会和硬核里ddr3的专用引脚的电平标准冲突。
以上便是这几天FPGA预布线创造的问题,须要硬件那里做修该的地方。








