Merge pull request #1592 from antmicro/fix-iob-lvds-tmds
030-iob: improve rdb processing for LVDS and TMDS
diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md
index c7d7eeb..c1454e7 100644
--- a/CODE_OF_CONDUCT.md
+++ b/CODE_OF_CONDUCT.md
@@ -34,7 +34,7 @@
## Enforcement
-Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at [atom@github.com](mailto:atom@github.com). All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.
+Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at [symbiflow-owner@lists.librecores.org](mailto:symbiflow-owner@lists.librecores.org). All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.
Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.
diff --git a/fuzzers/071-ppips/generate.tcl b/fuzzers/071-ppips/generate.tcl
index b1f1faa..2c92afd 100644
--- a/fuzzers/071-ppips/generate.tcl
+++ b/fuzzers/071-ppips/generate.tcl
@@ -146,6 +146,50 @@
}
}
+proc write_gtp_channel_ppips_db {filename tile tile_suffix} {
+ set fp [open $filename "w"]
+ set tile [get_tiles $tile]
+ set tile_type [get_property TILE_TYPE $tile]
+
+ foreach pip [get_pips -of_objects $tile] {
+ set dst_wire [get_wires -downhill -of_objects $pip]
+ if {[get_pips -uphill -of_objects [get_nodes -of_objects $dst_wire]] == $pip} {
+ set src_wire [get_wires -uphill -of_objects $pip]
+
+ if {![regexp "IMUX" $src_wire] && ![regexp "GTPE2_CTRL" $src_wire] && ![regexp "GTPE2_CLK" $src_wire]} {
+ continue
+ }
+
+ puts $fp "${tile_type}${tile_suffix}.[regsub {.*/} $dst_wire ""].[regsub {.*/} $src_wire ""] always"
+ }
+ }
+
+ close $fp
+}
+
+proc write_gtp_int_interface_ppips_db {filename tile} {
+ set fp [open $filename "w"]
+ set tile [get_tiles $tile]
+ set tile_type [get_property TILE_TYPE $tile]
+
+ foreach pip [get_pips -of_objects $tile] {
+ set dst_wire [get_wires -downhill -of_objects $pip]
+ set src_wire [get_wires -uphill -of_objects $pip]
+
+ if {![regexp "IMUX_OUT" $dst_wire]} {
+ continue
+ }
+
+ if {[regexp "DELAY" $src_wire]} {
+ continue
+ }
+
+ puts $fp "${tile_type}.[regsub {.*/} $dst_wire ""].[regsub {.*/} $src_wire ""] always"
+ }
+
+ close $fp
+}
+
foreach tile_type {CLBLM_L CLBLM_R CLBLL_L CLBLL_R} {
set tiles [get_tiles -filter "TILE_TYPE == $tile_type"]
if {[llength $tiles] != 0} {
@@ -202,3 +246,21 @@
write_pss_ppips_db "ppips_[string tolower $tile_type].db" $tile
}
}
+
+foreach tile_type {GTP_CHANNEL_0 GTP_CHANNEL_1 GTP_CHANNEL_2 GTP_CHANNEL_3 GTP_COMMON} {
+ set tiles [get_tiles -filter "TILE_TYPE == $tile_type"]
+ if {[llength $tiles] != 0} {
+ set tile [lindex $tiles 0]
+ write_gtp_channel_ppips_db "ppips_[string tolower $tile_type].db" $tile ""
+ write_gtp_channel_ppips_db "ppips_[string tolower $tile_type]_mid_left.db" $tile "_MID_LEFT"
+ write_gtp_channel_ppips_db "ppips_[string tolower $tile_type]_mid_right.db" $tile "_MID_RIGHT"
+ }
+}
+
+foreach tile_type {GTP_INT_INTERFACE} {
+ set tiles [get_tiles -filter "TILE_TYPE == $tile_type"]
+ if {[llength $tiles] != 0} {
+ set tile [lindex $tiles 0]
+ write_gtp_int_interface_ppips_db "ppips_[string tolower $tile_type].db" $tile
+ }
+}