VC707 Shell : Make DDR and PCIe optional, mixed into Shell with traits. Also add MMCM to provide 65Mhz (and multiples) clock
This commit is contained in:
		| @@ -188,11 +188,11 @@ object PowerOnResetFPGAOnly { | ||||
| } | ||||
|  | ||||
| //------------------------------------------------------------------------- | ||||
| // vc707clk_wiz_sync | ||||
| // vc707_sys_clock_mmcm | ||||
| //------------------------------------------------------------------------- | ||||
| //IP : xilinx mmcm with "NO_BUFFER" input clock | ||||
|  | ||||
| class vc707clk_wiz_sync extends BlackBox { | ||||
| class vc707_sys_clock_mmcm0 extends BlackBox { | ||||
|   val io = new Bundle { | ||||
|     val clk_in1   = Bool(INPUT) | ||||
|     val clk_out1  = Clock(OUTPUT) | ||||
| @@ -207,8 +207,8 @@ class vc707clk_wiz_sync extends BlackBox { | ||||
|   } | ||||
|    | ||||
|   ElaborationArtefacts.add( | ||||
|     "vc707clk_wiz_sync.vivado.tcl", | ||||
|     """create_ip -name clk_wiz -vendor xilinx.com -library ip -version 5.3 -module_name vc707clk_wiz_sync -dir $ipdir -force | ||||
|     "vc707_sys_clock_mmcm0.vivado.tcl", | ||||
|     """create_ip -name clk_wiz -vendor xilinx.com -library ip -module_name vc707_sys_clock_mmcm0 -dir $ipdir -force | ||||
|     set_property -dict [list \ | ||||
|     CONFIG.CLK_IN1_BOARD_INTERFACE {Custom} \ | ||||
|     CONFIG.PRIM_SOURCE {No_buffer} \ | ||||
| @@ -252,7 +252,54 @@ class vc707clk_wiz_sync extends BlackBox { | ||||
|     CONFIG.CLKOUT6_JITTER {102.207} \ | ||||
|     CONFIG.CLKOUT6_PHASE_ERROR {91.235} \ | ||||
|     CONFIG.CLKOUT7_JITTER {117.249} \ | ||||
|     CONFIG.CLKOUT7_PHASE_ERROR {91.235}] [get_ips vc707clk_wiz_sync] """ | ||||
|     CONFIG.CLKOUT7_PHASE_ERROR {91.235}] [get_ips vc707_sys_clock_mmcm0] """ | ||||
|   ) | ||||
| } | ||||
|  | ||||
| class vc707_sys_clock_mmcm1 extends BlackBox { | ||||
|   val io = new Bundle { | ||||
|     val clk_in1   = Bool(INPUT) | ||||
|     val clk_out1  = Clock(OUTPUT) | ||||
|     val clk_out2  = Clock(OUTPUT) | ||||
|     val reset     = Bool(INPUT) | ||||
|     val locked    = Bool(OUTPUT) | ||||
|   } | ||||
|    | ||||
|   ElaborationArtefacts.add( | ||||
|     "vc707_sys_clock_mmcm1.vivado.tcl", | ||||
|     """create_ip -name clk_wiz -vendor xilinx.com -library ip -module_name vc707_sys_clock_mmcm1 -dir $ipdir -force | ||||
|     set_property -dict [list \ | ||||
|     CONFIG.CLK_IN1_BOARD_INTERFACE {Custom} \ | ||||
|     CONFIG.PRIM_SOURCE {No_buffer} \ | ||||
|     CONFIG.CLKOUT2_USED {true} \ | ||||
|     CONFIG.CLKOUT3_USED {false} \ | ||||
|     CONFIG.CLKOUT4_USED {false} \ | ||||
|     CONFIG.CLKOUT5_USED {false} \ | ||||
|     CONFIG.CLKOUT6_USED {false} \ | ||||
|     CONFIG.CLKOUT7_USED {false} \ | ||||
|     CONFIG.CLKOUT1_REQUESTED_OUT_FREQ {32.5} \ | ||||
|     CONFIG.CLKOUT2_REQUESTED_OUT_FREQ {65} \ | ||||
|     CONFIG.CLK_IN1_BOARD_INTERFACE {Custom} \ | ||||
|     CONFIG.PRIM_IN_FREQ {200.000} \ | ||||
|     CONFIG.CLKIN1_JITTER_PS {50.0} \ | ||||
|     CONFIG.MMCM_DIVCLK_DIVIDE {1} \ | ||||
|     CONFIG.MMCM_CLKFBOUT_MULT_F {4.875} \ | ||||
|     CONFIG.MMCM_CLKIN1_PERIOD {5.0} \ | ||||
|     CONFIG.MMCM_CLKOUT0_DIVIDE_F {30.000} \ | ||||
|     CONFIG.MMCM_CLKOUT1_DIVIDE {15} \ | ||||
|     CONFIG.MMCM_CLKOUT2_DIVIDE {1} \ | ||||
|     CONFIG.MMCM_CLKOUT3_DIVIDE {1} \ | ||||
|     CONFIG.MMCM_CLKOUT4_DIVIDE {1} \ | ||||
|     CONFIG.MMCM_CLKOUT5_DIVIDE {1} \ | ||||
|     CONFIG.MMCM_CLKOUT6_DIVIDE {1} \ | ||||
|     CONFIG.NUM_OUT_CLKS {2} \ | ||||
|     CONFIG.CLKOUT1_JITTER {135.973} \ | ||||
|     CONFIG.CLKOUT1_PHASE_ERROR {87.159} \ | ||||
|     CONFIG.CLKOUT2_JITTER {117.878} \ | ||||
|     CONFIG.CLKOUT2_PHASE_ERROR {87.159} \ | ||||
|     CONFIG.CLKOUT3_JITTER {131.973} \ | ||||
|     CONFIG.CLKOUT3_PHASE_ERROR {87.159}] \ | ||||
|     [get_ips vc707_sys_clock_mmcm1] """ | ||||
|   ) | ||||
| } | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user