From ce516533816f4757d2183d9822c20a0cd1c737c5 Mon Sep 17 00:00:00 2001 From: Sebastien Bourdeauducq Date: Mon, 20 Feb 2012 16:13:56 +0100 Subject: [PATCH] s6ddrphy: generate DQ/DQS/DM OE --- verilog/s6ddrphy/s6ddrphy.v | 70 +++++++++++++++++++++++++++++-------- 1 file changed, 56 insertions(+), 14 deletions(-) diff --git a/verilog/s6ddrphy/s6ddrphy.v b/verilog/s6ddrphy/s6ddrphy.v index 80681044..a1716bdf 100644 --- a/verilog/s6ddrphy/s6ddrphy.v +++ b/verilog/s6ddrphy/s6ddrphy.v @@ -1,3 +1,25 @@ +/* + * 1:2 DDR PHY for Spartan-6 + * + * Command path: + * posedge sys_clk + 1 + * negedge clk2x_90 + 0.375 + * negedge clk2x_90 + 0.5 + * Command latency: 1.875 cycles + * + * Data write path (phase 0, word 0): + * posedge sys_clk [oserdes] + 1 + * strobe [oserdes] + 1 + * Data write latency: 2 cycles + * + * DQS OE path: + * posedge sys_clk + 1 + * negedge clk2x_90 + 0.375 + * negedge clk2x_90 [oddr] + 0.5 + * DQS OE latency 1.875 cycles + * + * Data read path: + */ module s6ddrphy #( parameter NUM_AD = 0, parameter NUM_BA = 0, @@ -162,7 +184,7 @@ always @(negedge clk2x_90) begin r2_dfi_we_n_p1 <= r_dfi_we_n_p1; end -always @(posedge clk2x_90) begin +always @(negedge clk2x_90) begin if(phase_sel) begin sd_a <= r2_dfi_address_p1; sd_ba <= r2_dfi_bank_p1; @@ -188,14 +210,15 @@ end genvar i; -wire drive_dqs; +wire drive_dqs_p0; +wire drive_dqs_p1; wire [NUM_D/16-1:0] dqs_o; wire [NUM_D/16-1:0] dqs_t; generate for(i=0;i