Potrzebuję ustalić, czy bitfile z Vivado powstał z kompilacji określonego kodu źródłowego. Sam bitfile przy każdej kompilacji jest inny - wynika to ze stosowania losowej optymalizacji, być może tylko na etapie rozmieszczania elementów (placement przy implementacji) i tworzenia połączeń (routing w następnej fazie implementacji) - gdyby więc z bitfile odtworzyć schemat logiki, to dla każdej kompilacji powinien być taki sam.
Kompilacja od kodu źródłowego do bitfile składa się z trzech głównych etapów: syntezy (przetworzenie kodu źródłowego na schemat logiki, z dobraniem typów elementów), implementacji (w tym rozmieszczenia elementów - wyboru, które elementy FPGA mają stać się którymi elementami schematu logiki - ale nawet tam jeszcze typy elementów wybrane przy syntezie mogą być zamieniane na inne, o równoważnym działaniu; oraz utworzenia połączeń), i przetworzenia utworzonego układu elementów FPGA na bitfile.
Logika, jaką realizuje skompilowany program, powinna zależeć wyłącznie od kodu źródłowego - więc porównanie logiki po jej odtworzeniu z bitfile powinno rozpoznać, czy bitfile pochodzi z danego kodu źródłowego, czy nie. Tylko czy jest do tego odpowiedni program - zarówno do przetworzenia bitfile na logikę, jak i na porównanie logiki z bitfile z logiką z kodu źródłowego?
Kompilacja od kodu źródłowego do bitfile składa się z trzech głównych etapów: syntezy (przetworzenie kodu źródłowego na schemat logiki, z dobraniem typów elementów), implementacji (w tym rozmieszczenia elementów - wyboru, które elementy FPGA mają stać się którymi elementami schematu logiki - ale nawet tam jeszcze typy elementów wybrane przy syntezie mogą być zamieniane na inne, o równoważnym działaniu; oraz utworzenia połączeń), i przetworzenia utworzonego układu elementów FPGA na bitfile.
Logika, jaką realizuje skompilowany program, powinna zależeć wyłącznie od kodu źródłowego - więc porównanie logiki po jej odtworzeniu z bitfile powinno rozpoznać, czy bitfile pochodzi z danego kodu źródłowego, czy nie. Tylko czy jest do tego odpowiedni program - zarówno do przetworzenia bitfile na logikę, jak i na porównanie logiki z bitfile z logiką z kodu źródłowego?