Skip to content

Commit

Permalink
add hamsternz-displayport on nexys-video board
Browse files Browse the repository at this point in the history
Signed-off-by: Wojciech Tatarski <[email protected]>
  • Loading branch information
wtatarski committed Apr 30, 2020
1 parent 90e47fa commit 294ca32
Show file tree
Hide file tree
Showing 5 changed files with 181 additions and 0 deletions.
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -20,3 +20,6 @@
[submodule "third_party/prjxray"]
path = third_party/prjxray
url = https://github.com/SymbiFlow/prjxray.git
[submodule "third_party/hamsternz-displayport"]
path = third_party/hamsternz-displayport
url = https://github.com/hamsternz/DisplayPort_Verilog.git
31 changes: 31 additions & 0 deletions project/hamsternz-displayport.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
{
"srcs": [
"third_party/hamsternz-displayport/src/test_streams/test_source.v",
"third_party/hamsternz-displayport/src/debug/seven_segment_driver.v",
"third_party/hamsternz-displayport/src/test_streams/insert_main_stream_attrbutes_four_channels.v",
"third_party/hamsternz-displayport/src/test_streams/test_source_3840_2180_YCC_422_ch2.v",
"third_party/hamsternz-displayport/src/insert_training_pattern.v",
"third_party/hamsternz-displayport/src/main_stream_processing.v",
"third_party/hamsternz-displayport/src/auxch/channel_managemnt.v",
"third_party/hamsternz-displayport/src/auxch/hotplug_decode.v",
"third_party/hamsternz-displayport/src/auxch/dp_register_decode.v",
"third_party/hamsternz-displayport/src/skew_channels.v",
"third_party/hamsternz-displayport/src/test_streams/insert_main_stream_attrbutes_two_channels.v",
"third_party/hamsternz-displayport/src/auxch/aux_channel.v",
"third_party/hamsternz-displayport/src/auxch/dp_aux_messages.v",
"third_party/hamsternz-displayport/src/auxch/aux_interface.v",
"third_party/hamsternz-displayport/src/test_streams/insert_main_stream_attrbutes_one_channel.v",
"third_party/hamsternz-displayport/src/artix7/transceiver.v",
"third_party/hamsternz-displayport/src/scrambler_reset_inserter.v",
"third_party/hamsternz-displayport/src/artix7/gtx_tx_reset_controller.v",
"third_party/hamsternz-displayport/src/idle_pattern_inserter.v",
"third_party/hamsternz-displayport/src/artix7/transceiver_bank.v",
"third_party/hamsternz-displayport/src/auxch/link_signal_mgmt.v",
"third_party/hamsternz-displayport/src/auxch/edid_decode.v",
"third_party/hamsternz-displayport/src/scrambler_all_channels.v",
"third_party/hamsternz-displayport/src/top_level_nexys_video.v"
],
"top": "top_level_nexys_video",
"name": "hamsternz-displayport"
}

Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
##Clock Signal
set_property -dict {PACKAGE_PIN R4 IOSTANDARD LVCMOS33} [get_ports clk100]

set_property CFGBVS VCCO [current_design]

##Display Port
set_property -dict {PACKAGE_PIN AB10 IOSTANDARD LVDS_25} [get_ports dp_tx_auxch_tx_n]
set_property -dict {PACKAGE_PIN AA9 IOSTANDARD LVDS_25} [get_ports dp_tx_auxch_tx_p]
set_property -dict {PACKAGE_PIN AA11 IOSTANDARD LVDS_25} [get_ports dp_tx_auxch_rx_n]
set_property -dict {PACKAGE_PIN AA10 IOSTANDARD LVDS_25} [get_ports dp_tx_auxch_rx_p]
set_property -dict {PACKAGE_PIN N15 IOSTANDARD LVCMOS33} [get_ports dp_tx_hp_detect]
set_property -dict {PACKAGE_PIN F6} [get_ports dp_refclk_p]
set_property -dict {PACKAGE_PIN E6} [get_ports dp_refclk_n]
set_property -dict {PACKAGE_PIN F10} [get_ports mgtrefclk1_p]
set_property -dict {PACKAGE_PIN E10} [get_ports mgtrefclk1_n]

