chiplink: add pinout (#20)
This commit is contained in:
		
				
					committed by
					
						 GitHub
						GitHub
					
				
			
			
				
	
			
			
			
						parent
						
							0ca9f2bb66
						
					
				
				
					commit
					080119ec7a
				
			| @@ -7,11 +7,12 @@ import chisel3.experimental.{RawModule, Analog, withClockAndReset} | ||||
|  | ||||
| import freechips.rocketchip.config._ | ||||
| import freechips.rocketchip.devices.debug._ | ||||
| import freechips.rocketchip.util.{SyncResetSynchronizerShiftReg, ElaborationArtefacts} | ||||
| import freechips.rocketchip.util.{SyncResetSynchronizerShiftReg, ElaborationArtefacts, HeterogeneousBag} | ||||
|  | ||||
| import sifive.blocks.devices.gpio._ | ||||
| import sifive.blocks.devices.spi._ | ||||
| import sifive.blocks.devices.uart._ | ||||
| import sifive.blocks.devices.chiplink._ | ||||
|  | ||||
| import sifive.fpgashells.devices.xilinx.xilinxvc707mig._ | ||||
| import sifive.fpgashells.devices.xilinx.xilinxvc707pciex1._ | ||||
| @@ -119,6 +120,262 @@ trait HasDebugJTAG { this: VC707Shell => | ||||
|   } | ||||
| } | ||||
|  | ||||
| trait HasVC707ChipLink { this: VC707Shell => | ||||
|  | ||||
|   val chiplink = IO(new WideDataLayerPort(ChipLinkParams(Nil,Nil))) | ||||
|   val ereset_n = IO(Bool(INPUT)) | ||||
|  | ||||
|   def constrainChipLink(iofpga: Boolean = false): Unit = { | ||||
|     val direction0Pins = if(iofpga) "chiplink_b2c"  else "chiplink_c2b" | ||||
|     val direction1Pins = if(iofpga) "chiplink_c2b"  else "chiplink_b2c" | ||||
|  | ||||
|     ElaborationArtefacts.add( | ||||
|       """vc707chiplink.vivado.tcl""", | ||||
|       """set vc707chiplink_vivado_tcl_dir [file dirname [file normalize [info script]]] | ||||
|          add_files -fileset [current_fileset -constrset] [glob -directory $vc707chiplink_vivado_tcl_dir {*.vc707chiplink.xdc}]""" | ||||
|     ) | ||||
|  | ||||
|     ElaborationArtefacts.add( | ||||
|       """vc707chiplink.xdc""", | ||||
|       """set_property PACKAGE_PIN AF39 [get_ports """ ++  direction0Pins ++ """_clk] | ||||
|         set_property PACKAGE_PIN AD40 [get_ports {""" ++ direction0Pins ++ """_data[0]}] | ||||
|         set_property PACKAGE_PIN AD41 [get_ports {""" ++ direction0Pins ++ """_data[1]}] | ||||
|         set_property PACKAGE_PIN AF41 [get_ports {""" ++ direction0Pins ++ """_data[2]}] | ||||
|         set_property PACKAGE_PIN AG41 [get_ports {""" ++ direction0Pins ++ """_data[3]}] | ||||
|         set_property PACKAGE_PIN AK39 [get_ports {""" ++ direction0Pins ++ """_data[4]}] | ||||
|         set_property PACKAGE_PIN AL39 [get_ports {""" ++ direction0Pins ++ """_data[5]}] | ||||
|         set_property PACKAGE_PIN AJ42 [get_ports {""" ++ direction0Pins ++ """_data[6]}] | ||||
|         set_property PACKAGE_PIN AK42 [get_ports {""" ++ direction0Pins ++ """_data[7]}] | ||||
|         set_property PACKAGE_PIN AL41 [get_ports {""" ++ direction0Pins ++ """_data[8]}] | ||||
|         set_property PACKAGE_PIN AL42 [get_ports {""" ++ direction0Pins ++ """_data[9]}] | ||||
|         set_property PACKAGE_PIN AF42 [get_ports {""" ++ direction0Pins ++ """_data[10]}] | ||||
|         set_property PACKAGE_PIN AG42 [get_ports {""" ++ direction0Pins ++ """_data[11]}] | ||||
|         set_property PACKAGE_PIN AD38 [get_ports {""" ++ direction0Pins ++ """_data[12]}] | ||||
|         set_property PACKAGE_PIN AE38 [get_ports {""" ++ direction0Pins ++ """_data[13]}] | ||||
|         set_property PACKAGE_PIN AC40 [get_ports {""" ++ direction0Pins ++ """_data[14]}] | ||||
|         set_property PACKAGE_PIN AC41 [get_ports {""" ++ direction0Pins ++ """_data[15]}] | ||||
|         set_property PACKAGE_PIN AD42 [get_ports {""" ++ direction0Pins ++ """_data[16]}] | ||||
|         set_property PACKAGE_PIN AE42 [get_ports {""" ++ direction0Pins ++ """_data[17]}] | ||||
|         set_property PACKAGE_PIN AJ38 [get_ports {""" ++ direction0Pins ++ """_data[18]}] | ||||
|         set_property PACKAGE_PIN AK38 [get_ports {""" ++ direction0Pins ++ """_data[19]}] | ||||
|         set_property PACKAGE_PIN AB41 [get_ports {""" ++ direction0Pins ++ """_data[20]}] | ||||
|         set_property PACKAGE_PIN AB42 [get_ports {""" ++ direction0Pins ++ """_data[21]}] | ||||
|         set_property PACKAGE_PIN Y42  [get_ports {""" ++ direction0Pins ++ """_data[22]}] | ||||
|         set_property PACKAGE_PIN AA42 [get_ports {""" ++ direction0Pins ++ """_data[23]}] | ||||
|         set_property PACKAGE_PIN Y39  [get_ports {""" ++ direction0Pins ++ """_data[24]}] | ||||
|         set_property PACKAGE_PIN AA39 [get_ports {""" ++ direction0Pins ++ """_data[25]}] | ||||
|         set_property PACKAGE_PIN W40  [get_ports {""" ++ direction0Pins ++ """_data[26]}] | ||||
|         set_property PACKAGE_PIN Y40  [get_ports {""" ++ direction0Pins ++ """_data[27]}] | ||||
|         set_property PACKAGE_PIN AB38 [get_ports {""" ++ direction0Pins ++ """_data[28]}] | ||||
|         set_property PACKAGE_PIN AB39 [get_ports {""" ++ direction0Pins ++ """_data[29]}] | ||||
|         set_property PACKAGE_PIN AC38 [get_ports {""" ++ direction0Pins ++ """_data[30]}] | ||||
|         set_property PACKAGE_PIN AC39 [get_ports {""" ++ direction0Pins ++ """_data[31]}] | ||||
|         set_property PACKAGE_PIN AJ40 [get_ports """ ++ direction0Pins ++ """_send] | ||||
|         set_property PACKAGE_PIN AJ41 [get_ports """ ++ direction0Pins ++ """_rst] | ||||
|  | ||||
|         set_property PACKAGE_PIN U39 [get_ports """ ++ direction1Pins ++ """_clk] | ||||
|         set_property PACKAGE_PIN U37 [get_ports {""" ++ direction1Pins ++ """_data[0]}] | ||||
|         set_property PACKAGE_PIN U38 [get_ports {""" ++ direction1Pins ++ """_data[1]}] | ||||
|         set_property PACKAGE_PIN U36 [get_ports {""" ++ direction1Pins ++ """_data[2]}] | ||||
|         set_property PACKAGE_PIN T37 [get_ports {""" ++ direction1Pins ++ """_data[3]}] | ||||
|         set_property PACKAGE_PIN U32 [get_ports {""" ++ direction1Pins ++ """_data[4]}] | ||||
|         set_property PACKAGE_PIN U33 [get_ports {""" ++ direction1Pins ++ """_data[5]}] | ||||
|         set_property PACKAGE_PIN V33 [get_ports {""" ++ direction1Pins ++ """_data[6]}] | ||||
|         set_property PACKAGE_PIN V34 [get_ports {""" ++ direction1Pins ++ """_data[7]}] | ||||
|         set_property PACKAGE_PIN P35 [get_ports {""" ++ direction1Pins ++ """_data[8]}] | ||||
|         set_property PACKAGE_PIN P36 [get_ports {""" ++ direction1Pins ++ """_data[9]}] | ||||
|         set_property PACKAGE_PIN W32 [get_ports {""" ++ direction1Pins ++ """_data[10]}] | ||||
|         set_property PACKAGE_PIN W33 [get_ports {""" ++ direction1Pins ++ """_data[11]}] | ||||
|         set_property PACKAGE_PIN R38 [get_ports {""" ++ direction1Pins ++ """_data[12]}] | ||||
|         set_property PACKAGE_PIN R39 [get_ports {""" ++ direction1Pins ++ """_data[13]}] | ||||
|         set_property PACKAGE_PIN U34 [get_ports {""" ++ direction1Pins ++ """_data[14]}] | ||||
|         set_property PACKAGE_PIN T35 [get_ports {""" ++ direction1Pins ++ """_data[15]}] | ||||
|         set_property PACKAGE_PIN R33 [get_ports {""" ++ direction1Pins ++ """_data[16]}] | ||||
|         set_property PACKAGE_PIN R34 [get_ports {""" ++ direction1Pins ++ """_data[17]}] | ||||
|         set_property PACKAGE_PIN N33 [get_ports {""" ++ direction1Pins ++ """_data[18]}] | ||||
|         set_property PACKAGE_PIN N34 [get_ports {""" ++ direction1Pins ++ """_data[19]}] | ||||
|         set_property PACKAGE_PIN P32 [get_ports {""" ++ direction1Pins ++ """_data[20]}] | ||||
|         set_property PACKAGE_PIN P33 [get_ports {""" ++ direction1Pins ++ """_data[21]}] | ||||
|         set_property PACKAGE_PIN V35 [get_ports {""" ++ direction1Pins ++ """_data[22]}] | ||||
|         set_property PACKAGE_PIN V36 [get_ports {""" ++ direction1Pins ++ """_data[23]}] | ||||
|         set_property PACKAGE_PIN W36 [get_ports {""" ++ direction1Pins ++ """_data[24]}] | ||||
|         set_property PACKAGE_PIN W37 [get_ports {""" ++ direction1Pins ++ """_data[25]}] | ||||
|         set_property PACKAGE_PIN T32 [get_ports {""" ++ direction1Pins ++ """_data[26]}] | ||||
|         set_property PACKAGE_PIN R32 [get_ports {""" ++ direction1Pins ++ """_data[27]}] | ||||
|         set_property PACKAGE_PIN V39 [get_ports {""" ++ direction1Pins ++ """_data[28]}] | ||||
|         set_property PACKAGE_PIN V40 [get_ports {""" ++ direction1Pins ++ """_data[29]}] | ||||
|         set_property PACKAGE_PIN P37 [get_ports {""" ++ direction1Pins ++ """_data[30]}] | ||||
|         set_property PACKAGE_PIN P38 [get_ports {""" ++ direction1Pins ++ """_data[31]}] | ||||
|         set_property PACKAGE_PIN T36 [get_ports """ ++ direction1Pins ++ """_send] | ||||
|         set_property PACKAGE_PIN R37 [get_ports """ ++ direction1Pins ++ """_rst] | ||||
|  | ||||
|         set_property IOSTANDARD LVCMOS18 [get_ports {""" ++ direction0Pins ++ """_data[31]}] | ||||
|         set_property IOSTANDARD LVCMOS18 [get_ports {""" ++ direction0Pins ++ """_data[30]}] | ||||
|         set_property IOSTANDARD LVCMOS18 [get_ports {""" ++ direction0Pins ++ """_data[29]}] | ||||
|         set_property IOSTANDARD LVCMOS18 [get_ports {""" ++ direction0Pins ++ """_data[28]}] | ||||
|         set_property IOSTANDARD LVCMOS18 [get_ports {""" ++ direction0Pins ++ """_data[27]}] | ||||
|         set_property IOSTANDARD LVCMOS18 [get_ports {""" ++ direction0Pins ++ """_data[26]}] | ||||
|         set_property IOSTANDARD LVCMOS18 [get_ports {""" ++ direction0Pins ++ """_data[25]}] | ||||
|         set_property IOSTANDARD LVCMOS18 [get_ports {""" ++ direction0Pins ++ """_data[24]}] | ||||
|         set_property IOSTANDARD LVCMOS18 [get_ports {""" ++ direction0Pins ++ """_data[23]}] | ||||
|         set_property IOSTANDARD LVCMOS18 [get_ports {""" ++ direction0Pins ++ """_data[22]}] | ||||
|         set_property IOSTANDARD LVCMOS18 [get_ports {""" ++ direction0Pins ++ """_data[21]}] | ||||
|         set_property IOSTANDARD LVCMOS18 [get_ports {""" ++ direction0Pins ++ """_data[20]}] | ||||
|         set_property IOSTANDARD LVCMOS18 [get_ports {""" ++ direction0Pins ++ """_data[19]}] | ||||
|         set_property IOSTANDARD LVCMOS18 [get_ports {""" ++ direction0Pins ++ """_data[18]}] | ||||
|         set_property IOSTANDARD LVCMOS18 [get_ports {""" ++ direction0Pins ++ """_data[17]}] | ||||
|         set_property IOSTANDARD LVCMOS18 [get_ports {""" ++ direction0Pins ++ """_data[16]}] | ||||
|         set_property IOSTANDARD LVCMOS18 [get_ports {""" ++ direction0Pins ++ """_data[15]}] | ||||
|         set_property IOSTANDARD LVCMOS18 [get_ports {""" ++ direction0Pins ++ """_data[14]}] | ||||
|         set_property IOSTANDARD LVCMOS18 [get_ports {""" ++ direction0Pins ++ """_data[13]}] | ||||
|         set_property IOSTANDARD LVCMOS18 [get_ports {""" ++ direction0Pins ++ """_data[12]}] | ||||
|         set_property IOSTANDARD LVCMOS18 [get_ports {""" ++ direction0Pins ++ """_data[11]}] | ||||
|         set_property IOSTANDARD LVCMOS18 [get_ports {""" ++ direction0Pins ++ """_data[10]}] | ||||
|         set_property IOSTANDARD LVCMOS18 [get_ports {""" ++ direction0Pins ++ """_data[9]}] | ||||
|         set_property IOSTANDARD LVCMOS18 [get_ports {""" ++ direction0Pins ++ """_data[8]}] | ||||
|         set_property IOSTANDARD LVCMOS18 [get_ports {""" ++ direction0Pins ++ """_data[7]}] | ||||
|         set_property IOSTANDARD LVCMOS18 [get_ports {""" ++ direction0Pins ++ """_data[6]}] | ||||
|         set_property IOSTANDARD LVCMOS18 [get_ports {""" ++ direction0Pins ++ """_data[5]}] | ||||
|         set_property IOSTANDARD LVCMOS18 [get_ports {""" ++ direction0Pins ++ """_data[4]}] | ||||
|         set_property IOSTANDARD LVCMOS18 [get_ports {""" ++ direction0Pins ++ """_data[3]}] | ||||
|         set_property IOSTANDARD LVCMOS18 [get_ports {""" ++ direction0Pins ++ """_data[2]}] | ||||
|         set_property IOSTANDARD LVCMOS18 [get_ports {""" ++ direction0Pins ++ """_data[1]}] | ||||
|         set_property IOSTANDARD LVCMOS18 [get_ports {""" ++ direction0Pins ++ """_data[0]}] | ||||
|         set_property IOSTANDARD LVCMOS18 [get_ports {""" ++ direction1Pins ++ """_data[31]}] | ||||
|         set_property IOSTANDARD LVCMOS18 [get_ports {""" ++ direction1Pins ++ """_data[30]}] | ||||
|         set_property IOSTANDARD LVCMOS18 [get_ports {""" ++ direction1Pins ++ """_data[29]}] | ||||
|         set_property IOSTANDARD LVCMOS18 [get_ports {""" ++ direction1Pins ++ """_data[28]}] | ||||
|         set_property IOSTANDARD LVCMOS18 [get_ports {""" ++ direction1Pins ++ """_data[27]}] | ||||
|         set_property IOSTANDARD LVCMOS18 [get_ports {""" ++ direction1Pins ++ """_data[26]}] | ||||
|         set_property IOSTANDARD LVCMOS18 [get_ports {""" ++ direction1Pins ++ """_data[25]}] | ||||
|         set_property IOSTANDARD LVCMOS18 [get_ports {""" ++ direction1Pins ++ """_data[24]}] | ||||
|         set_property IOSTANDARD LVCMOS18 [get_ports {""" ++ direction1Pins ++ """_data[23]}] | ||||
|         set_property IOSTANDARD LVCMOS18 [get_ports {""" ++ direction1Pins ++ """_data[22]}] | ||||
|         set_property IOSTANDARD LVCMOS18 [get_ports {""" ++ direction1Pins ++ """_data[21]}] | ||||
|         set_property IOSTANDARD LVCMOS18 [get_ports {""" ++ direction1Pins ++ """_data[20]}] | ||||
|         set_property IOSTANDARD LVCMOS18 [get_ports {""" ++ direction1Pins ++ """_data[19]}] | ||||
|         set_property IOSTANDARD LVCMOS18 [get_ports {""" ++ direction1Pins ++ """_data[18]}] | ||||
|         set_property IOSTANDARD LVCMOS18 [get_ports {""" ++ direction1Pins ++ """_data[17]}] | ||||
|         set_property IOSTANDARD LVCMOS18 [get_ports {""" ++ direction1Pins ++ """_data[16]}] | ||||
|         set_property IOSTANDARD LVCMOS18 [get_ports {""" ++ direction1Pins ++ """_data[15]}] | ||||
|         set_property IOSTANDARD LVCMOS18 [get_ports {""" ++ direction1Pins ++ """_data[14]}] | ||||
|         set_property IOSTANDARD LVCMOS18 [get_ports {""" ++ direction1Pins ++ """_data[13]}] | ||||
|         set_property IOSTANDARD LVCMOS18 [get_ports {""" ++ direction1Pins ++ """_data[12]}] | ||||
|         set_property IOSTANDARD LVCMOS18 [get_ports {""" ++ direction1Pins ++ """_data[11]}] | ||||
|         set_property IOSTANDARD LVCMOS18 [get_ports {""" ++ direction1Pins ++ """_data[10]}] | ||||
|         set_property IOSTANDARD LVCMOS18 [get_ports {""" ++ direction1Pins ++ """_data[9]}] | ||||
|         set_property IOSTANDARD LVCMOS18 [get_ports {""" ++ direction1Pins ++ """_data[8]}] | ||||
|         set_property IOSTANDARD LVCMOS18 [get_ports {""" ++ direction1Pins ++ """_data[7]}] | ||||
|         set_property IOSTANDARD LVCMOS18 [get_ports {""" ++ direction1Pins ++ """_data[6]}] | ||||
|         set_property IOSTANDARD LVCMOS18 [get_ports {""" ++ direction1Pins ++ """_data[5]}] | ||||
|         set_property IOSTANDARD LVCMOS18 [get_ports {""" ++ direction1Pins ++ """_data[4]}] | ||||
|         set_property IOSTANDARD LVCMOS18 [get_ports {""" ++ direction1Pins ++ """_data[3]}] | ||||
|         set_property IOSTANDARD LVCMOS18 [get_ports {""" ++ direction1Pins ++ """_data[2]}] | ||||
|         set_property IOSTANDARD LVCMOS18 [get_ports {""" ++ direction1Pins ++ """_data[1]}] | ||||
|         set_property IOSTANDARD LVCMOS18 [get_ports {""" ++ direction1Pins ++ """_data[0]}] | ||||
|         set_property SLEW FAST [get_ports {""" ++ direction1Pins ++ """_data[31]}] | ||||
|         set_property SLEW FAST [get_ports {""" ++ direction1Pins ++ """_data[30]}] | ||||
|         set_property SLEW FAST [get_ports {""" ++ direction1Pins ++ """_data[29]}] | ||||
|         set_property SLEW FAST [get_ports {""" ++ direction1Pins ++ """_data[28]}] | ||||
|         set_property SLEW FAST [get_ports {""" ++ direction1Pins ++ """_data[27]}] | ||||
|         set_property SLEW FAST [get_ports {""" ++ direction1Pins ++ """_data[26]}] | ||||
|         set_property SLEW FAST [get_ports {""" ++ direction1Pins ++ """_data[25]}] | ||||
|         set_property SLEW FAST [get_ports {""" ++ direction1Pins ++ """_data[24]}] | ||||
|         set_property SLEW FAST [get_ports {""" ++ direction1Pins ++ """_data[23]}] | ||||
|         set_property SLEW FAST [get_ports {""" ++ direction1Pins ++ """_data[22]}] | ||||
|         set_property SLEW FAST [get_ports {""" ++ direction1Pins ++ """_data[21]}] | ||||
|         set_property SLEW FAST [get_ports {""" ++ direction1Pins ++ """_data[20]}] | ||||
|         set_property SLEW FAST [get_ports {""" ++ direction1Pins ++ """_data[19]}] | ||||
|         set_property SLEW FAST [get_ports {""" ++ direction1Pins ++ """_data[18]}] | ||||
|         set_property SLEW FAST [get_ports {""" ++ direction1Pins ++ """_data[17]}] | ||||
|         set_property SLEW FAST [get_ports {""" ++ direction1Pins ++ """_data[16]}] | ||||
|         set_property SLEW FAST [get_ports {""" ++ direction1Pins ++ """_data[15]}] | ||||
|         set_property SLEW FAST [get_ports {""" ++ direction1Pins ++ """_data[14]}] | ||||
|         set_property SLEW FAST [get_ports {""" ++ direction1Pins ++ """_data[13]}] | ||||
|         set_property SLEW FAST [get_ports {""" ++ direction1Pins ++ """_data[12]}] | ||||
|         set_property SLEW FAST [get_ports {""" ++ direction1Pins ++ """_data[11]}] | ||||
|         set_property SLEW FAST [get_ports {""" ++ direction1Pins ++ """_data[10]}] | ||||
|         set_property SLEW FAST [get_ports {""" ++ direction1Pins ++ """_data[9]}] | ||||
|         set_property SLEW FAST [get_ports {""" ++ direction1Pins ++ """_data[8]}] | ||||
|         set_property SLEW FAST [get_ports {""" ++ direction1Pins ++ """_data[7]}] | ||||
|         set_property SLEW FAST [get_ports {""" ++ direction1Pins ++ """_data[6]}] | ||||
|         set_property SLEW FAST [get_ports {""" ++ direction1Pins ++ """_data[5]}] | ||||
|         set_property SLEW FAST [get_ports {""" ++ direction1Pins ++ """_data[4]}] | ||||
|         set_property SLEW FAST [get_ports {""" ++ direction1Pins ++ """_data[3]}] | ||||
|         set_property SLEW FAST [get_ports {""" ++ direction1Pins ++ """_data[2]}] | ||||
|         set_property SLEW FAST [get_ports {""" ++ direction1Pins ++ """_data[1]}] | ||||
|         set_property SLEW FAST [get_ports {""" ++ direction1Pins ++ """_data[0]}] | ||||
|  | ||||
|  | ||||
|         set_property IOSTANDARD LVCMOS18 [get_ports """ ++ direction0Pins ++ """_clk] | ||||
|         set_property IOSTANDARD LVCMOS18 [get_ports """ ++ direction0Pins ++ """_rst] | ||||
|         set_property IOSTANDARD LVCMOS18 [get_ports """ ++ direction0Pins ++ """_send] | ||||
|         set_property IOSTANDARD LVCMOS18 [get_ports """ ++ direction1Pins ++ """_clk] | ||||
|         set_property IOSTANDARD LVCMOS18 [get_ports """ ++ direction1Pins ++ """_rst] | ||||
|         set_property IOSTANDARD LVCMOS18 [get_ports """ ++ direction1Pins ++ """_send] | ||||
|         set_property SLEW FAST [get_ports """ ++ direction1Pins ++ """_clk] | ||||
|         set_property SLEW FAST [get_ports """ ++ direction1Pins ++ """_rst] | ||||
|         set_property SLEW FAST [get_ports """ ++ direction1Pins ++ """_send] | ||||
|  | ||||
|  | ||||
|         set_property OFFCHIP_TERM NONE [get_ports """ ++ direction1Pins ++ """_data[31]] | ||||
|         set_property OFFCHIP_TERM NONE [get_ports """ ++ direction1Pins ++ """_data[30]] | ||||
|         set_property OFFCHIP_TERM NONE [get_ports """ ++ direction1Pins ++ """_data[29]] | ||||
|         set_property OFFCHIP_TERM NONE [get_ports """ ++ direction1Pins ++ """_data[28]] | ||||
|         set_property OFFCHIP_TERM NONE [get_ports """ ++ direction1Pins ++ """_data[27]] | ||||
|         set_property OFFCHIP_TERM NONE [get_ports """ ++ direction1Pins ++ """_data[26]] | ||||
|         set_property OFFCHIP_TERM NONE [get_ports """ ++ direction1Pins ++ """_data[25]] | ||||
|         set_property OFFCHIP_TERM NONE [get_ports """ ++ direction1Pins ++ """_data[24]] | ||||
|         set_property OFFCHIP_TERM NONE [get_ports """ ++ direction1Pins ++ """_data[23]] | ||||
|         set_property OFFCHIP_TERM NONE [get_ports """ ++ direction1Pins ++ """_data[22]] | ||||
|         set_property OFFCHIP_TERM NONE [get_ports """ ++ direction1Pins ++ """_data[21]] | ||||
|         set_property OFFCHIP_TERM NONE [get_ports """ ++ direction1Pins ++ """_data[20]] | ||||
|         set_property OFFCHIP_TERM NONE [get_ports """ ++ direction1Pins ++ """_data[19]] | ||||
|         set_property OFFCHIP_TERM NONE [get_ports """ ++ direction1Pins ++ """_data[18]] | ||||
|         set_property OFFCHIP_TERM NONE [get_ports """ ++ direction1Pins ++ """_data[17]] | ||||
|         set_property OFFCHIP_TERM NONE [get_ports """ ++ direction1Pins ++ """_data[16]] | ||||
|         set_property OFFCHIP_TERM NONE [get_ports """ ++ direction1Pins ++ """_data[15]] | ||||
|         set_property OFFCHIP_TERM NONE [get_ports """ ++ direction1Pins ++ """_data[14]] | ||||
|         set_property OFFCHIP_TERM NONE [get_ports """ ++ direction1Pins ++ """_data[13]] | ||||
|         set_property OFFCHIP_TERM NONE [get_ports """ ++ direction1Pins ++ """_data[12]] | ||||
|         set_property OFFCHIP_TERM NONE [get_ports """ ++ direction1Pins ++ """_data[11]] | ||||
|         set_property OFFCHIP_TERM NONE [get_ports """ ++ direction1Pins ++ """_data[10]] | ||||
|         set_property OFFCHIP_TERM NONE [get_ports """ ++ direction1Pins ++ """_data[9]] | ||||
|         set_property OFFCHIP_TERM NONE [get_ports """ ++ direction1Pins ++ """_data[8]] | ||||
|         set_property OFFCHIP_TERM NONE [get_ports """ ++ direction1Pins ++ """_data[7]] | ||||
|         set_property OFFCHIP_TERM NONE [get_ports """ ++ direction1Pins ++ """_data[6]] | ||||
|         set_property OFFCHIP_TERM NONE [get_ports """ ++ direction1Pins ++ """_data[5]] | ||||
|         set_property OFFCHIP_TERM NONE [get_ports """ ++ direction1Pins ++ """_data[4]] | ||||
|         set_property OFFCHIP_TERM NONE [get_ports """ ++ direction1Pins ++ """_data[3]] | ||||
|         set_property OFFCHIP_TERM NONE [get_ports """ ++ direction1Pins ++ """_data[2]] | ||||
|         set_property OFFCHIP_TERM NONE [get_ports """ ++ direction1Pins ++ """_data[1]] | ||||
|         set_property OFFCHIP_TERM NONE [get_ports """ ++ direction1Pins ++ """_data[0]] | ||||
|         set_property OFFCHIP_TERM NONE [get_ports """ ++ direction1Pins ++ """_send] | ||||
|         set_property OFFCHIP_TERM NONE [get_ports """ ++ direction1Pins ++ """_clk] | ||||
|         set_property OFFCHIP_TERM NONE [get_ports """ ++ direction1Pins ++ """_rst] | ||||
|  | ||||
|         # Aloe reset sent to FPGA | ||||
|         set_property IOSTANDARD LVCMOS18 [get_ports ereset_n] | ||||
|         set_property PACKAGE_PIN AF40    [get_ports ereset_n] | ||||
|  | ||||
|         #Put first level RX/TX flops in IOB | ||||
|         set_property IOB TRUE [get_cells -of_objects [all_fanout -flat -endpoints_only [get_ports "chiplink_b2c_data*"]]] | ||||
|         set_property IOB TRUE [get_cells -of_objects [all_fanout -flat -endpoints_only [get_ports "chiplink_b2c_send"]]] | ||||
|         set_property IOB TRUE [get_cells -of_objects [all_fanin -flat -startpoints_only [get_ports "chiplink_c2b_data*"]]] | ||||
|         set_property IOB TRUE [get_cells -of_objects [all_fanin -flat -startpoints_only [get_ports "chiplink_c2b_send"]]] | ||||
| """ | ||||
|     ) | ||||
|  | ||||
|   } | ||||
|  | ||||
|   def connectChipLink(dut: { val chiplink: HeterogeneousBag[WideDataLayerPort] } , iofpga: Boolean = false): Unit = { | ||||
|     constrainChipLink(iofpga) | ||||
|  | ||||
|     chiplink <> dut.chiplink(0) | ||||
|     //dut.chiplink_xilinx_7series_phy.get.idelayctrl_refclk := sys_clock | ||||
|   } | ||||
| } | ||||
|  | ||||
|    | ||||
|  | ||||
| abstract class VC707Shell(implicit val p: Parameters) extends RawModule { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user