O usłudze
PrzetłumaczoneJestem inżynierem sprzętu cyfrowego, a nie programistą, który pisze oprogramowanie układowe na boku. Moja praca odbywa się wewnątrz FPGA: piszę syntetyzowalny RTL w Verilogu i VHDL, buduję maszyny stanowe, potoki i ścieżki danych taktowane setkami megaherców, a także śledzę każdy rejestr, każdy zbocze zegara i każdy nanosekundowy margines czasowy. Na przestrzeni lat dostarczałem kontrolery, interfejsy o wysokiej prędkości, łańcuchy DSP i niestandardowe akceleratory dla układów Xilinx i Intel, i dobrze wiem: projekt nie jest gotowy, gdy po prostu symuluje — jest gotowy, gdy zamknięcie czasowe jest osiągnięte i zachowuje się na rzeczywistym sprzęcie dokładnie tak, jak na ekranie.
Zazwyczaj praca zaczyna się od twojej specyfikacji technicznej, szorstkiego diagramu blokowego lub po prostu zadania, które musi zostać przeniesione z obciążonego procesora do dedykowanej logiki. Przekształcam to w czystą architekturę, dzielę na moduły taktowane i wspieram każdy z nich samosprawdzającymi testbenchami, aby błędy ujawniały się w symulacji, a nie na stanowisku. Poważnie podchodzę do zamknięcia czasowego: ograniczenia, przejścia domeny zegara, fałszywe i wielokrotne ścieżki są obsługiwane celowo, a nie pozostawiane narzędziom do zgadywania. Gdy przepustowość ma znaczenie — równolegle przetwarzam i potokuję ścieżkę; gdy obszar lub moc mają znaczenie — zmieniam architekturę i szczerze mówię, co ten kompromis daje. Wyjaśniam w jasnym języku, co jest realistycznie osiągalne w ramach twojego budżetu na krzem, rezerwy częstotliwości i zasobów, a także dostarczam czytelny, skomentowany kod źródłowy pod kontrolą wersji wraz z falami i krótkim raportem, a nie enigmatycznym strumieniem bitów. Niezależnie od tego, czy potrzebujesz przeglądu jednego modułu, ożywienia starego projektu, czy pełnego bloku przyspieszenia od pomysłu do działającej płytki — prowadzę RTL od początku do końca.
— projektowanie RTL w Verilogu, SystemVerilogu i VHDL
— implementacja w FPGA Xilinx (Vivado) i Intel (Quartus)
— samosprawdzające testbenche, symulacja i weryfikacja funkcjonalna
— zamknięcie czasowe, ograniczenia i przejścia domeny zegara
— interfejsy o wysokiej prędkości, potoki DSP i niestandardowe akceleratory
— przegląd kodu, debugowanie i ożywienie dziedzictwa HDL
Zazwyczaj praca zaczyna się od twojej specyfikacji technicznej, szorstkiego diagramu blokowego lub po prostu zadania, które musi zostać przeniesione z obciążonego procesora do dedykowanej logiki. Przekształcam to w czystą architekturę, dzielę na moduły taktowane i wspieram każdy z nich samosprawdzającymi testbenchami, aby błędy ujawniały się w symulacji, a nie na stanowisku. Poważnie podchodzę do zamknięcia czasowego: ograniczenia, przejścia domeny zegara, fałszywe i wielokrotne ścieżki są obsługiwane celowo, a nie pozostawiane narzędziom do zgadywania. Gdy przepustowość ma znaczenie — równolegle przetwarzam i potokuję ścieżkę; gdy obszar lub moc mają znaczenie — zmieniam architekturę i szczerze mówię, co ten kompromis daje. Wyjaśniam w jasnym języku, co jest realistycznie osiągalne w ramach twojego budżetu na krzem, rezerwy częstotliwości i zasobów, a także dostarczam czytelny, skomentowany kod źródłowy pod kontrolą wersji wraz z falami i krótkim raportem, a nie enigmatycznym strumieniem bitów. Niezależnie od tego, czy potrzebujesz przeglądu jednego modułu, ożywienia starego projektu, czy pełnego bloku przyspieszenia od pomysłu do działającej płytki — prowadzę RTL od początku do końca.
— projektowanie RTL w Verilogu, SystemVerilogu i VHDL
— implementacja w FPGA Xilinx (Vivado) i Intel (Quartus)
— samosprawdzające testbenche, symulacja i weryfikacja funkcjonalna
— zamknięcie czasowe, ograniczenia i przejścia domeny zegara
— interfejsy o wysokiej prędkości, potoki DSP i niestandardowe akceleratory
— przegląd kodu, debugowanie i ożywienie dziedzictwa HDL