set_property -dict {PACKAGE_PIN B4} [get_ports {dp_tx_lane_p[0]}]
set_property -dict {PACKAGE_PIN A4} [get_ports {dp_tx_lane_n[0]}]

set_property -dict {PACKAGE_PIN D5} [get_ports {dp_tx_lane_p[1]}]
set_property -dict {PACKAGE_PIN C5} [get_ports {dp_tx_lane_n[1]}]


# DEBUG on JA
set_property -dict {PACKAGE_PIN AB22 IOSTANDARD LVCMOS33} [get_ports {debug[0]}]
set_property -dict {PACKAGE_PIN AB21 IOSTANDARD LVCMOS33} [get_ports {debug[1]}]
set_property -dict {PACKAGE_PIN AB20 IOSTANDARD LVCMOS33} [get_ports {debug[2]}]
set_property -dict {PACKAGE_PIN AB18 IOSTANDARD LVCMOS33} [get_ports {debug[3]}]
set_property -dict {PACKAGE_PIN Y21 IOSTANDARD LVCMOS33} [get_ports {debug[4]}]
set_property -dict {PACKAGE_PIN AA21 IOSTANDARD LVCMOS33} [get_ports {debug[5]}]
set_property -dict {PACKAGE_PIN AA20 IOSTANDARD LVCMOS33} [get_ports {debug[6]}]
set_property -dict {PACKAGE_PIN AA18 IOSTANDARD LVCMOS33} [get_ports {debug[7]}]


set_property -dict {PACKAGE_PIN T14 IOSTANDARD LVCMOS25} [get_ports {LED[0]}]
set_property -dict {PACKAGE_PIN T15 IOSTANDARD LVCMOS25} [get_ports {LED[1]}]
set_property -dict {PACKAGE_PIN T16 IOSTANDARD LVCMOS25} [get_ports {LED[2]}]
set_property -dict {PACKAGE_PIN U16 IOSTANDARD LVCMOS25} [get_ports {LED[3]}]
set_property -dict {PACKAGE_PIN V15 IOSTANDARD LVCMOS25} [get_ports {LED[4]}]
set_property -dict {PACKAGE_PIN W16 IOSTANDARD LVCMOS25} [get_ports {LED[5]}]
set_property -dict {PACKAGE_PIN W15 IOSTANDARD LVCMOS25} [get_ports {LED[6]}]
set_property -dict {PACKAGE_PIN Y13 IOSTANDARD LVCMOS25} [get_ports {LED[7]}]


## Buttons
#set_property -dict { PACKAGE_PIN B22 IOSTANDARD LVCMOS33 } [get_ports { btnc }]; #IO_L20N_T3_16 Sch=btnc
#set_property -dict { PACKAGE_PIN D22 IOSTANDARD LVCMOS33 } [get_ports { btnd }]; #IO_L22N_T3_16 Sch=btnd
#set_property -dict { PACKAGE_PIN C22 IOSTANDARD LVCMOS33 } [get_ports { btnl }]; #IO_L20P_T3_16 Sch=btnl
#set_property -dict { PACKAGE_PIN D14 IOSTANDARD LVCMOS33 } [get_ports { btnr }]; #IO_L6P_T0_16 Sch=btnr
#set_property -dict { PACKAGE_PIN F15 IOSTANDARD LVCMOS33 } [get_ports { btnu }]; #IO_0_16 Sch=btnu
#set_property -dict { PACKAGE_PIN G4 IOSTANDARD LVCMOS33 } [get_ports { cpu_resetn }]; #IO_L12N_T1_MRCC_35 Sch=cpu_resetn


