07-29-2019 08:21 AM - edited 07-29-2019 09:08 AM
The story is that I am trying to using tri_mode_ethernet_mac for Ethernet on a customized FPGA borad so with customized ports. I previously found one net "gmii_rx_er" had timimg violating and fix it by overwriting the contraint of IP core. See the detail here:
As I added other functions that are not related to Ethernet in the firmware, I found a weird case. Another net "gmii_rx_dv" had timing violation and "gmii_rx_er" is fine if i change back to the defaut IP constraint.
Also I tried if the firmware only contains Ethernet part function and using Performance_ExtraTimingOpt as strategy for implementation, there is no timing violation! So clearly to me, vivado has the ability to implemente it without timing violation. But the other part of the code is influncing it.
So i was wondering, could i implemente the tri_mode_ethernet_mac ip core in advance with the no timing violation version, then merge the other part to the firmware?
Is the DONT_TOUCH be the one I should use?
07-29-2019 09:05 AM
In general flow, I don't think you can implement one module in advance.
For timing closure, you can refer to the flow in UG949.
You can also consider PR flow described in UG909 to implement one module independently.
07-30-2019 01:43 AM
07-30-2019 01:58 AM
Also you can check floorplanning P-block to restrict the module in specified boundries. This will limit the scope of placement and routing variation as compared to non P-block use case.
Also if you have one design let's say D1 implemented and you are making small changes in that design or add some small functionality (~5% change) then you can try incremental implementation. In this your older design D1 will be baseline for implementing the new changes.
This above information is not exactly what you are looking for but ways to achieve similar results.
Note: I have read that you have override the constraints generated by IP to solve the timing violations. This is not correct way to solve the timing violations. Because this will only show good results at software but hardware might show the failure.