Ver Fonte

Fix polarity of output SDRAM clock; move into sdram module

Fix the polarity of the output SDRAM clock: it should be inverted with
respect to the internal clock (so the SDRAM sees a positive edge in
between what the core considers a positive edge.)

Move the sdram clock buffer into sdram.sv; this is merely cosmetic.
H. Peter Anvin há 3 anos atrás
pai
commit
b2d184d021

+ 2 - 12
max80.sv

@@ -154,17 +154,6 @@ module max80 (
 	  { rst_n, rst_ctr } <= rst_ctr + 1'b1;
        end
 
-     // SDRAM clock buffer - use a DDIO buffer for best performance
-     // For EP4CE15 only could use a secondary PLL here, but it
-     // isn't clear it buys us a whole lot.
-     ddio_out sr_clk_out (
-			  .aclr ( 1'b0 ),
-			  .datain_l ( 1'b0 ),
-			  .datain_h ( 1'b1 ),
-			  .outclock ( sdram_clk ),
-			  .dataout ( sr_clk )
-			  );
-
    // Unused device stubs - remove when used
 
    // Reset in the video clock domain
@@ -368,8 +357,9 @@ module max80 (
 
    sdram sdram (
 		.rst_n    ( rst_n ),
+		.clk      ( sdram_clk ), // Input clock
 
-		.sr_clk   ( sdram_clk ),
+		.sr_clk   ( sr_clk ),    // Output clock buffer
 		.sr_cke   ( sr_cke ),
 		.sr_cs_n  ( sr_cs_n ),
 		.sr_ras_n ( sr_ras_n ),

Diff do ficheiro suprimidas por serem muito extensas
+ 1690 - 1690
output_files/max80.fit.eqn


Diff do ficheiro suprimidas por serem muito extensas
+ 770 - 768
output_files/max80.jam


BIN
output_files/max80.jbc


BIN
output_files/max80.jic


+ 1 - 1
output_files/max80.map

@@ -10,7 +10,7 @@ Quad-Serial configuration device dummy clock cycle: 8
 
 Notes:
 
-- Data checksum for this conversion is 0xF764C2C9
+- Data checksum for this conversion is 0xF75F1B00
 
 - All the addresses in this file are byte addresses
 

Diff do ficheiro suprimidas por serem muito extensas
+ 187 - 187
output_files/max80.map.eqn


+ 151 - 151
output_files/max80.pin

@@ -70,119 +70,119 @@ CHIP  "max80"  ASSIGNED TO AN: EP4CE15F17C8
 Pin Name/Usage               : Location  : Dir.   : I/O Standard      : Voltage : I/O Bank  : User Assignment
 -------------------------------------------------------------------------------------------------------------
 VCCIO8                       : A1        : power  :                   : 3.3V    : 8         :                
-sd_dat[1]                    : A2        : bidir  : 3.3-V LVTTL       :         : 8         : N              
-sd_cmd                       : A3        : output : 3.3-V LVTTL       :         : 8         : N              
-flash_cs_n                   : A4        : output : 3.3-V LVTTL       :         : 8         : N              
-tty_cts                      : A5        : output : 3.3-V LVTTL       :         : 8         : N              
-sr_a[11]                     : A6        : output : 3.3-V LVTTL       :         : 8         : N              
-abc_a[1]                     : A7        : input  : 3.3-V LVTTL       :         : 8         : N              
-GND+                         : A8        :        :                   :         : 8         :                
-GND+                         : A9        :        :                   :         : 7         :                
-gpio[1]                      : A10       : bidir  : 3.3-V LVTTL       :         : 7         : N              
-flash_mosi                   : A11       : output : 3.3-V LVTTL       :         : 7         : N              
-abc_a[4]                     : A12       : input  : 3.3-V LVTTL       :         : 7         : N              
-sr_a[9]                      : A13       : output : 3.3-V LVTTL       :         : 7         : N              
-GND*                         : A14       :        :                   :         : 7         :                
-abc_inp_n[1]                 : A15       : input  : 3.3-V LVTTL       :         : 7         : N              
+abc_int800_x                 : A2        : output : 3.3-V LVTTL       :         : 8         : Y              
+abc_nmi_x                    : A3        : output : 3.3-V LVTTL       :         : 8         : Y              
+sr_dq[11]                    : A4        : bidir  : 3.3-V LVTTL       :         : 8         : Y              
+sr_dq[8]                     : A5        : bidir  : 3.3-V LVTTL       :         : 8         : Y              
+sr_a[9]                      : A6        : output : 3.3-V LVTTL       :         : 8         : Y              
+sr_a[7]                      : A7        : output : 3.3-V LVTTL       :         : 8         : Y              
+abc_a[0]                     : A8        : input  : 3.3-V LVTTL       :         : 8         : Y              
+abc_a[2]                     : A9        : input  : 3.3-V LVTTL       :         : 7         : Y              
+sr_dq[7]                     : A10       : bidir  : 3.3-V LVTTL       :         : 7         : Y              
+sr_dq[5]                     : A11       : bidir  : 3.3-V LVTTL       :         : 7         : Y              
+sr_dq[0]                     : A12       : bidir  : 3.3-V LVTTL       :         : 7         : Y              
+sr_ba[0]                     : A13       : output : 3.3-V LVTTL       :         : 7         : Y              
+sr_a[0]                      : A14       : output : 3.3-V LVTTL       :         : 7         : Y              
+sr_a[3]                      : A15       : output : 3.3-V LVTTL       :         : 7         : Y              
 VCCIO7                       : A16       : power  :                   : 3.3V    : 7         :                
-abc_out_n[2]                 : B1        : input  : 3.3-V LVTTL       :         : 1         : N              
+abc_xm_x                     : B1        : output : 3.3-V LVTTL       :         : 1         : Y              
 GND                          : B2        : gnd    :                   :         :           :                
-abc_inp_n[0]                 : B3        : input  : 3.3-V LVTTL       :         : 8         : N              
-abc_a_oe                     : B4        : output : 3.3-V LVTTL       :         : 8         : N              
-tty_txd                      : B5        : input  : 3.3-V LVTTL       :         : 8         : N              
-tty_rts                      : B6        : input  : 3.3-V LVTTL       :         : 8         : N              
-abc_a[2]                     : B7        : input  : 3.3-V LVTTL       :         : 8         : N              
-GND+                         : B8        :        :                   :         : 8         :                
+abc_int80_x                  : B3        : output : 3.3-V LVTTL       :         : 8         : Y              
+abc_rdy_x                    : B4        : output : 3.3-V LVTTL       :         : 8         : Y              
+sr_dq[10]                    : B5        : bidir  : 3.3-V LVTTL       :         : 8         : Y              
+sr_a[12]                     : B6        : output : 3.3-V LVTTL       :         : 8         : Y              
+sr_a[8]                      : B7        : output : 3.3-V LVTTL       :         : 8         : Y              
+abc_a[1]                     : B8        : input  : 3.3-V LVTTL       :         : 8         : Y              
 GND+                         : B9        :        :                   :         : 7         :                
-spi_clk                      : B10       : bidir  : 3.3-V LVTTL       :         : 7         : N              
-exth_ha                      : B11       : bidir  : 3.3-V LVTTL       :         : 7         : N              
-exth_hb                      : B12       : bidir  : 3.3-V LVTTL       :         : 7         : N              
-abc_xm_x                     : B13       : output : 3.3-V LVTTL       :         : 7         : N              
-hdmi_sda                     : B14       : bidir  : 3.3-V LVTTL       :         : 7         : N              
+sr_dq[6]                     : B10       : bidir  : 3.3-V LVTTL       :         : 7         : Y              
+sr_dq[4]                     : B11       : bidir  : 3.3-V LVTTL       :         : 7         : Y              
+sr_ras_n                     : B12       : output : 3.3-V LVTTL       :         : 7         : Y              
+sr_ba[1]                     : B13       : output : 3.3-V LVTTL       :         : 7         : Y              
+sr_a[1]                      : B14       : output : 3.3-V LVTTL       :         : 7         : Y              
 GND                          : B15       : gnd    :                   :         :           :                
-exth_hd                      : B16       : bidir  : 3.3-V LVTTL       :         : 6         : N              
-flash_clk                    : C1        : output : 3.3-V LVTTL       :         : 1         : N              
-abc_out_n[3]                 : C2        : input  : 3.3-V LVTTL       :         : 1         : N              
-sd_dat[2]                    : C3        : bidir  : 3.3-V LVTTL       :         : 8         : N              
+rtc_int_n                    : B16       : input  : 3.3-V LVTTL       :         : 6         : Y              
+flash_mosi                   : C1        : output : 3.3-V LVTTL       :         : 1         : Y              
+abc_a_oe                     : C2        : output : 3.3-V LVTTL       :         : 1         : Y              
+GND*                         : C3        :        :                   :         : 8         :                
 VCCIO8                       : C4        : power  :                   : 3.3V    : 8         :                
 GND                          : C5        : gnd    :                   :         :           :                
-sd_dat[3]                    : C6        : bidir  : 3.3-V LVTTL       :         : 8         : N              
+sr_dq[14]                    : C6        : bidir  : 3.3-V LVTTL       :         : 8         : Y              
 VCCIO8                       : C7        : power  :                   : 3.3V    : 8         :                
-tty_rxd                      : C8        : output : 3.3-V LVTTL       :         : 8         : N              
-abc_a[15]                    : C9        : input  : 3.3-V LVTTL       :         : 7         : N              
+sr_a[11]                     : C8        : output : 3.3-V LVTTL       :         : 8         : Y              
+sr_a[4]                      : C9        : output : 3.3-V LVTTL       :         : 7         : Y              
 VCCIO7                       : C10       : power  :                   : 3.3V    : 7         :                
-abc_resin_x                  : C11       : output : 3.3-V LVTTL       :         : 7         : N              
+sr_dq[3]                     : C11       : bidir  : 3.3-V LVTTL       :         : 7         : Y              
 GND                          : C12       : gnd    :                   :         :           :                
 VCCIO7                       : C13       : power  :                   : 3.3V    : 7         :                
-exth_he                      : C14       : bidir  : 3.3-V LVTTL       :         : 7         : N              
-led[3]                       : C15       : output : 3.3-V LVTTL       :         : 6         : N              
-led[2]                       : C16       : output : 3.3-V LVTTL       :         : 6         : N              
-abc_int80_x                  : D1        : output : 3.3-V LVTTL       :         : 1         : N              
-GND*                         : D2        :        :                   :         : 1         :                
-rtc_int_n                    : D3        : input  : 3.3-V LVTTL       :         : 8         : N              
+sr_a[10]                     : C14       : output : 3.3-V LVTTL       :         : 7         : Y              
+i2c_sda                      : C15       : bidir  : 3.3-V LVTTL       :         : 6         : Y              
+i2c_scl                      : C16       : bidir  : 3.3-V LVTTL       :         : 6         : Y              
+abc_a[3]                     : D1        : input  : 3.3-V LVTTL       :         : 1         : Y              
+flash_cs_n                   : D2        : output : 3.3-V LVTTL       :         : 1         : Y              
+sr_clk                       : D3        : output : 3.3-V LVTTL       :         : 8         : Y              
 VCCD_PLL3                    : D4        : power  :                   : 1.2V    :           :                
-gpio[0]                      : D5        : bidir  : 3.3-V LVTTL       :         : 8         : N              
-esp_int                      : D6        : bidir  : 3.3-V LVTTL       :         : 8         : N              
+sr_dq[15]                    : D5        : bidir  : 3.3-V LVTTL       :         : 8         : Y              
+sr_dq[13]                    : D6        : bidir  : 3.3-V LVTTL       :         : 8         : Y              
 GND                          : D7        : gnd    :                   :         :           :                
-spi_mosi                     : D8        : bidir  : 3.3-V LVTTL       :         : 8         : N              
-sd_clk                       : D9        : output : 3.3-V LVTTL       :         : 7         : N              
+sr_dqm[1]                    : D8        : output : 3.3-V LVTTL       :         : 8         : Y              
+sr_a[5]                      : D9        : output : 3.3-V LVTTL       :         : 7         : Y              
 GND                          : D10       : gnd    :                   :         :           :                
-led[1]                       : D11       : output : 3.3-V LVTTL       :         : 7         : N              
-exth_hh                      : D12       : input  : 3.3-V LVTTL       :         : 7         : N              
+sr_dq[2]                     : D11       : bidir  : 3.3-V LVTTL       :         : 7         : Y              
+sr_cs_n                      : D12       : output : 3.3-V LVTTL       :         : 7         : Y              
 VCCD_PLL2                    : D13       : power  :                   : 1.2V    :           :                
-abc_nmi_x                    : D14       : output : 3.3-V LVTTL       :         : 7         : N              
-tty_dtr                      : D15       : input  : 3.3-V LVTTL       :         : 6         : N              
-abc_d_ce_n                   : D16       : output : 3.3-V LVTTL       :         : 6         : N              
-clock_48                     : E1        : input  : 2.5 V             :         : 1         : N              
+sr_a[2]                      : D14       : output : 3.3-V LVTTL       :         : 7         : Y              
+tty_cts                      : D15       : output : 3.3-V LVTTL       :         : 6         : Y              
+tty_rts                      : D16       : input  : 3.3-V LVTTL       :         : 6         : Y              
+abc_a[6]                     : E1        : input  : 3.3-V LVTTL       :         : 1         : Y              
 GND                          : E2        : gnd    :                   :         :           :                
 VCCIO1                       : E3        : power  :                   : 3.3V    : 1         :                
 GND                          : E4        : gnd    :                   :         :           :                
 GNDA3                        : E5        : gnd    :                   :         :           :                
-sr_a[0]                      : E6        : output : 3.3-V LVTTL       :         : 8         : N              
-gpio[5]                      : E7        : bidir  : 3.3-V LVTTL       :         : 8         : N              
-abc_cs_n                     : E8        : input  : 3.3-V LVTTL       :         : 8         : N              
-i2c_sda                      : E9        : bidir  : 3.3-V LVTTL       :         : 7         : N              
-gpio[4]                      : E10       : bidir  : 3.3-V LVTTL       :         : 7         : N              
-abc_out_n[4]                 : E11       : input  : 3.3-V LVTTL       :         : 7         : N              
+sr_dq[12]                    : E6        : bidir  : 3.3-V LVTTL       :         : 8         : Y              
+sr_dq[9]                     : E7        : bidir  : 3.3-V LVTTL       :         : 8         : Y              
+sr_a[6]                      : E8        : output : 3.3-V LVTTL       :         : 8         : Y              
+sr_cas_n                     : E9        : output : 3.3-V LVTTL       :         : 7         : Y              
+sr_dqm[0]                    : E10       : output : 3.3-V LVTTL       :         : 7         : Y              
+sr_dq[1]                     : E11       : bidir  : 3.3-V LVTTL       :         : 7         : Y              
 GNDA2                        : E12       : gnd    :                   :         :           :                
 GND                          : E13       : gnd    :                   :         :           :                
 VCCIO6                       : E14       : power  :                   : 3.3V    : 6         :                
-abc_a[7]                     : E15       : input  : 3.3-V LVTTL       :         : 6         : N              
-abc_a[6]                     : E16       : input  : 3.3-V LVTTL       :         : 6         : N              
-abc_master                   : F1        : output : 3.3-V LVTTL       :         : 1         : N              
-rtc_32khz                    : F2        : input  : 3.3-V LVTTL       :         : 1         : N              
-hdmi_hpd                     : F3        : bidir  : 3.3-V LVTTL       :         : 1         : N              
+rtc_32khz                    : E15       : input  : 3.3-V LVTTL       :         : 6         : Y              
+tty_txd                      : E16       : input  : 3.3-V LVTTL       :         : 6         : Y              
+abc_a[7]                     : F1        : input  : 3.3-V LVTTL       :         : 1         : Y              
+abc_cs_n                     : F2        : input  : 3.3-V LVTTL       :         : 1         : Y              
+abc_a[5]                     : F3        : input  : 3.3-V LVTTL       :         : 1         : Y              
 nSTATUS                      : F4        :        :                   :         : 1         :                
 VCCA3                        : F5        : power  :                   : 2.5V    :           :                
 GND                          : F6        : gnd    :                   :         :           :                
 VCCINT                       : F7        : power  :                   : 1.2V    :           :                
-spi_miso                     : F8        : bidir  : 3.3-V LVTTL       :         : 8         : N              
-abc_out_n[0]                 : F9        : input  : 3.3-V LVTTL       :         : 7         : N              
+sr_cke                       : F8        : output : 3.3-V LVTTL       :         : 8         : Y              
+sr_we_n                      : F9        : output : 3.3-V LVTTL       :         : 7         : Y              
 GND                          : F10       : gnd    :                   :         :           :                
 VCCINT                       : F11       : power  :                   : 1.2V    :           :                
 VCCA2                        : F12       : power  :                   : 2.5V    :           :                
-exth_hf                      : F13       : bidir  : 3.3-V LVTTL       :         : 6         : N              
-hdmi_scl                     : F14       : bidir  : 3.3-V LVTTL       :         : 6         : N              
-esp_io0                      : F15       : bidir  : 3.3-V LVTTL       :         : 6         : N              
-i2c_scl                      : F16       : bidir  : 3.3-V LVTTL       :         : 6         : N              
-flash_miso                   : G1        : input  : 3.3-V LVTTL       :         : 1         : N              
-abc_a[12]                    : G2        : input  : 3.3-V LVTTL       :         : 1         : N              
+tty_rxd                      : F13       : output : 3.3-V LVTTL       :         : 6         : Y              
+sd_dat[2]                    : F14       : bidir  : 3.3-V LVTTL       :         : 6         : Y              
+sd_dat[0]                    : F15       : bidir  : 3.3-V LVTTL       :         : 6         : Y              
+sd_dat[3]                    : F16       : bidir  : 3.3-V LVTTL       :         : 6         : Y              
+abc_a[8]                     : G1        : input  : 3.3-V LVTTL       :         : 1         : Y              
+abc_out_n[0]                 : G2        : input  : 3.3-V LVTTL       :         : 1         : Y              
 VCCIO1                       : G3        : power  :                   : 3.3V    : 1         :                
 GND                          : G4        : gnd    :                   :         :           :                
-abc_int800_x                 : G5        : output : 3.3-V LVTTL       :         : 1         : N              
+abc_a[4]                     : G5        : input  : 3.3-V LVTTL       :         : 1         : Y              
 VCCINT                       : G6        : power  :                   : 1.2V    :           :                
 VCCINT                       : G7        : power  :                   : 1.2V    :           :                
 VCCINT                       : G8        : power  :                   : 1.2V    :           :                
 VCCINT                       : G9        : power  :                   : 1.2V    :           :                
 VCCINT                       : G10       : power  :                   : 1.2V    :           :                
-sd_dat[0]                    : G11       : bidir  : 3.3-V LVTTL       :         : 6         : N              
+GND*                         : G11       :        :                   :         : 6         :                
 MSEL2                        : G12       :        :                   :         : 6         :                
 GND                          : G13       : gnd    :                   :         :           :                
 VCCIO6                       : G14       : power  :                   : 3.3V    : 6         :                
-abc_clk                      : G15       : input  : 3.3-V LVTTL       :         : 6         : N              
-exth_hc                      : G16       : input  : 3.3-V LVTTL       :         : 6         : N              
-GND*                         : H1        :        :                   :         : 1         :                
-GND*                         : H2        :        :                   :         : 1         :                
+sd_clk                       : G15       : output : 3.3-V LVTTL       :         : 6         : Y              
+sd_cmd                       : G16       : output : 3.3-V LVTTL       :         : 6         : Y              
+flash_clk                    : H1        : output : 3.3-V LVTTL       :         : 1         : Y              
+flash_miso                   : H2        : input  : 3.3-V LVTTL       :         : 1         : Y              
 TCK                          : H3        : input  :                   :         : 1         :                
 TDI                          : H4        : input  :                   :         : 1         :                
 nCONFIG                      : H5        :        :                   :         : 1         :                
@@ -197,8 +197,8 @@ MSEL0                        : H13       :        :                   :
 CONF_DONE                    : H14       :        :                   :         : 6         :                
 GND                          : H15       : gnd    :                   :         :           :                
 GND                          : H16       : gnd    :                   :         :           :                
-sr_a[12]                     : J1        : output : 3.3-V LVTTL       :         : 2         : N              
-sr_a[1]                      : J2        : output : 3.3-V LVTTL       :         : 2         : N              
+abc_a[9]                     : J1        : input  : 3.3-V LVTTL       :         : 2         : Y              
+abc_out_n[1]                 : J2        : input  : 3.3-V LVTTL       :         : 2         : Y              
 nCE                          : J3        :        :                   :         : 1         :                
 TDO                          : J4        : output :                   :         : 1         :                
 TMS                          : J5        : input  :                   :         : 1         :                
@@ -211,117 +211,117 @@ GND                          : J11       : gnd    :                   :
 GND*                         : J12       :        :                   :         : 5         :                
 GND*                         : J13       :        :                   :         : 5         :                
 GND*                         : J14       :        :                   :         : 5         :                
-hdmi_clk                     : J15       : output : LVDS              :         : 5         : N              
+hdmi_clk                     : J15       : output : LVDS              :         : 5         : Y              
 hdmi_clk(n)                  : J16       : output : LVDS              :         : 5         : N              
-sr_dq[2]                     : K1        : bidir  : 3.3-V LVTTL       :         : 2         : N              
-abc_d[2]                     : K2        : bidir  : 3.3-V LVTTL       :         : 2         : N              
+abc_a[11]                    : K1        : input  : 3.3-V LVTTL       :         : 2         : Y              
+abc_out_n[4]                 : K2        : input  : 3.3-V LVTTL       :         : 2         : Y              
 VCCIO2                       : K3        : power  :                   : 3.3V    : 2         :                
 GND                          : K4        : gnd    :                   :         :           :                
-sr_dq[14]                    : K5        : bidir  : 3.3-V LVTTL       :         : 2         : N              
-abc_a[13]                    : K6        : input  : 3.3-V LVTTL       :         : 2         : N              
+abc_out_n[2]                 : K5        : input  : 3.3-V LVTTL       :         : 2         : Y              
+GND*                         : K6        :        :                   :         : 2         :                
 VCCINT                       : K7        : power  :                   : 1.2V    :           :                
 GND                          : K8        : gnd    :                   :         :           :                
-abc_d[0]                     : K9        : bidir  : 3.3-V LVTTL       :         : 4         : N              
-abc_a[11]                    : K10       : input  : 3.3-V LVTTL       :         : 4         : N              
+GND*                         : K9        :        :                   :         : 4         :                
+GND*                         : K10       :        :                   :         : 4         :                
 VCCINT                       : K11       : power  :                   : 1.2V    :           :                
 GND*                         : K12       :        :                   :         : 5         :                
 GND                          : K13       : gnd    :                   :         :           :                
 VCCIO5                       : K14       : power  :                   : 2.5V    : 5         :                
-hdmi_d[2]                    : K15       : output : LVDS              :         : 5         : N              
-hdmi_d[2](n)                 : K16       : output : LVDS              :         : 5         : N              
-abc_a[5]                     : L1        : input  : 3.3-V LVTTL       :         : 2         : N              
-sr_dqm[1]                    : L2        : output : 3.3-V LVTTL       :         : 2         : N              
-abc_a[0]                     : L3        : input  : 3.3-V LVTTL       :         : 2         : N              
-abc_d[6]                     : L4        : bidir  : 3.3-V LVTTL       :         : 2         : N              
+hdmi_d[0]                    : K15       : output : LVDS              :         : 5         : Y              
+hdmi_d[0](n)                 : K16       : output : LVDS              :         : 5         : N              
+abc_a[12]                    : L1        : input  : 3.3-V LVTTL       :         : 2         : Y              
+abc_inp_n[0]                 : L2        : input  : 3.3-V LVTTL       :         : 2         : Y              
+abc_out_n[3]                 : L3        : input  : 3.3-V LVTTL       :         : 2         : Y              
+abc_a[10]                    : L4        : input  : 3.3-V LVTTL       :         : 2         : Y              
 VCCA1                        : L5        : power  :                   : 2.5V    :           :                
-abc_a[9]                     : L6        : input  : 3.3-V LVTTL       :         : 2         : N              
-sr_ba[0]                     : L7        : output : 3.3-V LVTTL       :         : 3         : N              
-sr_dq[4]                     : L8        : bidir  : 3.3-V LVTTL       :         : 3         : N              
-sr_dq[12]                    : L9        : bidir  : 3.3-V LVTTL       :         : 4         : N              
-abc_a[8]                     : L10       : input  : 3.3-V LVTTL       :         : 4         : N              
-abc_out_n[1]                 : L11       : input  : 3.3-V LVTTL       :         : 4         : N              
+GND*                         : L6        :        :                   :         : 2         :                
+gpio[0]                      : L7        : bidir  : 3.3-V LVTTL       :         : 3         : Y              
+esp_io0                      : L8        : bidir  : 3.3-V LVTTL       :         : 3         : Y              
+GND*                         : L9        :        :                   :         : 4         :                
+abc_xoutpstb_n               : L10       : input  : 3.3-V LVTTL       :         : 4         : Y              
+GND*                         : L11       :        :                   :         : 4         :                
 VCCA4                        : L12       : power  :                   : 2.5V    :           :                
 GND*                         : L13       :        :                   :         : 5         :                
 GND*                         : L14       :        :                   :         : 5         :                
 GND*                         : L15       :        :                   :         : 5         :                
 GND*                         : L16       :        :                   :         : 5         :                
-abc_xoutpstb_n               : M1        : input  : 3.3-V LVTTL       :         : 2         : N              
-abc_xinpstb_n                : M2        : input  : 3.3-V LVTTL       :         : 2         : N              
+abc_a[13]                    : M1        : input  : 3.3-V LVTTL       :         : 2         : Y              
+abc_inp_n[1]                 : M2        : input  : 3.3-V LVTTL       :         : 2         : Y              
 VCCIO2                       : M3        : power  :                   : 3.3V    : 2         :                
 GND                          : M4        : gnd    :                   :         :           :                
 GNDA1                        : M5        : gnd    :                   :         :           :                
-sr_dq[7]                     : M6        : bidir  : 3.3-V LVTTL       :         : 3         : N              
-sr_cas_n                     : M7        : output : 3.3-V LVTTL       :         : 3         : N              
-sr_we_n                      : M8        : output : 3.3-V LVTTL       :         : 3         : N              
-sr_dq[9]                     : M9        : bidir  : 3.3-V LVTTL       :         : 4         : N              
-abc_a[10]                    : M10       : input  : 3.3-V LVTTL       :         : 4         : N              
-spi_cs_esp_n                 : M11       : bidir  : 3.3-V LVTTL       :         : 4         : N              
+abc_d[1]                     : M6        : bidir  : 3.3-V LVTTL       :         : 3         : Y              
+spi_miso                     : M7        : bidir  : 3.3-V LVTTL       :         : 3         : Y              
+spi_mosi                     : M8        : bidir  : 3.3-V LVTTL       :         : 3         : Y              
+GND*                         : M9        :        :                   :         : 4         :                
+sd_dat[1]                    : M10       : bidir  : 3.3-V LVTTL       :         : 4         : Y              
+hdmi_scl                     : M11       : bidir  : 3.3-V LVTTL       :         : 4         : Y              
 GNDA4                        : M12       : gnd    :                   :         :           :                
 GND                          : M13       : gnd    :                   :         :           :                
 VCCIO5                       : M14       : power  :                   : 2.5V    : 5         :                
-abc_xmemw80_n                : M15       : input  : 3.3-V LVTTL       :         : 5         : N              
+clock_48                     : M15       : input  : 2.5 V             :         : 5         : Y              
 GND+                         : M16       :        :                   :         : 5         :                
-sr_ras_n                     : N1        : output : 3.3-V LVTTL       :         : 2         : N              
-sr_dq[10]                    : N2        : bidir  : 3.3-V LVTTL       :         : 2         : N              
-abc_d[3]                     : N3        : bidir  : 3.3-V LVTTL       :         : 3         : N              
+abc_a[15]                    : N1        : input  : 3.3-V LVTTL       :         : 2         : Y              
+abc_a[14]                    : N2        : input  : 3.3-V LVTTL       :         : 2         : Y              
+abc_xmemfl_n                 : N3        : input  : 3.3-V LVTTL       :         : 3         : Y              
 VCCD_PLL1                    : N4        : power  :                   : 1.2V    :           :                
-sr_a[5]                      : N5        : output : 3.3-V LVTTL       :         : 3         : N              
-sr_a[8]                      : N6        : output : 3.3-V LVTTL       :         : 3         : N              
+abc_d[2]                     : N5        : bidir  : 3.3-V LVTTL       :         : 3         : Y              
+spi_cs_flash_n               : N6        : bidir  : 3.3-V LVTTL       :         : 3         : Y              
 GND                          : N7        : gnd    :                   :         :           :                
-abc_d[4]                     : N8        : bidir  : 3.3-V LVTTL       :         : 3         : N              
-sr_dq[0]                     : N9        : bidir  : 3.3-V LVTTL       :         : 4         : N              
+spi_cs_esp_n                 : N8        : bidir  : 3.3-V LVTTL       :         : 3         : Y              
+exth_hb                      : N9        : bidir  : 3.3-V LVTTL       :         : 4         : Y              
 GND                          : N10       : gnd    :                   :         :           :                
-abc_rdy_x                    : N11       : output : 3.3-V LVTTL       :         : 4         : N              
-abc_xmemw800_n               : N12       : input  : 3.3-V LVTTL       :         : 4         : N              
+exth_hg                      : N11       : bidir  : 3.3-V LVTTL       :         : 4         : Y              
+exth_ha                      : N12       : bidir  : 3.3-V LVTTL       :         : 4         : Y              
 VCCD_PLL4                    : N13       : power  :                   : 1.2V    :           :                
 GND*                         : N14       :        :                   :         : 5         :                
-hdmi_d[1]                    : N15       : output : LVDS              :         : 5         : N              
+hdmi_d[1]                    : N15       : output : LVDS              :         : 5         : Y              
 hdmi_d[1](n)                 : N16       : output : LVDS              :         : 5         : N              
-abc_d[5]                     : P1        : bidir  : 3.3-V LVTTL       :         : 2         : N              
-sr_dq[13]                    : P2        : bidir  : 3.3-V LVTTL       :         : 2         : N              
-sr_dq[11]                    : P3        : bidir  : 3.3-V LVTTL       :         : 3         : N              
+abc_xmemw800_n               : P1        : input  : 3.3-V LVTTL       :         : 2         : Y              
+abc_rst_n                    : P2        : input  : 3.3-V LVTTL       :         : 2         : Y              
+abc_d[0]                     : P3        : bidir  : 3.3-V LVTTL       :         : 3         : Y              
 VCCIO3                       : P4        : power  :                   : 3.3V    : 3         :                
 GND                          : P5        : gnd    :                   :         :           :                
-sr_ba[1]                     : P6        : output : 3.3-V LVTTL       :         : 3         : N              
+spi_clk                      : P6        : bidir  : 3.3-V LVTTL       :         : 3         : Y              
 VCCIO3                       : P7        : power  :                   : 3.3V    : 3         :                
-sr_cs_n                      : P8        : output : 3.3-V LVTTL       :         : 3         : N              
-spi_cs_flash_n               : P9        : bidir  : 3.3-V LVTTL       :         : 4         : N              
+esp_int                      : P8        : bidir  : 3.3-V LVTTL       :         : 3         : Y              
+gpio[1]                      : P9        : bidir  : 3.3-V LVTTL       :         : 4         : Y              
 VCCIO4                       : P10       : power  :                   : 3.3V    : 4         :                
-gpio[3]                      : P11       : bidir  : 3.3-V LVTTL       :         : 4         : N              
+GND*                         : P11       :        :                   :         : 4         :                
 GND                          : P12       : gnd    :                   :         :           :                
 VCCIO4                       : P13       : power  :                   : 3.3V    : 4         :                
-sr_clk                       : P14       : output : 3.3-V LVTTL       :         : 4         : N              
+tty_dtr                      : P14       : input  : 3.3-V LVTTL       :         : 4         : Y              
 GND*                         : P15       :        :                   :         : 5         :                
-hdmi_d[0](n)                 : P16       : output : LVDS              :         : 5         : N              
-sr_a[7]                      : R1        : output : 3.3-V LVTTL       :         : 2         : N              
+hdmi_d[2](n)                 : P16       : output : LVDS              :         : 5         : N              
+abc_xmemw80_n                : R1        : input  : 3.3-V LVTTL       :         : 2         : Y              
 GND                          : R2        : gnd    :                   :         :           :                
-sr_dq[3]                     : R3        : bidir  : 3.3-V LVTTL       :         : 3         : N              
-abc_d[7]                     : R4        : bidir  : 3.3-V LVTTL       :         : 3         : N              
-abc_d[1]                     : R5        : bidir  : 3.3-V LVTTL       :         : 3         : N              
-sr_a[3]                      : R6        : output : 3.3-V LVTTL       :         : 3         : N              
-sr_dq[1]                     : R7        : bidir  : 3.3-V LVTTL       :         : 3         : N              
-GND+                         : R8        :        :                   :         : 3         :                
+abc_d[4]                     : R3        : bidir  : 3.3-V LVTTL       :         : 3         : Y              
+abc_d[6]                     : R4        : bidir  : 3.3-V LVTTL       :         : 3         : Y              
+abc_d_ce_n                   : R5        : output : 3.3-V LVTTL       :         : 3         : Y              
+abc_resin_x                  : R6        : output : 3.3-V LVTTL       :         : 3         : Y              
+gpio[5]                      : R7        : bidir  : 3.3-V LVTTL       :         : 3         : Y              
+exth_hh                      : R8        : input  : 3.3-V LVTTL       :         : 3         : Y              
 GND+                         : R9        :        :                   :         : 4         :                
-sr_dq[15]                    : R10       : bidir  : 3.3-V LVTTL       :         : 4         : N              
-sr_dq[8]                     : R11       : bidir  : 3.3-V LVTTL       :         : 4         : N              
-sr_a[10]                     : R12       : output : 3.3-V LVTTL       :         : 4         : N              
-sr_cke                       : R13       : output : 3.3-V LVTTL       :         : 4         : N              
-abc_rst_n                    : R14       : input  : 3.3-V LVTTL       :         : 4         : N              
+gpio[3]                      : R10       : bidir  : 3.3-V LVTTL       :         : 4         : Y              
+exth_hd                      : R11       : bidir  : 3.3-V LVTTL       :         : 4         : Y              
+exth_he                      : R12       : bidir  : 3.3-V LVTTL       :         : 4         : Y              
+hdmi_sda                     : R13       : bidir  : 3.3-V LVTTL       :         : 4         : Y              
+led[2]                       : R14       : output : 3.3-V LVTTL       :         : 4         : Y              
 GND                          : R15       : gnd    :                   :         :           :                
-hdmi_d[0]                    : R16       : output : LVDS              :         : 5         : N              
+hdmi_d[2]                    : R16       : output : LVDS              :         : 5         : Y              
 VCCIO3                       : T1        : power  :                   : 3.3V    : 3         :                
-sr_dqm[0]                    : T2        : output : 3.3-V LVTTL       :         : 3         : N              
-sr_dq[5]                     : T3        : bidir  : 3.3-V LVTTL       :         : 3         : N              
-sr_dq[6]                     : T4        : bidir  : 3.3-V LVTTL       :         : 3         : N              
-sr_a[4]                      : T5        : output : 3.3-V LVTTL       :         : 3         : N              
-sr_a[6]                      : T6        : output : 3.3-V LVTTL       :         : 3         : N              
-sr_a[2]                      : T7        : output : 3.3-V LVTTL       :         : 3         : N              
-GND+                         : T8        :        :                   :         : 3         :                
-GND+                         : T9        :        :                   :         : 4         :                
-abc_d_oe                     : T10       : output : 3.3-V LVTTL       :         : 4         : N              
-abc_xmemfl_n                 : T11       : input  : 3.3-V LVTTL       :         : 4         : N              
-abc_a[3]                     : T12       : input  : 3.3-V LVTTL       :         : 4         : N              
-abc_a[14]                    : T13       : input  : 3.3-V LVTTL       :         : 4         : N              
-gpio[2]                      : T14       : bidir  : 3.3-V LVTTL       :         : 4         : N              
-exth_hg                      : T15       : bidir  : 3.3-V LVTTL       :         : 4         : N              
+abc_d[3]                     : T2        : bidir  : 3.3-V LVTTL       :         : 3         : Y              
+abc_d[5]                     : T3        : bidir  : 3.3-V LVTTL       :         : 3         : Y              
+abc_d[7]                     : T4        : bidir  : 3.3-V LVTTL       :         : 3         : Y              
+abc_d_oe                     : T5        : output : 3.3-V LVTTL       :         : 3         : Y              
+gpio[2]                      : T6        : bidir  : 3.3-V LVTTL       :         : 3         : Y              
+gpio[4]                      : T7        : bidir  : 3.3-V LVTTL       :         : 3         : Y              
+abc_clk                      : T8        : input  : 3.3-V LVTTL       :         : 3         : Y              
+exth_hc                      : T9        : input  : 3.3-V LVTTL       :         : 4         : Y              
+abc_master                   : T10       : output : 3.3-V LVTTL       :         : 4         : Y              
+exth_hf                      : T11       : bidir  : 3.3-V LVTTL       :         : 4         : Y              
+abc_xinpstb_n                : T12       : input  : 3.3-V LVTTL       :         : 4         : Y              
+led[1]                       : T13       : output : 3.3-V LVTTL       :         : 4         : Y              
+led[3]                       : T14       : output : 3.3-V LVTTL       :         : 4         : Y              
+hdmi_hpd                     : T15       : bidir  : 3.3-V LVTTL       :         : 4         : Y              
 VCCIO4                       : T16       : power  :                   : 3.3V    : 4         :                

BIN
output_files/max80.pof


BIN
output_files/max80.sof


+ 36 - 19
sdram.sv

@@ -25,16 +25,17 @@
 //
 
 module sdram (
-	      // Reset
-	      input	    rst_n,
+	      // Reset and clock
+	      input 	    rst_n,
+	      input 	    clk,
 
 	      // SDRAM hardware interface
-	      input	    sr_clk, // SDRAM clock (125 MHz)
-	      output	    sr_cke, // SDRAM clock enable
-	      output	    sr_cs_n, // SDRAM CS#
-	      output	    sr_ras_n, // SDRAM RAS#
-	      output	    sr_cas_n, // SDRAM CAS#
-	      output	    sr_we_n, // SDRAM WE#
+	      output 	    sr_clk, // SDRAM clock output buffer
+	      output 	    sr_cke, // SDRAM clock enable
+	      output 	    sr_cs_n, // SDRAM CS#
+	      output 	    sr_ras_n, // SDRAM RAS#
+	      output 	    sr_cas_n, // SDRAM CAS#
+	      output 	    sr_we_n, // SDRAM WE#
 	      output [1:0]  sr_dqm, // SDRAM DQM (per byte)
 	      output [1:0]  sr_ba, // SDRAM bank selects
 	      output [12:0] sr_a, // SDRAM address bus
@@ -44,24 +45,24 @@ module sdram (
 	      input [24:0]  a0, // Address, must be stable until ack
 
 	      output [7:0]  rd0, // Data from SDRAM
-	      input	    rrq0, // Read request
-	      output	    rack0, // Read ack
+	      input 	    rrq0, // Read request
+	      output 	    rack0, // Read ack
 
 	      input [7:0]   wd0, // Data to SDRAM
-	      input	    wrq0, // Write request
-	      output	    wack0, // Write ack
+	      input 	    wrq0, // Write request
+	      output 	    wack0, // Write ack
 
 	      // Port 1
 	      input [24:1]  a1,
 
 	      output [15:0] rd1,
-	      input	    rrq1,
-	      output	    rack1,
+	      input 	    rrq1,
+	      output 	    rack1,
 
 	      input [15:0]  wd1,
-	      input [1:0]   wbe1,	// Write byte enable
-	      input	    wrq1,
-	      output	    wack1
+	      input [1:0]   wbe1, // Write byte enable
+	      input 	    wrq1,
+	      output 	    wack1
 	      );
 
    //  Timing parameters
@@ -133,6 +134,22 @@ module sdram (
    parameter		    cmd_ref  = 4'b0001; // AUTO REFRESH
    parameter		    cmd_mrd  = 4'b0000; // LOAD MODE REGISTER
 
+   // SDRAM output clock buffer. The SDRAM output clock is
+   // inverted with respect to our internal clock, so that
+   // the SDRAM sees the positive clock edge in the middle of
+   // our clocks.
+   //
+   // Use a DDIO buffer for best performance
+   // For EP4CE15 only could use a secondary PLL here, but it
+   // isn't clear it buys us a whole lot.
+   ddio_out sr_clk_out (
+			.aclr ( 1'b0 ),
+			.datain_h ( 1'b0 ),
+			.datain_l ( 1'b1 ),
+			.outclock ( clk ),
+			.dataout ( sr_clk )
+			);
+   
    // SDRAM output signal registers
    reg			    dram_cke;
    assign		    sr_cke = dram_cke;
@@ -194,7 +211,7 @@ module sdram (
 
    reg is_rfsh; // A refresh cycle, clear rfsh_ctr
 
-   always @(posedge sr_clk or negedge rst_n)
+   always @(posedge clk or negedge rst_n)
      if (~rst_n)
        begin
 	  rfsh_ctr <= 1'b0;
@@ -221,7 +238,7 @@ module sdram (
    // registers and wires, and the DRAM observes the clock 1/2
    // cycle from the internal logic.
    //
-   always @(posedge sr_clk or negedge rst_n)
+   always @(posedge clk or negedge rst_n)
      if (~rst_n)
        begin
 	  dram_cke      <= 1'b0;

Alguns ficheiros não foram mostrados porque muitos ficheiros mudaram neste diff