一、指令时序之命令时序 app_cmd和app_addr有效,且app_en拉高,app_rdy拉高,则该指令成功发送给DDR3控制器,若是在app_cmd、app_addr、app_en都有效时,app_rdy为低,那么必须保持app_cmd、app_addr、app_en的有效状态直到app_rdy拉高,指令才会成功发送给DDR3控制器。 以下图为例,在app_en为高器件发起多次写入...
第一类信号为复用命令信号,分别对应于app_cmd app_addr app_en app_rdy app_cmd:用于控制读写,0对应写,1对应读 app_addr:地址信号,这里为8突发,因此,一次数据512bit数据的读写,对应地址要加8(512/64) app_en与app_rdy为握手信号,两个信号同时为高时,将会使得app_cmd及app_addr信号有效 第二类信号为用户...
蓝线、和黄线处,app_cmd为0,app_en、app_rdy均为高,代表在执行写命令操作;同时app_wdf_data同地址一致,app_wdf_en、app_wdf_rdy均为高,代表在进行写数据操作 如下图: 很多个周期的app_rdy拉低,代表MIG没有准备好进行写数据命令,但此时app_wdf_data同地址一致,app_wdf_en、app_wdf_rdy均为高,代表在进...
app_rdy表示UI已经准备好接收命令了,意思就是说必须要等app_rdy信号拉高了之后,app_en和app_cmd等才能开工干活= = 而且,这个不受你控制。等着吧 2. app_wdf_rdy (想要往DDR写数据?不好意思,等我准备好了再说) app_wdy_rdy信号表示写数据FIFO已经准备好接收数据了,数据在app_wdf_rdy = 1’b1且 app_wdf...
.v_bling (v_bling),//---app interface.app_ini (init_calib_complete), .app_rdy (app_rdy), .app_wdf_rdy (app_wdf_rdy),//output.app_cmd (app_cmd), .app_wdf_mask (app_wdf_mask), .ddr_addr (app_addr), .app_en (app_en), .app_wdf_...
6. app_wdf_end (要你作甚,一句app_wdf_end = app_wdf_wren 搞定) 理论上应该有点用,但是实际你只要让它跟app_wdf_wren一样就行了 emm...大神这段解释很传神,我直接copy过来了 2.2.2 IP核的输出信号 app_rdy (想要DDR帮你干活,也得让人家准备好了不是?) ...
因为DDR接口对用户而言并不是一直有效,只有等DDR“有效”时(app_rdy = 1 && app_wdf_rdy = 1),才能进行写入。 2.1.1输入接口时序图 输入数据为1-50共50个数据,以vld_in信号表征输入数据有效。 2.2状态机设计 2.2.1独热码localparam S0_IDLE = 6'b000001; //初始化状态,DDR初始化成功就跳转S1 ...
地址内容是app_addr,它在app_rdy(DDR控制)和app_en(设计者自己控制)同时拉高的时候才有效; 数据内容是app_wdf_data,它在app_wdf_rdy(DDR控制)和app_wdf_wren(设计者自己控制)同时拉高时才有效; 这两套系统在时序上对齐,就可以成功将数据写入DDR;
写命令以app_cmd的值区分,0表示写操作,1表示读操作。写操作时序需确保app_rdy为高,app_en拉高,数据随后发送。数据写入允许三种情况:同一拍、提前一拍或延迟不超过两拍。读数据时,用户等待app_rd_data_valid拉高,获取有效数据。实验任务具体为:向0-999地址写入0-999数据,然后读取并验证数据。
地址系统与写操作相同,在时钟上升沿且app_rdy为高电平时,用户端口同时发出读命令(app_cmd=001)和读地址,并将app_en拉高,将读命令和地址写到FIFO中。对于数据系统,当app_rd_data_valid有效,则读数据有效,读回的数据顺序与地址/控制总线请求命令的顺序相同。