##Switches
set_property -dict {PACKAGE_PIN E22 IOSTANDARD LVCMOS25} [get_ports {sw[0]}]
set_property -dict {PACKAGE_PIN F21 IOSTANDARD LVCMOS25} [get_ports {sw[1]}]
set_property -dict {PACKAGE_PIN G21 IOSTANDARD LVCMOS25} [get_ports {sw[2]}]
set_property -dict {PACKAGE_PIN G22 IOSTANDARD LVCMOS25} [get_ports {sw[3]}]
#set_property -dict {PACKAGE_PIN H17 IOSTANDARD LVCMOS25} [get_ports {sw[4]}]
#set_property -dict {PACKAGE_PIN J16 IOSTANDARD LVCMOS25} [get_ports {sw[5]}]
#set_property -dict {PACKAGE_PIN K13 IOSTANDARD LVCMOS25} [get_ports {sw[6]}]
#set_property -dict {PACKAGE_PIN M17 IOSTANDARD LVCMOS25} [get_ports {sw[7]}]



#create_clock -period 7.407 -name i_tx0/I -waveform {0.000 3.704} [get_pins i_tx0/gtpe2_i/TXOUTCLK]
#create_clock -period 7.407 -name i_tx0/ref_clk -waveform {0.000 3.704} [get_pins i_tx0/gtpe2_i/TXOUTCLKFABRIC]



create_clock -period 10.000 -name sys_clk_pin -waveform {0.000 5.000} -add [get_ports clk100]
create_clock -period 7.407 -name dp_refclk -waveform {0.000 3.704} -add [get_ports dp_refclk_p]
create_clock -period 7.407 -name dp_refclk2 -waveform {0.000 3.704} -add [get_ports mgtrefclk1_p]
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
##Clock Signal
set_property -dict {PACKAGE_PIN R4 IOSTANDARD LVCMOS33} [get_ports clk100]

set_property CFGBVS VCCO [current_design]

##Display Port
set_property -dict {PACKAGE_PIN AB10 IOSTANDARD LVDS_25} [get_ports dp_tx_auxch_tx_n]
set_property -dict {PACKAGE_PIN AA9 IOSTANDARD LVDS_25} [get_ports dp_tx_auxch_tx_p]
set_property -dict {PACKAGE_PIN AA11 IOSTANDARD LVDS_25} [get_ports dp_tx_auxch_rx_n]
set_property -dict {PACKAGE_PIN AA10 IOSTANDARD LVDS_25} [get_ports dp_tx_auxch_rx_p]
set_property -dict {PACKAGE_PIN N15 IOSTANDARD LVCMOS33} [get_ports dp_tx_hp_detect]
set_property -dict {PACKAGE_PIN F6} [get_ports dp_refclk_p]
set_property -dict {PACKAGE_PIN E6} [get_ports dp_refclk_n]
set_property -dict {PACKAGE_PIN F10} [get_ports mgtrefclk1_p]
set_property -dict {PACKAGE_PIN E10} [get_ports mgtrefclk1_n]

set_property -dict {PACKAGE_PIN B4} [get_ports {dp_tx_lane_p[0]}]
set_property -dict {PACKAGE_PIN A4} [get_ports {dp_tx_lane_n[0]}]

set_property -dict {PACKAGE_PIN D5} [get_ports {dp_tx_lane_p[1]}]
set_property -dict {PACKAGE_PIN C5} [get_ports {dp_tx_lane_n[1]}]


# DEBUG on JA
set_property -dict {PACKAGE_PIN AB22 IOSTANDARD LVCMOS33} [get_ports {debug[0]}]
set_property -dict {PACKAGE_PIN AB21 IOSTANDARD LVCMOS33} [get_ports {debug[1]}]
set_property -dict {PACKAGE_PIN AB20 IOSTANDARD LVCMOS33} [get_ports {debug[2]}]
set_property -dict {PACKAGE_PIN AB18 IOSTANDARD LVCMOS33} [get_ports {debug[3]}]
set_property -dict {PACKAGE_PIN Y21 IOSTANDARD LVCMOS33} [get_ports {debug[4]}]
set_property -dict {PACKAGE_PIN AA21 IOSTANDARD LVCMOS33} [get_ports {debug[5]}]
set_property -dict {PACKAGE_PIN AA20 IOSTANDARD LVCMOS33} [get_ports {debug[6]}]
set_property -dict {PACKAGE_PIN AA18 IOSTANDARD LVCMOS33} [get_ports {debug[7]}]


set_property -dict {PACKAGE_PIN T14 IOSTANDARD LVCMOS25} [get_ports {LED[0]}]
set_property -dict {PACKAGE_PIN T15 IOSTANDARD LVCMOS25} [get_ports {LED[1]}]
set_property -dict {PACKAGE_PIN T16 IOSTANDARD LVCMOS25} [get_ports {LED[2]}]
set_property -dict {PACKAGE_PIN U16 IOSTANDARD LVCMOS25} [get_ports {LED[3]}]
set_property -dict {PACKAGE_PIN V15 IOSTANDARD LVCMOS25} [get_ports {LED[4]}]
set_property -dict {PACKAGE_PIN W16 IOSTANDARD LVCMOS25} [get_ports {LED[5]}]
set_property -dict {PACKAGE_PIN W15 IOSTANDARD LVCMOS25} [get_ports {LED[6]}]
set_property -dict {PACKAGE_PIN Y13 IOSTANDARD LVCMOS25} [get_ports {LED[7]}]


## Buttons
#set_property -dict { PACKAGE_PIN B22 IOSTANDARD LVCMOS33 } [get_ports { btnc }]; #IO_L20N_T3_16 Sch=btnc
#set_property -dict { PACKAGE_PIN D22 IOSTANDARD LVCMOS33 } [get_ports { btnd }]; #IO_L22N_T3_16 Sch=btnd
#set_property -dict { PACKAGE_PIN C22 IOSTANDARD LVCMOS33 } [get_ports { btnl }]; #IO_L20P_T3_16 Sch=btnl
#set_property -dict { PACKAGE_PIN D14 IOSTANDARD LVCMOS33 } [get_ports { btnr }]; #IO_L6P_T0_16 Sch=btnr
#set_property -dict { PACKAGE_PIN F15 IOSTANDARD LVCMOS33 } [get_ports { btnu }]; #IO_0_16 Sch=btnu
#set_property -dict { PACKAGE_PIN G4 IOSTANDARD LVCMOS33 } [get_ports { cpu_resetn }]; #IO_L12N_T1_MRCC_35 Sch=cpu_resetn


##Switches
set_property -dict {PACKAGE_PIN E22 IOSTANDARD LVCMOS25} [get_ports {sw[0]}]
set_property -dict {PACKAGE_PIN F21 IOSTANDARD LVCMOS25} [get_ports {sw[1]}]
set_property -dict {PACKAGE_PIN G21 IOSTANDARD LVCMOS25} [get_ports {sw[2]}]
set_property -dict {PACKAGE_PIN G22 IOSTANDARD LVCMOS25} [get_ports {sw[3]}]
#set_property -dict {PACKAGE_PIN H17 IOSTANDARD LVCMOS25} [get_ports {sw[4]}]
#set_property -dict {PACKAGE_PIN J16 IOSTANDARD LVCMOS25} [get_ports {sw[5]}]
#set_property -dict {PACKAGE_PIN K13 IOSTANDARD LVCMOS25} [get_ports {sw[6]}]
#set_property -dict {PACKAGE_PIN M17 IOSTANDARD LVCMOS25} [get_ports {sw[7]}]



#create_clock -period 7.407 -name i_tx0/I -waveform {0.000 3.704} [get_pins i_tx0/gtpe2_i/TXOUTCLK]
#create_clock -period 7.407 -name i_tx0/ref_clk -waveform {0.000 3.704} [get_pins i_tx0/gtpe2_i/TXOUTCLKFABRIC]



create_clock -period 10.000 -name sys_clk_pin -waveform {0.000 5.000} -add [get_ports clk100]
create_clock -period 7.407 -name dp_refclk -waveform {0.000 3.704} -add [get_ports dp_refclk_p]
create_clock -period 7.407 -name dp_refclk2 -waveform {0.000 3.704} -add [get_ports mgtrefclk1_p]
1 change: 1 addition & 0 deletions third_party/hamsternz-displayport
Submodule hamsternz-displayport added at 3d509d

0 comments on commit 294ca32

Please sign in to comment.